Я пытаюсь настроить свой собственный веб-сервер, чтобы узнать больше об администраторе сервера.
Я решил, что хочу обслуживать файлы каждого сайта из папки public_html
внутри каталога users / home.
Я установил Nginx, отредактировал nginx.conf и изменил имя пользователя / группу на nginx.
Я добавил нового пользователя для нового сайта и изменил файл vhosts, чтобы он выглядел как так;
server {
listen 80;
listen [::]:80;
server_name website.com www.website.com;
root /home/website/public_html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~* \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Но когда я пытаюсь попасть на сайт, он возвращает ошибку 404 Not Found.
Когда я проверяю журнал ошибок, я вижу следующие ошибки:
2019/01/02 19:49:45 [crit] 18248#0: *1 stat() "/home/website/public_html/" failed (13: Permission denied)
Есть шанс, что кто-то сталкивался с этим раньше и мог бы сказать мне, как с этим справиться?
Я осмотрелся и увидел несколько сообщений о getenforce, но когда я запускаю его, он говорит Disabled
.
Я использую CentOS7, если это
Ура,
Это разрешение вашего домашнего каталога запрещает доступ к nginx.
Попробуйте:
ls -ld /home/website
затем
setfacl -R -m u:nginx:rwx /home/website
Или
chown -R nginx:nginx /home/website
chmod 655 /home/website
Следуя руководству с этого веб-сайта, я сделал это за меня: https://caradede.blogspot.com/2017/12/how-to-solve-13-permission-denied.html
# setsebool -P httpd_enable_homedirs 1
# setenforce 0
# systemctl restart nginx
# systemctl daemon-reload
Решением для меня было установить /home/user/public_html
разрешения на 755. По умолчанию он создавался с разрешениями 751. Это блокировало возможность пользователя nginx «прочитать» его. Некоторые панели веб-хостинга, такие как VestaCP, CPanel и другие, могут непреднамеренно сделать это при добавлении нового сайта через свой интерфейс.
Решение:
sudo chmod 755 ~/public_html
(настройте путь к вашей папке public_html)