Apache, обслуживающий 2 веб-сайта в одном домене с путем

#php #wordpress #dns #apache2 #virtual-hosts

#php #wordpress #dns #apache2 #виртуальные хосты

Вопрос:

Я новичок в этом, и я повсюду искал метод маршрутизации сервера, позволяющий хранить 2 сайта по разным путям к одному домену. Большая часть помощи, которую я нашел, относится к использованию виртуального хоста для нескольких доменов, поддоменов, IP-адресов и т.д. Пока ни один из них не соответствует тому, что мне нужно.

Итак, у меня есть последний стек Apache2 , PHP , MySQL , на Debian-8 с 2 функциональными сайтами (базы данных, пользователи, … все в порядке), установленными во вложенных папках /html :

crm_site в /var/www/html/crm (хранение php-скрипта для отслеживания проекта)

и

wp_site в /var/www/html/wordpress (хранение веб-сайта WordPress).

Я хочу иметь доступ к ним, используя единственный домен, которым я владею (скажем www.example.com ), который я уже настроил для доступа к моему серверу. Я надеялся, что мне нужно будет только добавить путь к моему домену ( www.example.com/crm/index.php или www.example.com/wordpress/index.php ), и они будут обслуживаться, но независимо от того, что я добавляю после домена, браузер ведет в одно и то же место, показывая список каталогов в html (то есть crm и WordPress).

Кто-нибудь может сказать мне, как это можно сделать? Спасибо.

Комментарии:

1. Кто-нибудь может, пожалуйста, помочь с этим?

Ответ №1:

похоже, у вас все настроено правильно, за исключением вашего начального каталога.

Возможно, лучше переформулировать ваш вопрос. Похоже, это ваша ситуация (говоря с вашей точки зрения):

  1. иметь веб-сайт на http://machine.domain.com
  2. Я хочу установить /var/www/html в качестве своего каталога по умолчанию
  3. Я хочу установить index.php в качестве своего документа по умолчанию

Как только вы посмотрите на свою проблему таким образом, она значительно упрощается. На этом этапе вам может помочь поисковая система.

Чтобы помочь вам в дальнейшем, например, при выполнении указанного поиска «apache set default directory» в Google ответ выделен жирным шрифтом. … измените корневой каталог Apache или переместите проект в /var/www/html

Вы уже это делали, верно? Итак, 1. и 2. выше выполнены. Если нет, посмотрите на следующее (что предполагает наличие пакета apache2 в последней версии Ubuntu. я тестировал это в контейнере docker):

файл: /etc/apache2/apache2.conf

Содержание:

 <Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
 

Измените приведенное выше /var/www/ на /var/www/html/

Далее, проблема .php обслуживания. Это контролируется директивой DirectoryIndex, как указано здесь . Просмотр его содержимого показывает, что index.php включен по умолчанию.

пример:

 root@b62dsa09327e:/# grep -rnw '/etc/apache2/' -e "DirectoryIndex"
/etc/apache2/mods-available/dir.conf:2: DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
 

Это позаботится о 3. И теперь у нас нет проблем в вашем первоначальном вопросе.

Примечание: возможно, вам придется перенаправить каталог на любой запущенный apache2, как в случае, если вы удалили файлы туда как root. Вам также придется перезапустить apache, чтобы вышеуказанные изменения отразились в службе.

Комментарии:

1. Спасибо. Вероятно, вы правы в том, что что-то неправильно настроено (или вообще не настроено), чтобы разрешить php; сервер продолжает возвращаться к document_root . Не уверен, что

2. Не уверен, что именно, я надеялся на более прямые подсказки (здесь новичок), но я продолжу копаться в ссылках, вытекающих из вашего комментария.

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