Назад | Перейти на главную страницу

Ошибка 403 при попытке доступа к корневому каталогу

Я возился с виртуальными хостами, и теперь я получаю ошибку 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