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 в 20:27

6 ответов

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

Редактировать файл

sudo nano /etc/php/7.0/fpm/pool.d/www. conf

uncomment опция

sudo nano /etc/php/7.0/fpm/pool.d/www.conf

; listen.mode = 0600

listen.mode = 0666

установить новое значение (разрешить всем пользователям писать в сокет php-fpm)

прослушать .mode = 0666

0
ответ дан 17 July 2018 в 21:08

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

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

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

0
ответ дан 17 July 2018 в 21:08

Запуск веб-сайта из любого домашнего каталога вызовет проблемы. Учтите, что для доступа к этому каталогу пользователь должен иметь доступ к ним для чтения и выполнения («перемещение» для каталогов) в каждой папке в дереве доступа (/home, /home/user/, /home/user/Dropbox/ и т. Д.) До тех пор, пока вы попадаете в каталог для самого docroot.

Это вводит большой риск для безопасности - если кто-то случайно захватит веб-сервер, они смогут перемещаться в ваши собственные данные домашнего каталога, не будучи суперпользователем. [ ! d1]

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

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

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

0
ответ дан 17 July 2018 в 21:08

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

Редактировать файл

sudo nano /etc/php/7.0/fpm/pool.d/www. conf

uncomment опция

sudo nano /etc/php/7.0/fpm/pool.d/www.conf

; listen.mode = 0600

listen.mode = 0666

установить новое значение (разрешить всем пользователям писать в сокет php-fpm)

прослушать .mode = 0666

0
ответ дан 23 July 2018 в 21:48

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

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

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

0
ответ дан 23 July 2018 в 21:48
  • 1
    Спасибо за ответ, хотя я все еще получаю 404. Запуск ls -l на index.php снова возвращается -rw-rw-r-- 1 dev dev 2 Feb 10 15:26 /home/dev/Dropbox/www/index.php, я также не понимаю, что вы подразумеваете под последним предложением, может быть, вы могли бы объяснить дальше. – Adam G 10 February 2018 в 20:49

Запуск веб-сайта из любого домашнего каталога вызовет проблемы. Учтите, что для доступа к этому каталогу пользователь должен иметь доступ к ним для чтения и выполнения («перемещение» для каталогов) в каждой папке в дереве доступа (/home, /home/user/, /home/user/Dropbox/ и т. Д.) До тех пор, пока вы попадаете в каталог для самого docroot.

Это вводит большой риск для безопасности - если кто-то случайно захватит веб-сервер, они смогут перемещаться в ваши собственные данные домашнего каталога, не будучи суперпользователем. [ ! d1]

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

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

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

0
ответ дан 23 July 2018 в 21:48
  • 1
    Я получаю 'chmod: changing permissions of '/home/': Operation not permitted при попытке сделать это. – Adam G 10 February 2018 в 21:08
  • 2
    Возможно, вам понадобится использовать sudo с помощью команды chmod. – Thomas Ward♦ 10 February 2018 в 21:55

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

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