• VPS. Каковы особенности работы?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Фактически вам дают выделенный сервер (который просто не является железным, на то он и виртуальный). Если говорить про digitalocean - там у вас действительно всё своё выделенное (память не шарится, а аллоцируется при старте виртуалки, ядро процессора для вас личное на тарифах от $10, lvm-том с только вашей виртуалкой (фактически - выделенный для вас раздел raid-массива)).

    Всеми настройками внутри системы занимаетесь вы. Более того, хостер даже не отвечает за то, что у вас система запустилась. Если виртуалка грузится до биоса - то свою работу по обеспечению работы сервера хостер выполнил (опустим в этом контексте вопросы про сеть). Если сломали ОС и она не загружается - у вас есть кнопка "переустановить чистую систему". За бэкапы, опять же, отвечаете вы (digitalocean предоставляет платные бэкапы, но они не очень удобны). За безопасность - вы.
    В случае с digitalocean у вас есть доступ к "монитору" виртуалки и загрузочный rescue-livecd. В общем-то всё.

    По поводу того, как настраивать (если речь про стандартный стек LAMP), то:
    1) debian 7 x64
    2) отключение авторизации рута по паролю, использование ssh-ключей
    3) для диагностики установить snoopy, настроить логгирование sftp.
    4) не использовать ftp, использовать только sftp. Желательно, по ключам. В sftp-клиенте ни в коем случае не хранить пароли от аккаунта или ssh ключа.
    5) nginx+apache-mpm-itk + php 5.3 и выше + percona-server вместо mysql
    6) в конфигах виртуалхостов включите open basedir, если сайт будет с этой настройкой работать (эта опция запрещает php-скриптам при обращении к ним по http выходить за пределы указанных в basedir каталогов)
    7) не забудьте включить MatchUser/MatchGroup для виртуалхостов
    8) обязательно настроить default host для apache и nginx, чтобы исключить неконтролируемую конфигами обработку каких либо запросов по http. Обычно вешают 403 или 404 ошибку в качестве дефолта.
    9) не ставить лишний софт, не вводить бездумно команды из случайно найденных в гугле мануалов, если не понимаете что именно эта команда делает.
    10) не ставить софт из исходников, особенно из недоверенных источников.
    11) если на сервере нужна исходящая почта, то корректно настроить ограничения для неё. Например, для exim4 (он предпочтителен в Debian) - раз, два.
    12) убрать за http-auth все лишние административные скрипты - phpmyadmin, админки сайтов, графики, мониторинг и так далее.

    Это исключит почти все возможности атаки на сервер снаружи. В такой конфигурации если вас и взломают, то либо из-за украденного пароля/ключа, либо поломают сам сайт и зальют вредоносные файлы через php-скрипты непосредственно сайта.
    Более того, у меня в такой конфигурации пока не сломали ни одну виртуалку целиком (были проблемы с заражением отдельных сайтов, конечно - но это было сделано явно через php), несмотря на разрешающий всё firewall и стандартный ssh-порт.

    А вообще за настройку всего этого добра под 2-3 сайта админы берут около 500 рублей.
    Ответ написан
    42 комментария
  • Как обойти блокировку всплывающих окон в браузерах при использовании Angular.js ng-click?

    maxaon
    @maxaon
    Посмотрел код директивы. Он нигде не прерывается. Вероятнее всего, вы прерываете поток выполнение обработчика.
    Для того чтобы браузер воспринял popup как легитимный, выполнение обработчика не должно быть прервано(например запросом на сервер или таймаутом).
    Демо jsbin.com/voxafizu/5
    Ответ написан
    6 комментариев
  • Изучение ассемблера в универе - какую литературу почитать?

    EXL
    @EXL
    Энтузиаст
    Классика - Зубков С.В. - Assembler для DOS, Windows и UNIX
    Ответ написан
    Комментировать
  • Почему вылетает VPS на DigitalOcean?

    methodx
    @methodx
    DevOps Engineer
    Apache2: отредактировать конфигурацию, ограничить MaxClients. В идеале или расположить его за Nginx или действительно использовать связку nginx+php-fpm. Apache2 - это не web-сервер, а сервер приложений в первую очередь, стоит это учитывать и грамотно использовать.

    Mysql: используйте mysqltuner.pl для выявления узких мест в конфигурации, ограничивайте максимальное использование памяти, изменяя указанные скриптом переменные. Рассмотрите вариант использования Percona или MariaDB.

    Для отслеживания потребления ресурсов пользуйтесь htop.
    Ответ написан
    Комментировать
  • Зарезервировано аппаратно 1.7 Гб, как исправить?

    @legiero
    Что за ноутбук?
    Похоже видеокарта отъедает столько, попробуйте в биосе настроить.
    Ответ написан
    1 комментарий
  • Куда уйти с PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    По поводу срачей - это будет в любом случае. Я вот косо смотрю на большинство ruby программистов, так как мой опыт общения с ними показал что большая их часть хают php, и при этому их код ни чуть не лучше. Но я так же знаю и достаточное количество толковых рубистов, которые не так страстно пропагандируют свою религию. Точно так же как знаю хороших php-шников, которые в свободное время пишут простенькие web-приложения на haskel и других языка.

    Я для себя решил уже давно, что язык программирования никакой роли не играет. И да, останавливаться на php смысла нету. Но вам нужно на нормальном уровне освоить хотя бы одну платформу. Из того что вы писали в комментариях ясно, что вам стоит попробовать себя в java хотя бы по одной причине: все виденные мною популярные технологии под java обладают неплохой архитектурой. Это вам не yii, в котором архитектуры как таковой и нет. Когда при обучении у вас жесткие рамки, стандарты... Когда инструменты подталкивают вас все делать по best-pratice, тогда можно учиться быстрее. А с иструментами вроде yii это сложно. А уже после осознания этих best-practice, осознания концепций базовых, переход с java куда угодно не станет таким уж сложным. Скажем перейти с java на php в таком ключе будет очень легко (при условии подобающих фреймворков, на вроде symfony2/zend2), как и на .NET, как и на любую другую платформу.

    Можете так же попробовать golang, тот же ruby (но не ror, ror пропитан религией), javascript (все же опыт работы с асинхронными языками программирования достаточно полезен), python идеально подойдет для написания небольших утилит или демонов... java после php осваивается нормально, возможности языков в плане построения архитектуры с большего одинаковы. Просто у вас не достаточно опыта в разработке как таковой.

    А по поводу депрессий программиста - это нормально и никак не зависит от используемых инструментов. У каждого такое бывает, нужно добавлять в жизнь немного разнообразия. Я вот для борьбы со скукой вообще решил немного попрактиковаться в написании чего-то на c++ (анализ аудио, классификация и т.д.).
    Ответ написан
    Комментировать
  • Шифрование. Надеяться ли на то, что алгоритм никому не известен?

    Защищенность информации должна основываться только на знании ключа и не зависеть от того, известен алгоритм или нет (Принцип Керкгоффса, XIX век).
    Ответ написан
    Комментировать
  • Как развивать характерный программистам тип мышления?

    7workers
    @7workers
    Играйте в "лего".
    Ответ написан
    Комментировать
  • Дебаг приложения на PHP. Как улучшить код и избавиться от предупреждений?

    @VeMax
    Смотришь первую ошибку и начинаешь исправлять. И так далее пока не останется ошибок. Хотите нормально программировать, начинайте разбираться в том что вы делаете.
    Ответ написан
    Комментировать
  • Как правильно использовать исключения?

    if-elsе (switch) используется в случаях-
    "если не так, то попробуем с другой стороны",
    то есть, это выбор вариантов исполнения.
    а exception-
    "если не так, то никак (потому, что ....)",
    то есть остановка исполнения, и старт каких либо заключительных действий (например, записать ошибку в лог и отправить пользователю красивую картинку/заглушку).
    таким образом, "if" - это штатный режим, а а exception- аварийный
    Ответ написан
    1 комментарий
  • Как победить ошибку "You have an error in your SQL syntax" в MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Не используйте mysql_, он в статусе depricated. Используйте mysqli или PDO.
    2. Любые строки в запросе SQL должны быть взяты в кавычки. Вы пытаетесь сравнить колонку `title` с колонкой `ПОСТЕЛЬНОГО`.
    3. Не используйте запросы, собранные из переданных извне строк. Что будет, если в $_POST['title'] передать строку "';DROP TABLE products;--"? Вместо этого используйте параметризацию запросов через bind_param.
    4. Не ленитесь читать вопросы, которые задавали до вас. Точно такой же вопрос был всего пару часов назад.
    Ответ написан
    Комментировать
  • Где хранить данные сайта?

    Можно положить изображения в какое-нибудь хранилище, например S3 или облачное хранилище от Селектела. Будет недорого (если не очень большой трафик), и надёжно
    Ответ написан
    Комментировать
  • Как восстановить поврежденные данные с флешки с файловой системой NTFS?

    srosts
    @srosts
    R-Studio или Ontrack EasyRecovery, когда-то давно, ещё с дискетами, помогала программа EasyRecovery Professional не знаю работает ли она с флешками.
    Ответ написан
    Комментировать
  • Почему после переименования проекта так снизилось качество и вопросов и ответов?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Теперь тут вопросы могут задавать те, кто на хабре read-only.
    Можете на сомнительных вопросах проверить
    Ответ написан
    1 комментарий
  • Что почитать, прежде чем писать свой фреймворк на php?

    Есть замечательная книга PHP. Объекты, шаблоны и методики программирования. Как писать фреймворк не научит, но охватывает основные паттерны и дает более глубокое понимание ООП, не в академ стиле типа вот есть приватный метод, доступа к нему нет извне, а больше объясняет, как надо думать при разработке
    Ответ написан
    Комментировать
  • Какие юзать курсы по HTML, CSS, PHP для начинающих?

    @Masterme

    Послушайте. Было бы смешно, если бы не было так грустно. Каждый день пачками появляются вопросы где и как научиться программировать. Ладно, я бы понял, если бы спрашивали как обучиться столярному делу или садоводству. Но блин... интернет просто пропитан компьютерной тематикой и, особенно, вебом. Гугл, самоучитель - и понеслась. Но нет же, надо зайти в QA и спросить "как мне выучиться?". Действительно, как же выучиться? Может быть старым испытанным способом: найти руководство, прочитать и выполнить советы? А где найти руководство? В поисковой системе? О, неужели это работает? А как сформулировать запрос? Достаточно вписать то что я хочу получить? Что ж, звучит недурно. Похоже, я и вправду смогу освоить эту хитрую технику. Но она такая сложная... я ведь учусь всего лишь в 10м классе...

    Ответ написан
    6 комментариев
  • Google использует jquery?

    @Masterme

    http://blog.jquery.com/2007/11/02/google-using-jquery/

    Первый результат по запросу "how google use jquery". Невероятно сложно, не правда ли?

    Ответ написан
    Комментировать
  • Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?

    Хорошим программистом можно стать только если это занятие нравится. По крайней мере в первые годы это занятие должно приносить удовольствие само по себе. Это должно быть стремление, страсть, талант. Если бы у вас это было, вы бы вопросы здесь не задавали, а просто программировали. Не важно что.

    То, что вам, похоже, нужно - это быстрый заработок. Для этого нужно изучить спрос, и сопоставить его с вашими возможностями. Здесь уже писали, что хороший источник статистики спроса - это фриланс-биржи. Смотрите заказы, ищете наиболее популярные темы. Всякие там Wordpress и django с RoR для веб, а может что-то по мобильной разработке, но это уже сложнее. Смотрите, что это такое (по попсовым темам очень много материалов), изучаете (попсовые темы потому и попсовые, что легки в освоении) и практикуетесь.

    С выходом на фриланс лучше повременить. Не имея опыта можно сходу угробить себе репутацию, а исправить это тяжело. Лучше пойдите к кому-нибудь в подмастерья. Есть у вас на районе веб-студии небольшие? Вот к ним. У них вечно работы больше, чем исполнителей. И не звездите сразу. Подмастерья зарабатывают мало. Немного опыта на реальных проектах - и вы готовы конкурировать с индусами на фриланс-биржах...

    Ответ написан
    Комментировать