Вопрос:

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

php codeigniter apache

16223 просмотра

8 ответа

59169 Репутация автора

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

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


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

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

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

Автор: Kyle Cronin Источник Размещён: 23.09.2008 12:31

Ответы (8)


0 плюса

5053 Репутация автора

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

Автор: phloopy Размещён: 23.09.2008 12:38

0 плюса

75397 Репутация автора

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

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

Автор: Eran Galperin Размещён: 23.09.2008 12:42

2 плюса

1182 Репутация автора

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

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

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

Ура, Келли.


Автор: Bazman Размещён: 23.09.2008 12:59

1 плюс

1438 Репутация автора

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

Слушай 8080

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

Автор: Jurassic_C Размещён: 23.09.2008 01:07

6 плюса

1438 Репутация автора

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

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

Автор: Jurassic_C Размещён: 23.09.2008 01:23

25 плюса

129080 Репутация автора

Решение

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

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

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

Затем вы захотите настроить несколько поддельных URL-адресов для разработки для своих сайтов. Давняя традиция заключалась в том, что для этого мы использовали бы поддельный TLD .dev (например, stackoverflow.dev). Тем не менее, .devтеперь это фактический TLD, так что вы, вероятно, не хотите этого делать - .localhostпохоже на новый стандарт defacto. Отредактируйте ваш файл / 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, но я считаю удобным использовать вашу личную папку «Сайты», так как она уже настроена с правильными разрешениями для включения файлов.

Автор: Alan Storm Размещён: 23.09.2008 01:44

0 плюса

14746 Репутация автора

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

Автор: rg88 Размещён: 23.09.2008 02:24

0 плюса

5261 Репутация автора

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

Автор: EmmEff Размещён: 23.09.2008 04:25
32x32