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

Ошибка 403 при попытке доступа к файлу на сервере Apache

У меня есть сервер Ubuntu 14.04 в http://images.example.com с этим в /etc/apache2/sites-enabled/richblockspoorblocks.com.conf:

<VirtualHost *:80>
        ServerAdmin admin@example.com
        ServerName example.com
        ServerAlias images.example.com
        Header set Access-Control-Allow-Origin "*"
        DocumentRoot /home/username/var/www/example.com/public_html
        ErrorLog /home/username/var/www/example.com/logs/error.log
        CustomLog /home/username/var/www/example.com/logs/access.log combined
</VirtualHost>

У меня есть файл /home/username/var/www/example.com/public_html/test.txt.

Но когда я перехожу в браузер на http://images.example.com/test.txt, Я получаю 403 запрещенную ошибку.

Forbidden
You don't have permission to access /test.txt on this server.

Apache/2.4.7 (Ubuntu) Server at images.example.com Port 80

Вот что я вижу, когда бегу ls -la пока в ~/:

drwxrwxr-x 3 www-data username 4096 May 20 21:32 var

error.log есть только client denied by server configuration сообщение.

Я уже бегал apache2 restart.

Что я должен изменить, чтобы увидеть test.txt в моем браузере?

Кажется, вы размещаете файлы своего веб-сайта и DocumentRoot в /home/user подкаталог:

    DocumentRoot /home/username/var/www/example.com/public_html

Обычно Apache работает в /var/www, у вас может быть такая ошибка при вложении в домашний каталог вашего пользователя. Если вы загрузите и укажите DocumentRoot в другом месте, кроме местоположения по умолчанию (/var/www/), вам может потребоваться исправить владельца / группу / других лиц и их разрешения, чтобы пользователь или группа (www-data) для apache их можно прочитать.

Есть ли причина использовать домашнюю страницу вашего пользователя для веб-сервера DocumentRoot?

Если вы действительно хотите, чтобы это было там, вы можете попробовать изменить группу, чтобы Apache мог ее прочитать:

Я не рекомендую это, если вы не знаете, что делаете

chgrp -R www-data /home/username/var/www/example.com/public_html

Вероятно, это должно заставить его работать. Хотя вам также может потребоваться изменить некоторые разрешения, в зависимости от того, как вы скопировали / загрузили файлы в этот каталог.

пс. Опять же, если нет действительно веских причин для такой структуры каталогов, я бы выбрал значение по умолчанию /var/www.