На моем Debian установлен Apache, я хочу привязать два доменных имени к разным директориям.
cat /etc/hosts
127.0.0.1 hwy.local www.hwy.local test.app www.test.app
Два доменных имени привязаны к 127.0.0.1.
cat /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName www.hwy.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error_hwy.log
CustomLog ${APACHE_LOG_DIR}/access_hwy.log combined
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.test.app
ServerAdmin webmaster@localhost
DocumentRoot /home/debian9/app
ErrorLog ${APACHE_LOG_DIR}/error_app.log
CustomLog ${APACHE_LOG_DIR}/access_app.log combined
<Directory /home/debian9/app>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Создать файл .
touch /var/log/apache2/error_hwy.log
touch /var/log/apache2/access_hwy.log
touch /var/log/apache2/error_app.log
touch /var/log/apache2/access_app.log
sudo chown -R www-data:www-data /home/debian9/app
sudo chmod -R g+rw /home/debian9/app
sudo systemctl restart apache2
Сохраните один и тот же файл test.html
в форматах /var/www/html
и /home/debian9/app
.
<p>it is a test</p>
Почему www.hwy.local/test.html
при открытии может www.test.app
возникнуть ошибка.
`This site can’t be reached`
curl -i www.test.app/test.html
HTTP/1.1 403 Forbidden
Date: Fri, 07 Sep 2018 09:08:13 GMT
Server: Apache/2.4.25 (Debian)
Content-Length: 296
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /test.html
on this server.<br />
</p>
<hr>
<address>Apache/2.4.25 (Debian) Server at www.test.app Port 80</address>
</body></html>
Невозможно задать DocumentRoot
для www.test.app
, /home/debian9/app
которое отличается от /var/www/html
для www.hyw.local
?
решение1
allow from all
это синтаксис конфигурации Apache 2.2.С Apache 2.4это должно быть
Require all granted