Настройка сервера разработки - PullRequest
9 голосов
/ 22 февраля 2010

При разработке приложений PHP лучше иметь сервер, на котором вы разрабатываете / тестируете, а затем работающий сервер, на который вы кладете все, как только он будет готов.

ОК, но как?

ЕслиВы размещаете хостинг через хостинговую компанию. Как вы можете настроить свой собственный сервер разработки для тестирования, имитирующего все настройки LAMP в качестве живого сервера?Потому что, если они различаются, то тестирование на том, которое не совпадает с живым, побеждает правильную цель?

Лучше ли использовать другой сервер через ту же хостинговую компанию и попросить их сделать разработку и живую?имеют точно такие же настройки?

Кроме того, какой рабочий процесс лучше всего использовать для проверки файлов с «живого сервера», работы с ними на «сервере разработки», а затем возврата обратно на работающий сервер?

Спасибо !!

Ответы [ 5 ]

14 голосов
/ 22 февраля 2010

Два очка из моей ежедневной работы:

  • XAMPP - это универсальный магазин для настройки стека Apache / mySQL / PHP в Windows. Я занимаюсь разработкой и развертыванием на машинах Linux, без проблем.

  • Если вы хотите настроить среду Linux на домашнем сервере или виртуальной машине, я недавно задал вопрос, который может вас заинтересовать: Предустановленный Linux для веб-разработчиков?

Лучше ли использовать другой сервер через ту же хостинговую компанию и попросить, чтобы и у разработчиков, и у живых были одинаковые настройки?

Если вы можете позволить себе второй сервер, это может быть лучшим вариантом. С другой стороны, локальная машина, которую вы можете обновить и поиграть с ней по желанию, и все это за небольшую часть долгосрочной стоимости второго арендованного сервера. В случае сомнений я бы поехал на местной машине.

Не забывайте, что PHP - очень переносимый язык. Если вы не используете какие-либо специальные инструменты командной строки или совершенно экзотические расширения, то заставить PHP-приложение работать в Linux и даже в Windows - это вопрос некоторых настроек и деталей, но на самом деле это уже не проблема.

Кроме того, какой рабочий процесс лучше всего использовать для проверки файлов с «живого сервера», работы с ними на «сервере разработки», а затем возврата их обратно на работающий сервер?

В этой области существует множество мнений и практик. Лично для меня следующий рабочий процесс оказался идеальным везде, где я его использовал - я все еще в процессе реализации этого сам во всех проектах и ​​для всех клиентов.

  1. Редактировать файлы локально в IDE

  2. Загрузка на сервер разработки через встроенную функцию FTP IDE

  3. Тест на сервере разработки

  4. После того, как функция протестирована и работает на сервере разработки (т. Е. Она «закончена»), проверьте весь пакет в хранилище Subversion (или другом)

  5. На работающем сервере сделайте сценарий сборки, извлеките последнюю ревизию из хранилища, загрузите ее в каталог с номером ревизии и, когда закончите, измените символическую ссылку, которая указывала на предыдущую ревизию, на последний.

Таким образом, каждое изменение, которое вы вносите в живую среду, регистрируется в системе управления версиями, и возврат к предыдущей ревизии - это вопрос за секунды. Для меня это было огромным облегчением по сравнению с работой с чистым FTP везде.

Возможно также интересный вопрос: Настройка цикла развертывания / сборки / CI для проектов PHP

3 голосов
/ 22 февраля 2010

Вы можете проверить все настройки производственного сервера с помощью phpinfo () и скопировать их в свою среду разработки, не нужно, чтобы они были у одного и того же провайдера.

Обычно я передаю код в систему управления версиями и извлекаю информацию в производственной среде, скрывая всю информацию о хранилище через .htaccess, например, см. здесь .

Другой (менее рекомендуемый) вариант - просто разместить ваш главный источник на компьютере разработчика, и, как только он будет готов по FTP, появятся различные бесплатные инструменты, которые будут загружать только измененные файлы.

2 голосов
/ 22 февраля 2010

Что касается серверной части, у вас есть несколько возможностей. Вы можете использовать vHosts, когда у вас есть Apache, с двумя различными DocumentRoots: один для живой версии и один для разработки. Или у вас может быть среда разработки на вашем локальном компьютере, а затем живая (+ промежуточная) на вашем выделенном сервере / веб-пространстве.

В нашем текущем проекте у нас есть трехуровневая система:

разработка, постановка и жизнь. Staging и live - это практически одно и то же, так что я могу устранить любые проблемы при переходе с dev на staging. Это дает мне еще один уровень безопасности перед тем, как начать работу, и в конце концов замечает, что что-то пошло не так.

Учитывая рабочий процесс развертывания, вы должны создать конфигурацию приложения, в которой вы можете определить несколько сред приложений (разработка и производство), которые автоматически выбирают свою среду на основе URL-адресов, определенных переменных среды или чего-то еще. Так, например, в Zend Framework это поведение, управляемое конфигурацией, встроено в ваши приложения. В вашем файле config.ini у вас есть шаблон, который выглядит следующим образом:

[production]

[staging : production]

[testing : production]

[development : production]

Здесь вы можете определить различные опции, скажем, для подключения к вашей базе данных, т.е.

Таким образом, когда вы проверяете свои изменения на компьютере разработчика в subversion и выполняете развертывание на вашей действующей системе, вам не нужно менять конфигурацию. Это должно просто работать.

0 голосов
/ 23 февраля 2010

Вам не нужно заходить близко к тому, чтобы попросить хостинговую компанию настроить для вас две идентичные среды хостинга. Большую часть времени они имеют последние версии php, mysql и apache. Я занимаюсь разработкой на машине с Linux, на которой уже настроен набор ламп, поэтому мой рабочий процесс довольно плавный, и я использую svn с перехватами после фиксации для загрузки на работающий сервер. Если вас беспокоит несовместимость между вашим сервером 'dev' и хост-сервером, проще всего сделать файл phpinfo,

<?php phpinfo(); ?>

и убедитесь, что ваш хост-сервер не запрещает какие-либо специальные функции, которые вы используете на своем dev-сервере (и это довольно редко, когда хостинговая компания блокирует важные вещи, и если они это делают, вы можете легко отправить поддержку по электронной почте и 99% время, которое они помогут вам включить все, что вам нужно. Но что касается настройки вашей среды разработки, я бы пошел по пути захвата виртуальной коробки и установки Ubuntu, нашел учебник по созданию Ubuntu в качестве веб-сервера (серьезно только несколько команд apt-get) и вы будете курить с газом!

0 голосов
/ 23 февраля 2010

Что касается рабочего процесса, обычно это происходит для небольших сайтов. Однако, в зависимости от размера проекта, было бы неплохо использовать управление версиями, например Git или Subversion.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...