Переключение между Htdoc Webroots - Изменить мою переменную «DocumentRoot» в «httpd.conf» или использовать символические ссылки? - PullRequest
0 голосов
/ 04 января 2011

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

Мой первый подход состоял в том, чтобы сбросить переменную «DocumentRoot» в «httpd.conf» на основе предоставленного мною ввода каталога, однако наличие DocumentRoot вне основного каталога «/ Applications / XAMPP /» оказалось большая проблема. Как видите, я использую OSX с установкой XAMPP. В идеале я хотел бы, чтобы все мои сайты находились в "/ Users / Me / Sites / *". Даже когда я пытался переместить свои сайты в базовый каталог XAMPP, Apache не хочет загружать что-либо кроме «htdocs» в качестве моего DocumentRoot.

Мой следующий подход состоял в том, чтобы просто добавить символические ссылки ко всем файлам / каталогам на каждом сайте, над которым я работал в то время, в "htdocs". Это нормально загружается в браузере для базовых HTML-файлов, однако я работаю в основном с PHP, и это не похоже на рендеринг (я вижу файл, но он не будет отображаться как веб-страница).

Ни один из этих подходов сам по себе не кажется слишком сложным, но от изучения Xcode до AppleScript до документации Apache по httpd.conf я чувствую, что у меня достаточно головной боли. Я играл с разрешениями для каждой попытки, через которую я прошел, и ничего еще не удавалось для меня.

Я уверен, что есть много других веб-дизайнеров, которые сталкивались с этой проблемой в прошлом, каково ваше решение?

Ответы [ 3 ]

1 голос
/ 04 января 2011

Это действительно очень легко сделать, учитывая, что вы используете XAMPP, я не на 100%, но если вы перейдете под /bin/apache2/conf/extras/, вы увидите файл с именем httpd-vhosts.conf, в этом файле вы можете добавить столько виртуальных хостов, сколькоты хочешь.Убедитесь, что вы установили ServerName как нечто уникальное.Как только это будет сделано, убедитесь, что параметр «Включить Vhosts» включен в httpd.conf

. Теперь просто отредактируйте файл hosts.Я не уверен, где это находится на OSX, поскольку он основан на Linux, я бы сказал /etc/hosts, но Google поможет вам.Добавьте строку для каждого из ваших сайтов следующим образом:

127.0.0.1     site1.dev
127.0.0.1     site2.dev

и т. Д.Теперь перезапустите apache и в браузере наберите site1.dev, и apache должен это понять и перейти на этот сайт.Довольно просто

0 голосов
/ 04 января 2011

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

Таким образом, существует общее решение: mod_vhost_alias: http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html Все ваши виртуальные хосты будут одинаковыми с переменными (documentRoot, serverName и т. д.),Если вам нужны конкретные настройки для некоторых проектов, убедитесь, что вы разрешили файлы .htaccess и установите там определенные параметры.

0 голосов
/ 04 января 2011

Решение Брэда должно работать.

Если вы работаете в OSX, вы также можете проверить MAMP (http://www.mamp.info/en/index.html). Существует бесплатная и "Pro" версия. Я использовал только бесплатную версию, но довольно просто зайти в корневой каталог. от одного проекта к другому. Единственный вид ошибки - MySQL, который использует сокет для подключения, но если вы знаете, что делаете, это не имеет большого значения.

...