У меня есть сервер 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
.