Пользовательские файлы PHP не загружаются (за пределами установки magento 2 ubuntu + nginx) - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь разрешить собственный скрипт, который находится в корневом каталоге установки Magento 2, но когда я перехожу к нему в своем браузере, он возвращает ошибку 404.Для тестирования я попытался создать пустой файл php (abc.php), а затем перейти к нему в браузере (домен / abc.php), он все равно выдаст 404, хотя я уверен, что файл существует в этом месте.Я попробовал CHMODding для 777 и изменил владельца файла на то же, что и остальная часть каталога, но я все еще получаю это 404.

Я использую Ubuntu 18.04 + NGINX в качестве веб-сервера для запуска Magento 2.Установка Magento 2 работает в браузере, просто любой пользовательский скрипт, по которому я перехожу, возвращает 404. Кто-нибудь когда-либо имел что-нибудь подобное или есть идеи о том, что делать дальше для устранения этой проблемы: /?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Если вы настроили NGINX в соответствии с рекомендациями Magento 2, он разрешит выполнение PHP только из списка хорошо определенных, известных файлов PHP.А именно, если вы посмотрите здесь , вы заметите:

location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {
    ...
    fastcgi_pass   fastcgi_backend;
    ...
}

И это :

location ~* (\.php$|\.htaccess$|\.git) {
    deny all;
}

Что по сути означаетчтобы запретить выполнение для любого файла PHP, отличного от /index.php, /get.php и т. д.

Таким образом, чтобы разрешить выполнение пользовательского файла PHP, вам необходимо настроить REGEX в первом месте, чтобы включитьимя пользовательского файла, например:

location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check|test)\.php$ {

Вышеуказанное позволит выполнить /test.php в дополнение к другим известным точкам входа PHP.

Кроме того, если корень вашего сайта Magento в конфигурации NGINXэто /path/to/pub (опять же, согласно рекомендациям), тогда вам нужно поместить свой пользовательский файл в этот подкаталог pub, а не внутри фактического корня Magento.

0 голосов
/ 04 марта 2019

Попробуйте, если внутри домена: -

localhost/domailname/filename.php

Попробуйте, если файл за пределами домена

localhost/filename.php
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...