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

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

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


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

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

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

Solutions Collecting From Web of "Настройка Apache для локальной разработки / тестирования?"

Ваш 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, но мне удобнее использовать вашу папку личных сайтов, поскольку она уже настроена с правильными разрешениями на включение файлов.

Извините, Кайл, у меня недостаточно кредитов, чтобы отвечать на ваш комментарий. Но если вы хотите, чтобы каждый проект работал на другом порту, попробуйте настроить свою конфигурацию виртуального хоста точно так же, как и выше Kelly (за вычетом 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> 

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

Я также загружаю последние бинарные файлы для каждого и настраиваю их вручную. Я обнаружил, что это безболезненный процесс, если вы немного знаете о настройке 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> 

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

Я надеюсь, что в этом есть смысл.

Привет, Келли.


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

Слушать 8080

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

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

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

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

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

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