У меня есть сервер на AWS, который обслуживает ряд веб-сайтов. Также установлен Webmin.
В Apache, когда я пытаюсь создать веб-сайт, скажем ferrari.example.com
, Я получаю сообщение об ошибке Forbidden. You don't have permission to access this resource.
когда я запрашиваю его в веб-браузере.
Это НЕ проблема с правами доступа к файлу, потому что, если я использую другое доменное имя (указывающее на тот же каталог), оно работает нормально.
Это НЕ проблема конфигурации Apache, потому что, если я изменю только имя домена (и никакие другие настройки конфигурации), все будет нормально.
Да, у меня есть правильная запись DNS, указывающая ferrari.example.com
указывает на мой сервер.
Нет, в Apache нет других сайтов, конфликтующих с доменным именем. Я сделал grep -r ferrari *
в /etc/apache
и нашел только этот сайт.
Есть ли у кого-нибудь другие идеи, почему это не работает?
<VirtualHost *:80>
DocumentRoot /var/www/ferrari.example.com
ServerName ferrari.example.com
<Directory /var/www/ferrari.example.com>
AllowOverride All
Options None
Require all granted
</Directory>
</VirtualHost>
Я думаю, что у меня НЕ установлен SELinux.
Отладка на уровне журнала показывает следующие ошибки:
[Thu Sep 19 19:13:00.740101 2019] [authz_core:debug] [pid 31107] mod_authz_core.c(809): [client 204.112.96.198:13742] AH01626: authorization result of Require all denied: denied, referer: http://ferrari.example.com/
[Thu Sep 19 19:13:00.740130 2019] [authz_core:debug] [pid 31107] mod_authz_core.c(809): [client 204.112.96.198:13742] AH01626: authorization result of <RequireAny>: denied, referer: http://ferrari.example.com/
[Thu Sep 19 19:13:00.740139 2019] [authz_core:error] [pid 31107] [client 204.112.96.198:13742] AH01630: client denied by server configuration: /var/www/html/favicon.ico, referer: http://ferrari.example.com/
Я столкнулся с той же проблемой.
Вот как я это решил
Откройте файл apache2.conf с помощью редактора nano.
sudo nano /etc/apache2/apache2.conf
Замените общие настройки каталога на это.
<Directory />
#Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order deny,allow
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
Убедитесь, что файл конфигурации вашего виртуального хоста находится в /etc/apache2/sites-available
каталог таким образом
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port t$
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName example.com (put your domain name here)
ServerAdmin webmaster@localhost
DocumentRoot /home/username/myapp (put your app root directory here)
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Перезапустите службу Apache2
sudo systemctl restart apache2
Вот и все.
надеюсь, это поможет