Как настроить apache2.conf для одного домена в разных директориях?

Окружение: apache 2.4 + debian 9.
Я создал wordpress в директории /var/www/html/wp1, настройки на /etc/apache2/apache2.conf.

<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride None
    Order deny,Allow
    Allow from all
    Require all granted
</Directory>
</VirtualHost *:80>

127.0.0.1/wp1 может показать его. Я создал другой wordpress на /home/material/wp2, изменил настройки как показано ниже /etc/apache2/apache2.conf.

<VirtualHost *:80>
DocumentRoot /home/material
<Directory /home/material>
    Options Indexes FollowSymLinks
    AllowOverride None
    Order deny,Allow
    Allow from all
    Require all granted
</Directory>
</VirtualHost *:80>

127.0.0.1/wp2 может показать его. Теперь я хочу объединить эти две настройки, чтобы позволить 127.0.0.1/wp1 показывать wordpress на /var/www/html/wp1, и 127.0.0.1/wp2 показывать wordpress на /home/material/wp2, простое объединение двух настроек не может достичь моей цели.

0
задан 8 May 2019 в 02:39
1 ответ

Есть несколько вещей, которые неправильны или не должны быть сделаны.

В Debian основным конфигурационным файлом является /etc/apache2/apache2. conf, который включает другие конфигурационные файлы, относящиеся к главному каталогу /etc/apache2:

  • конфигурации сайтов из сайтов-включённых/*.conf
  • общих конфигурационных файлов из conf-enabled/*.conf
  • конфигурации модулей mods-включённых/*. load и mods-enabled/*. conf

Доступные конфигурационные файлы находятся в каталогах сайтов-доступных, -доступных и -доступных и для включения/выключения конфигурации, вы можете использовать команды a2ensite, a2enconf и a2enmod, которые соединяют их из xxx-available в xxx-enabled. Для отключения конфигурации вы используете a2dissite, a2disconf и a2dismod.

Первая ошибка заключается в редактировании основного файла конфигурации /etc/apache2/apache2.conf. Вместо этого вы должны были сделать это:

  1. Отключить (или отредактировать) конфигурацию по умолчанию с помощью a2dissite 000-default (каталог sites-enabled теперь пустой)
  2. Создать новую конфигурацию типа sites-available/wordpress. conf с содержимым вашей конфигурации
  3. Включите новую конфигурацию с помощью a2ensite wordpress, который соединяет wordpress.conf с сайтами .включено
  4. Запустите apachectl configtest, чтобы проверить, есть ли у вас синтаксические ошибки
  5. Перезапустите сервер с помощью service apache2 restart, если предыдущая команда была успешной.

В вашей конфигурации одна синтаксическая ошибка и несколько ошибок:

  • Вместо закрытия вы использовали
  • Order deny,Allow и Allow from all is deprecated syntax в Apache 2.4. Вам нужно только Require all granted.
  • Имя сервера отсутствует. Взгляните на примеры VirtualHost.

Если вы хотите использовать порт 80 для обоих сайтов, это может сработать как ваш новый конфигуратор сайты-доступные/пароль. conf (непроверенный):

<VirtualHost *:80>
    # set your host name/server name
    ServerName myservername

    # wp1
    DocumentRoot /var/www/html
    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    # wp2
    Alias /wp2 /home/material/wp2
    <Directory /home/material/wp2>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

Или еще проще: переместите каталог wp2 в /var/www/html и удалите строки для второго экземпляра wordpress из конфигурации.

И не забудьте восстановить ваш оригинальный /etc/apache2/apache2.conf.

.
2
ответ дан 4 December 2019 в 13:20

Теги

Похожие вопросы