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
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 / для каталога данных.
Выполнение веб-сайта из любого корневого каталога вызовет проблемы. Полагайте, что для вхождения в тот каталог пользователь, должно быть, прочитал и выполняет ("пересечение" для каталогов) полномочия, доступные им на каждой папке в дереве доступа (/home
, /home/user/
, /home/user/Dropbox/
, и т.д.), пока Вы не достигаете каталога для самого docroot.
Это представляет большую угрозу безопасности - если кто-то, окажется, угонит веб-сервер, то они смогут пересечь в Ваши собственные данные корневого каталога, не имея необходимость быть суперпользователем.
Любые веб-сайты должны быть выполнены за пределами Вашего фактического корневого каталога или Dropbox'd или нет.
Необходимо было бы сделать sudo chmod +rx /home/ /home/user/ /home/user/Dropbox/ /home/user/Dropbox/www/
правильно позволять вещам получить доступ к нему, если Вы не начинаете делать высоко настроенные правила доступа.
(Обратите внимание, что Dropbox не является нормальным способом копировать/синхронизировать Ваш сайт из-за проблем полномочий, которые он представляет как это...),
Возможный, Вы используете 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 перезапускают