Я возился с виртуальными хостами, и теперь я получаю ошибку 403 при попытке доступа к файлам в корневом каталоге.
Вот мой httpd-vhosts.conf:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www
</VirtualHost>
<VirtualHost *:80>
ServerName test.ts
DocumentRoot /var/www/htdocs/vhost_test
<Directory /var/www/htdocs/vhost_test>
Options Indexes FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Я почти уверен, что это проблема с vhosts, потому что я закомментировал строку, которая включала httpd-vhosts.conf в httpd.conf, и проблема исчезла. Что с этим не так?
РЕДАКТИРОВАТЬ: через день после того, как Фил Холленбек помог мне с этой проблемой, сервер снова начал действовать. Та же проблема, что и раньше, и то, что я делал раньше, на этот раз не решило ее. Итак, я попытался изменить httpd-vhosts.conf следующим образом:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www
<Directory /> #added this tag
Allow from all
<Directory>
</VirtualHost>
Теперь работает.
Grep для DocumentRoot в других ваших файлах conf, таких как httpd.conf - это определено где-нибудь за пределами ваших vhosts? Из вашего вопроса и последующих действий неясно, действительно ли ваш DocumentRoot по умолчанию находится в / var / www. У вас может быть другой DocumentRoot, указывающий на совершенно другое дерево каталогов, отличное от / var / www - в этом случае изменение разрешений на / var / www ни на что не повлияет.
Также, когда вы говорите «доступ к файлам в корневом веб-каталоге», что именно вы имеете в виду? Как вы получаете доступ к файлам?
Определен ли где-нибудь документ по умолчанию? Если он отсутствует или не включает имя файла, которое вы используете по умолчанию, часто возвращается 403.
Ты сделал
Chown -R www-data:www-data /var/www
Убедитесь, что пользователь, от имени которого запущен apache, имеет разрешение на доступ к / var / www.
Надеюсь, это поможет, RayQuang