NGINX дает ошибку 404 после создания символической ссылки - PullRequest
0 голосов
/ 07 апреля 2019

Мой сайт работает на php-larvel и nginx в качестве веб-сервера, а корневая директория - /public, все было в порядке, но когда я захотел защитить свой URL-адрес для входа в phpmyadmin, создал символическую ссылку с помощью этой команды в /public_html :

ln -s /usr/share/phpmyadmin/phpmyadmin-YOUR-SECRET-CODE

сайт отключился, показывая 404, и nginx показывает эту ошибку:

2019/04/07 07:09:02 [ошибка] 4163 # 4163: * 110 индекс каталога«/home/admin/web/example.com/public_html/» запрещен

, конфигурация nginx уже настроена для обслуживания на /public.Я не знаю, почему он пытается получить доступ к public_html по запросам.

1 Ответ

0 голосов
/ 07 апреля 2019

Пользователь, под которым работает NGINX, должен иметь доступ к каталогам, которые он пытается прочитать и / или записать.В большинстве случаев NGINX работает как пользователь nginx или www-data.

Мы можем проверить директиву пользователя в /etc/nginx/nginx.conf, выполнив:

grep user/etc/nginx/nginx.conf Если при возврате этой команды появляется пользователь, мы можем изменить владельца каталогов, о которых вы упомянули, с помощью chown.

chown -R user: group / insert /путь / здесь Итак, если NGINX работает как www-data:

chown -R www-data: www-data / insert / path / here Если команда grep не выплевывает пользователя, мы всегда можемпосмотрите, кому принадлежат каталоги NGINX, и мы сможем использовать этого пользователя.

Просто запустите:

ls -al / etc / nginx и извлеките пользователя из вывода.

Как примечание, все немного по-другому, если вы используете PHP-FPM с NGINX.В этом случае каталоги и файлы должны принадлежать пользователю, который запускает процесс PHP-FPM как.

Если вы используете PHP-FPM, вы можете перейти в главный каталог и проверить пулфайл.Если вы ничего не изменили для своей установки, то для пользователя PHP-FPM по умолчанию всегда используется www-data, так что это должен быть пользователь, которому принадлежат все файлы и каталоги.

cd / etc / php /* / fpm / pool.d /, а затем:

nano www.conf

...