Меня впечатлили скринкасты для 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. Если вы используете предыдущую версию 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.