Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mediawiki抱怨OpenU basedir限制。我如何解决它?_Php_Mediawiki - Fatal编程技术网

Php Mediawiki抱怨OpenU basedir限制。我如何解决它?

Php Mediawiki抱怨OpenU basedir限制。我如何解决它?,php,mediawiki,Php,Mediawiki,在最近更新(系统和mediawiki)之后,我的mediawiki基本上是完全空白的。但数据库和一切似乎都完好无损。启用php调试输出后,我得到以下消息 警告:is_executable():open_basedir限制生效。文件(/usr/bin/php)不在允许的路径内:(/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/var/lib/mediawiki/)在第655行的/usr/share/webapps/medi

在最近更新(系统和mediawiki)之后,我的mediawiki基本上是完全空白的。但数据库和一切似乎都完好无损。启用php调试输出后,我得到以下消息

警告:is_executable():open_basedir限制生效。文件(/usr/bin/php)不在允许的路径内:(/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/var/lib/mediawiki/)在第655行的/usr/share/webapps/mediawiki/includes/Wiki.php中


我的问题是我如何着手解决这个问题?简单地将/usr/bin/php添加到我的open_basedir()限制中似乎非常不安全。

错误似乎发生在
MediaWiki::doJobs()
中,它试图启动一个单独的php进程在后台异步处理。要解决此问题,您可以:

  • 编辑php.ini以将
    /usr/bin/php
    添加到允许的路径

  • 在LocalSettings.php中设置为完全禁用自动作业处理,改为通过cron运行,或

  • 设置为指向在use\u basedir下允许但不是可执行程序的某个文件,这将导致
    is\u executable()
    检查以静默方式失败,并强制MediaWiki返回同步作业处理

请注意,最后一个选项虽然最简单,但可能存在性能问题,因为这意味着MediaWiki需要在正常web请求处理结束时运行后台作业,这可能会增加页面加载时间


也就是说,如果您不想使用第一个选项,那么将后两个选项结合起来可能是最安全和最有效的:通过cron运行后台作业会使它们脱离正常的请求处理路径,将
$wgPhpCli
设置为伪值可确保MediaWiki也不会出于任何其他目的启动后台PHP进程。

PHP试图访问PHP可执行文件似乎非常愚蠢。我会从Wiki.php的第655行开始检查您的服务器和Wiki文件中是否存在一些错误配置,看看它到底在那里做什么,以及为什么。嗯,升级后您是否从cli运行了
php maintenance/update.php
?运行
php maintenance/runJobs.php
清空作业队列,和
php maintenance/update.php
按照你的建议,我没有修改这个问题。Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另见。