自定义 PHP 文件不会加载(在 magento 2 安装之外 ubuntu + nginx)
Custom PHP files wont load (Outside of magento 2 installation ubuntu + nginx)
我试图让自定义脚本位于 Magento 2 安装的根目录中,但是当我在浏览器上导航到它时,它 return 出现 404 错误。为了测试,我尝试创建一个空的 php 文件 (abc.php) 然后在浏览器中导航到它 (domain/abc.php) 它仍然会 return 404,即使我确定文件存在于该位置。我已尝试将 CHMODding 更改为 777 并将文件的所有权更改为与目录的其余部分相同,但我仍然收到此 404。
我正在使用 ubuntu 18.04 + NGINX 作为 运行 Magento 2 的 Web 服务器。Magento 2 安装在浏览器上运行,只是我导航到的任何自定义脚本 return这是一个 404。有没有人遇到过类似的事情,或者知道接下来要做什么来调试这个问题:/?
如果在域内试试这个:-
localhost/domailname/filename.php
如果文件在域外请尝试此操作
localhost/filename.php
如果您根据 Magento 2 的建议设置了 NGINX,那么它将只允许 PHP 从定义明确的已知 PHP 文件列表中执行。也就是说,如果您 look here,您会注意到:
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {
...
fastcgi_pass fastcgi_backend;
...
}
和this:
location ~* (\.php$|\.htaccess$|\.git) {
deny all;
}
这实际上意味着拒绝执行除 /index.php
、/get.php
等之外的任何 PHP 文件
因此,要允许执行自定义 PHP 文件,您需要在第一个位置调整 REGEX,以包含自定义文件的名称,例如:
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check|test)\.php$ {
除了其他已知的 PHP 入口点之外,上述内容还允许执行 /test.php
。
此外,如果您的 Magento 网站在 NGINX 配置中的根目录是 /path/to/pub
(同样,根据建议),那么您需要将自定义文件放在 pub
子目录中,而不是实际的目录中Magento 的根。
我试图让自定义脚本位于 Magento 2 安装的根目录中,但是当我在浏览器上导航到它时,它 return 出现 404 错误。为了测试,我尝试创建一个空的 php 文件 (abc.php) 然后在浏览器中导航到它 (domain/abc.php) 它仍然会 return 404,即使我确定文件存在于该位置。我已尝试将 CHMODding 更改为 777 并将文件的所有权更改为与目录的其余部分相同,但我仍然收到此 404。
我正在使用 ubuntu 18.04 + NGINX 作为 运行 Magento 2 的 Web 服务器。Magento 2 安装在浏览器上运行,只是我导航到的任何自定义脚本 return这是一个 404。有没有人遇到过类似的事情,或者知道接下来要做什么来调试这个问题:/?
如果在域内试试这个:-
localhost/domailname/filename.php
如果文件在域外请尝试此操作
localhost/filename.php
如果您根据 Magento 2 的建议设置了 NGINX,那么它将只允许 PHP 从定义明确的已知 PHP 文件列表中执行。也就是说,如果您 look here,您会注意到:
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {
...
fastcgi_pass fastcgi_backend;
...
}
和this:
location ~* (\.php$|\.htaccess$|\.git) {
deny all;
}
这实际上意味着拒绝执行除 /index.php
、/get.php
等之外的任何 PHP 文件
因此,要允许执行自定义 PHP 文件,您需要在第一个位置调整 REGEX,以包含自定义文件的名称,例如:
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check|test)\.php$ {
除了其他已知的 PHP 入口点之外,上述内容还允许执行 /test.php
。
此外,如果您的 Magento 网站在 NGINX 配置中的根目录是 /path/to/pub
(同样,根据建议),那么您需要将自定义文件放在 pub
子目录中,而不是实际的目录中Magento 的根。