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

StackOverflow https://stackoverflow.com/questions/118423

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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


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

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

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

Это было полезно?

Решение

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

Другие советы

Извини, Кайл, у меня недостаточно авторитета, чтобы ответить непосредственно на твой комментарий.Но если вы хотите, чтобы каждый проект обслуживался на другом порту, попробуйте настроить конфигурацию вашего виртуального хоста точно так же, как у Келли выше (за вычетом 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 учетная запись, которая сопоставляет мой домен разработки с моим локальным компьютером. Динадны предоставляет домен с шаблоном, и поэтому, используя виртуальные хосты на основе имен, я могу легко создать столько сайтов (с отдельными корнями документов) для любого количества доменов разработки, сколько захочу, и все они будут работать с одним экземпляром 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, таких как ВАМПИР и XAMPP.Лично я загружаю последние двоичные файлы каждого из них и устанавливаю вручную, чтобы иметь более детальный контроль.Есть множество онлайн-руководств о том, как с этим справиться.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top