Настройка Apache для локальной разработки/тестирования?

Меня впечатлили скринкасты для Rails, которые демонстрируют встроенный веб-сервер и базу данных, чтобы обеспечить возможность разработки и тестирования на локальном компьютере. Как я могу получить экземпляр Apache для запуска каталога проекта в качестве его DocumentRoot и, возможно, передать файлы на порт 8080 (или что-то подобное)?

Причина, по которой я спрашиваю, заключается в том, что я собираюсь попробовать CodeIgniter, и я хотел бы использовать его для нескольких проектов. Я бы предпочел не загромождать мою машину DocumentRoot с каждой. Также приветствуются предложения о том, как выполнять миграцию базы данных.


Спасибо за ваши ответы. Я должен уточнить, что я нахожусь в Mac OS X. Похоже, что WAMP - только для Windows. Кроме того, XAMPP выглядит как отличный способ установить Apache и многие другие веб-инструменты, но я не вижу способ загрузить экземпляр, чтобы обслуживать каталог проекта. Mac OS X имеет как Apache, так и PHP - я просто ищу способ заставить его обслуживать проект на нестандартном порту.

Я только что нашел MAMP Pro, который делает то, что я хочу, но более минималистский подход был бы лучше, если бы это было возможно. Кто-нибудь имеет файл httpd.conf, который можно отредактировать и удалить в каталог проекта?

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

Ответ 1

В вашем Mac есть веб-сервер Apache и сборка PHP. Это одна из главных причин, по которой платформа очень нравится веб-разработчикам.

Поскольку вы используете Code Igniter, вам понадобится PHP 5, которая является стандартной версией PHP, поставляемой с 10.5. Если вы находитесь в предыдущей версии хоста OS на entropy.ch и установите предоставленный пакет PHP5.

Затем вы захотите включить Apache. В панели настроек совместного доступа включите персональный веб-доступ. Это запустит apache на вашей локальной машине.

Затем вам нужно настроить некоторые поддельные URL-адреса разработки, которые будут использоваться для ваших сайтов. Я использую поддельный TLD.dev для этого (например, stackoverflow.dev). Отредактируйте файл /etc/hosts и добавьте следующие строки

127.0.0.1    www.example.dev
127.0.0.1    example.dev

Это указывает на вышеуказанные URL-адреса на вашем локальном компьютере. Последний шаг - настройка apache. В частности, включение именованного виртуального хостинга, включение PHP и создание нескольких виртуальных хостов. Если вы использовали пакет энтропийного PHP, включение PHP уже будет выполнено. Если нет, вам необходимо отредактировать файл http.conf, как описано здесь. В принципе, вы раскомментируете строки, которые будут загружать модуль PHP.

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

sudo apachectl graceful

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

sudo apachectl configtest

Итак, с включенным PHP, вы захотите включить NamedVirtualHosts. Это позволит apache отвечать на несколько URL-адресов. Найдите следующую (или аналогичную) строку в файле http.conf и раскомментируйте ее.

#NameVirtualHost *  

Наконец, вам нужно указать apache, где он должен искать файлы для ваших новых виртуальных хостов. Вы можете сделать это, добавив следующее в свой файл http.conf. ПРИМЕЧАНИЕ. Я считаю хорошей практикой вырвать правила конфигурации, подобные этому, в отдельный файл и использовать директиву include, чтобы включить ваши изменения. Это остановит любые автоматические обновления, чтобы стереть ваши изменения.

<VirtualHost *>
    DocumentRoot /Users/username/Sites/example.dev
    ServerName example.dev
    ServerAlias www.example.dev    
</VirtualHost>

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

Ответ 2

Извините Кайла, у меня недостаточно кредитов, чтобы отвечать на ваши комментарии. Но если вы хотите, чтобы каждый проект работал на другом порту, попробуйте настроить свою конфигурацию виртуального хоста точно так же, как Келли выше (за вычетом dns файла), за исключением вместо 80, предоставить каждому виртуальному хосту свой собственный номер порта, предполагая, что вы добавлен этот порт в файл ports.conf.

NameVirtualHost *

<virtualhost *:80>
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:81>
DocumentRoot /site2/documentroot
</virtualhost>

<virtualhost *:82>
DocumentRoot /site3/documentroot
</virtualhost>

<virtualhost *:83>
DocumentRoot /site4/documentroot
</virtualhost>

Надеюсь, что это поможет:/

Ответ 3

Я также загружаю последние бинарные файлы для каждого и настраиваю их вручную. Я обнаружил, что это безболезненный процесс, если вы немного знаете о настройке Apache.

На моей машине разработки у меня есть установка apache с виртуальным хостингом на основе имен. У меня также есть учетная запись dyndns.org, которая сопоставляет мой домен разработки с моей локальной машиной. DynDNS предоставляет подстановочный домен и, следовательно, используя виртуальные хосты на основе имени, я могу легко создать столько сайтов (с отдельными корнями документов), поскольку многие области разработки, как я хочу, все убегают от одного экземпляра Apache.

например. Конфигурация Apache для виртуальных хостов может быть чем-то вроде

NameVirtualHost *:80

<virtualhost *:80>
ServerName site1.mydyndns.dyndns.org
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:80>
ServerName site2.mydyndns.dyndns.org
DocumentRoot /site2/documentroot
</virtualhost>

Это был самый быстрый и простой способ для меня легко поддерживать многие сайты разработки на моей локальной машине.

Надеюсь, это имеет смысл.

Cheers, Келли.


Ответ 4

Я не использую Macos, но я использую Apache. В моем конфигурационном файле apache (в linux обычно в /etc/apache 2/apache2.conf), найдите ссылку на файл с именем ports.conf. Найдите этот файл и добавьте строку

Слушайте 8080

Затем перезапустите процесс apache. После этого вы должны быть в бизнесе. Я заранее извиняюсь, если это не работает на mac:)

Ответ 5

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

Ответ 6

Для PHP у вас есть несколько высококачественных пакетов для развертывания Apache + Mysql + PHP, таких как WAMP и XAMPP. Лично я загружаю последние бинарные файлы каждого и устанавливаю вручную, чтобы иметь более мелкозернистый контроль. Есть много онлайн-руководств о том, как с этим справиться.

Переносы баз данных должны быть простыми - дамп базы данных на сервере либо в командной строке, либо через интерфейс, такой как PHPMyAdmin, и экспортировать его аналогичным образом (PHPMyAdmin рекомендуется, если у вас нет опыта работы с командной строкой Mysql).

Ответ 7

Вы можете использовать MAMP pro, но бесплатная версия также является очень хорошим выбором. Получите его здесь: http://www.mamp.info/en/mamp.html

Ответ 8

Я бы рекомендовал использовать отдельное виртуальное устройство LAMP для каждой среды разработки, с которой вы хотите экспериментировать. Запустите их на сервере VMware или VirtualBox.