gpt4 book ai didi

ubuntu - 自定义 PHP 文件不会加载(在 magento 2 安装 ubuntu + nginx 之外)

转载 作者:行者123 更新时间:2023-12-04 19:00:21 24 4
gpt4 key购买 nike

我试图让一个位于 Magento 2 安装根目录中的自定义脚本,但是当我在浏览器上导航到它时,它返回 404 错误。为了进行测试,我尝试创建一个空的 php 文件(abc.php),然后在浏览器(域/abc.php)中导航到它,即使我确定该文件存在于该位置,它仍然会返回 404。我已经尝试 CHMODding 到 777 并将文件的所有权更改为与目录的其余部分相同,但我仍然得到这个 404。

我正在使用 ubuntu 18.04 + NGINX 作为 Web 服务器来运行 Magento 2。Magento 2 安装正在浏览器上运行,只是我导航到的任何自定义脚本都会返回 404。有没有人有过类似的事情或知道该怎么做接下来调试这个问题:/?

最佳答案

如果您根据 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 之外的任何 PHP 文件。 , /get.php , ETC。

因此,为了允许执行自定义 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 的实际根目录中。

关于ubuntu - 自定义 PHP 文件不会加载(在 magento 2 安装 ubuntu + nginx 之外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54979797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com