NGINX возврат 404 при посещении?

NGINX бросает 404, когда я посещаю, и в моих журналах ошибок он дает

/home/dev/Dropbox/www/index.php" failed (13: permission denied)

Я не уверен, почему, это только произошло при изменении моего направления к Dropbox.

Выполнение ps -ef | grep nginx выводы:

root 11373 5885 0 15:48 pts/0 00:00:00 sudo nano /etc/nginx/sites-available/default 
root 11374 11373 0 15:48 pts/0 00:00:00 nano /etc/nginx/sites-available/default 
dev 11566 3392 0 15:55 ? 00:00:03 gedit /var/log/nginx/error.log 
root 11607 1 0 16:01 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on;master_process on; 
www-data 11608 11607 0 16:01 ? 00:00:00 nginx:
worker process 
www-data 11609 11607 0 16:01 ? 00:00:00 nginx: worker
process 
dev 11715 5885 0 16:16 pts/0 00:00:00 grep --color=auto nginx

========================================================================

Выполнение ls -l /home/dev/Dropbox/www/index.php выводы:

-rw-rw-r-- 1 dev dev 2 Feb 10 15:26 /home/dev/Dropbox/www/index.php
1
задан 10 February 2018 в 19:27

3 ответа

Nginx запускается как пользователь www-данных. /home/dev/Dropbox/www/index.php принадлежит пользователю dev и входит в группу dev, у которой есть права на чтение и запись. Другие имеют доступ только для чтения. Никто не имеет прав на выполнение файла.

Запуск chmod +x /home/dev/Dropbox/www/index.php должен установить права на выполнение как для владельца, так и для группы и других. Вы увидите права доступа, например -rwxrwxr-x, если снова выполните ls -l для файла.

Также вам может потребоваться настроить nginx, чтобы он мог использовать / home / dev / Dropbox / www / для каталога данных.

0
ответ дан 8 December 2019 в 02:23

Выполнение веб-сайта из любого корневого каталога вызовет проблемы. Полагайте, что для вхождения в тот каталог пользователь, должно быть, прочитал и выполняет ("пересечение" для каталогов) полномочия, доступные им на каждой папке в дереве доступа (/home, /home/user/, /home/user/Dropbox/, и т.д.), пока Вы не достигаете каталога для самого docroot.

Это представляет большую угрозу безопасности - если кто-то, окажется, угонит веб-сервер, то они смогут пересечь в Ваши собственные данные корневого каталога, не имея необходимость быть суперпользователем.

Любые веб-сайты должны быть выполнены за пределами Вашего фактического корневого каталога или Dropbox'd или нет.

Необходимо было бы сделать sudo chmod +rx /home/ /home/user/ /home/user/Dropbox/ /home/user/Dropbox/www/ правильно позволять вещам получить доступ к нему, если Вы не начинаете делать высоко настроенные правила доступа.

(Обратите внимание, что Dropbox не является нормальным способом копировать/синхронизировать Ваш сайт из-за проблем полномочий, которые он представляет как это...),

0
ответ дан 8 December 2019 в 02:23

Возможный, Вы используете php-fpm с nginx. Если это, необходимо позволить nginx пользователю писать в сокет php-fpm.

Файл редактирования

нано sudo/etc/php/7.0/fpm/pool.d/www.conf

опция некомментария

; listen.mode = 0600

установите новое значение (это, позволяют всю пользовательскую запись сокету php-fpm),

listen.mode = 0666

Перезапустите php-fpm экземпляр для, применяют изменения

sudo/etc/init.d/php7.0-fpm перезапускают

0
ответ дан 8 December 2019 в 02:23

Другие вопросы по тегам:

Похожие вопросы: