Если вы настроили 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.