Моя установка:
ubuntu 22.04
Apache/2.4.52 (Ubuntu) Server
I created /etc/apache2/sites-available/test.mysite.conf:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.xxxxxxxx.com
DocumentRoot /home/test/deploy/current
<Directory /home/test/deploy/current>
AllowOverride all
Options -MultiViews
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/test/error.log
CustomLog ${APACHE_LOG_DIR}/test/access.log combined
</VirtualHost>
Я отключил встроенный 000-default.conf следующим образом:
sudo a2dissite 000-default.conf
И проверил, что его больше нет в /etc/apache2/sites-enabled
И включил виртуальный хост:
sudo a2ensite test.mysite.conf
И проверил, что теперь он находится в /etc/apache2/sites-enabled
Я проверил, что конфигурация в порядке:
sudo apache2ctl configtest
И перезапустил сервер Apache:
sudo systemctl restart apache2
Вот список разрешений
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-x--- test test test
drwxr-xr-x test test deploy
drwxrwxr-x test test current
-rw-rw-r-- test test index.html
Он размещен на AWS, поэтому я также зашел на AWS и проверил, что входящие правила группы безопасности разрешают подключение с моего домашнего IP-адреса (у меня фиксированный IP-адрес). У меня также не включен брандмауэр на сервере.
Но когда я сделаюhttp://test.xxxxxxxxx.com
Я получаю следующее сообщение в своем браузере:
Forbidden
You don't have permission to access this resource.
Apache/2.4.52 (Ubuntu) Server at test.xxxxxxxx.com Port 80
Есть идеи?
решение1
Разрешения /home/test/
слишком ограничены.
drwxr-x--- test test test
Никому, кроме него, test
не разрешен вход в этот каталог, поэтому Apache не может его прочитать.
/home/
в любом случае не то место, где можно разместить webroot. /var/www
Вместо этого используйте .