php - Mediawiki 提示 open_basedir 限制。我该如何解决?

标签 php mediawiki

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

Warning: is_executable(): open_basedir restriction in effect. File(/usr/bin/php) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/var/lib/mediawiki/) in /usr/share/webapps/mediawiki/includes/Wiki.php on line 655

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

最佳答案

看来错误发生在 MediaWiki::doJobs() 中,它试图启动一个单独的 PHP 进程来处理 job queue在后台异步。要修复它,您可以:

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

  • 设置$wgJobRunRate = 0在 LocalSettings.php 中完全禁用自 Action 业处理,然后运行 ​​maintenance/runJobs.php通过 cron 代替,或者

  • 设置$wgPhpCli指向一些在 use_basedir 下允许但不是可执行程序的文件,这将导致 is_executable() 检查静默失败并强制 MediaWiki 回退到同步作业处理。

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

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

关于php - Mediawiki 提示 open_basedir 限制。我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20905110/

相关文章:

php - MySQL 插入查询未运行

php - 如何使用 php 在 MediaWiki 页面上查找图像的文件名?

mediawiki - 在 MediaWiki 上显示编辑计数

javascript - 不存在 'Access-Control-Allow-Origin' header 。 origin因此不允许访问

php - 调用 PHP 函数时如何防止显示错误

php - Laravel: Eloquent ,多对多关系,我如何只急切地加载相关模型的 ID?

php - 使用 codeigniter PayPal_Lib 库的 PayPal 定期付款

css - 侧边栏和主要内容在窗口中居中而不在同一个父容器中

python - 如何加速 Pywikibot?

javascript - PHP - 回显 Javascript 函数