Среда: 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
, простое сочетание этих двух настроек не может достичь моей цели.
Как написать правильную настройку?
Есть несколько вещей, которые вы не должны делать или делать неправильно.
В Debian основным файлом конфигурации является /etc/apache2/apache2.conf
который включает другие файлы конфигурации относительно основного каталога /etc/apache2
:
sites-enabled/*.conf
conf-enabled/*.conf
mods-enabled/*.load
и mods-enabled/*.conf
В доступный файлы конфигурации находятся в каталогах sites-available
, conf-available
и mods-available
и чтобы включить конфигурацию, вы можете использовать команды a2ensite
, a2enconf
и a2enmod
который связывает их с xxx-available
в xxx-enabled
. Чтобы отключить конфигурацию, вы должны использовать a2dissite
, a2disconf
и a2dismod
.
Первая ошибка - редактировать основной файл конфигурации /etc/apache2/apache2.conf
. Вместо этого вы должны были сделать это:
a2dissite 000-default
(каталог sites-enabled
сейчас пусто)sites-available/wordpress.conf
с содержанием вашей конфигурацииa2ensite wordpress
какие символические ссылки wordpress.conf
в sites-enabled
apachectl configtest
чтобы узнать, есть ли у вас синтаксические ошибкиservice apache2 restart
если предыдущая команда была успешной.В вашей конфигурации есть одна синтаксическая ошибка и несколько ошибок:
</VirtualHost>
ты использовал </VirtualHost *:80>
Order deny,Allow
и Allow from all
является устаревший синтаксис в Apache 2.4. Вам нужно только Require all granted
.ServerName
пропал, отсутствует. Взгляните на Примеры VirtualHost.Если вы хотите использовать порт 80 для обоих сайтов, это может работать как ваша новая конфигурация. sites-available/wordpress.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
.