Настроить Apache для локальной разработки / тестирования? - PullRequest
12 голосов
/ 23 сентября 2008

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

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


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

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

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

Ответы [ 8 ]

26 голосов
/ 23 сентября 2008

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

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

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

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

127.0.0.1    www.example.localhost
127.0.0.1    example.localhost

Это указывает вышеуказанные URL на ваш локальный компьютер. Последний шаг - это настройка apache. В частности, включение именованного виртуального хостинга, включение PHP и настройка нескольких виртуальных хостов. Если вы использовали пакет Entropy 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.localhost
    ServerName example.localhost
    ServerAlias www.example.localhost
</VirtualHost>

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

6 голосов
/ 23 сентября 2008

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

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

2 голосов
/ 23 сентября 2008

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

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

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

Ура, Келли.


1 голос
/ 23 сентября 2008

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

Слушай 8080

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

0 голосов
/ 23 сентября 2008

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

0 голосов
/ 23 сентября 2008

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

0 голосов
/ 23 сентября 2008

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

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

0 голосов
/ 23 сентября 2008

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

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