造成报错的原因是因为服务器开启了防跨站、防跨目录的功能,关闭功能即可。

Apache

Apache是比较成熟的中间件,我们可以通过修改Apache安装目录下的vhost.conf来达到防止跨站跨目录的目的。在网站配置中加入以下代码

<VirtualHost *:80>
php_admin_value open_basedir "/www/wwwroot/:/tmp/:/proc/";

需要把/www/wwwroot/改为你网站所在目录的绝对路径。

值得注意的是如果使用这种方式,那么虚拟用户就不再自动继承php.ini中的open_basedir值了,这样会失去灵活性。

Nginx

Nginx也可以通过修改配置文件来达到防跨站跨目录的效果。

fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";

通常Nginx的站点配置文件里用了include fastcgi.conf,我们可以把这行加在fastcgi.conf里就OK了。 如果某个站点需要单独设置额外的目录,把上面的代码写在include fastcgi.conf;这行下面就OK了,会把fastcgi.conf中的设置覆盖掉。 这种方式的设置需要重启nginx后生效。

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:312334557@qq.com 我们将配合处理!

原文地址:《帝国CMS后台从手机端向主访问端切换时,提示“访问端不存在”解决方法》发布于2021-07-08 04:21:06