加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP file_exists()函数在/usr/bin/mysql中返回false

发布时间:2020-12-13 16:31:56 所属栏目:PHP教程 来源:网络整理
导读:我读过很多关于这个问题的帖子,没有一个与我的问题完全匹配.我在GoDaddy虚拟主机上有一个WordPress网站(目前为3.5). 11月份,我选择将OOS从CentOS 5升级到CentOS 6.3,其中包括完整的O / S重新安装,我无法控制,我没有任何信息.在重新安装O / S之后,我从刚启动
我读过很多关于这个问题的帖子,没有一个与我的问题完全匹配.我在GoDaddy虚拟主机上有一个WordPress网站(目前为3.5). 11月份,我选择将OOS从CentOS 5升级到CentOS 6.3,其中包括完整的O / S重新安装,我无法控制,我没有任何信息.在重新安装O / S之后,我从刚启动之前的备份重建了站点.

重建后,我们多年来一直使用的WordPress插件,WP-DBManager突然停止备份我们的mysql数据库.备份失败,因为备份面板声称“MYSQL路径不存在”.令人讨厌的是,当您访问DB选项页面并告诉它自动检测mysql路径时,选项页面会生成/usr/bin/mysql,这是正确的.我可以使用SSH登录到该站点.权限是:

-rwxr-xr-x 1 root root 338184 Jun 22 05:58 /usr/bin/mysql

这应该是工作. SOMETHING在我的网站权限改变了这个重建,我不知道什么;到目前为止,我只记录了WordPress配置.我所做的研究表明它可能与PHP安全模式有关.我们运行PHP 5.3.3,phpinfo()中的配置列表不显示

--enable-safe-mode

这意味着安全模式应该是OFF. php.ini中的安全模式设置如下:

safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
safe_mode_exec_dir = 
safe_mode_include_dir = 
safe_mode = off
safe_mode_gid = off

我已经将safe_mode_gid更改为ON,没有任何效果.我有一个从生产站点建立的测试站点,其中safe_mode_include_dir =?所以我尝试了,没有任何效果.测试网站运行PHP 5.3.14,上述的安全模式设置是相同的,除了safe_mode_include_dir.我检查了ENV变量,并且/usr/bin包含在PATH中:

PATH =在/usr/local / bin目录:/ bin中:在/usr/bin中:在/usr/local / sbin中:/usr/sbin目录:/ sbin目录:/家庭/ lrservice /箱

我不知道这是否是一个环境变量问题,这里是安全模式条目:

safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH

这些设置在工作测试网站上不一样,其中一个如下:

safe_mode_allowed_env_vars = PHP_LANGLANG_

由于该网站功能完备,除此之外,我知道mysql的权限一般是正确的.这是否为任何人响铃任何钟?如果安全模式正式关闭,为什么我会得到这些?我有一种感觉,有一些明显的,愚蠢的,我失踪了.

您可以从/usr/bin目录中的ssh会话访问mysql二进制文件,但php无法在同一位置找到它.
我假设你的系统正在使用apache2网络服务器.

ChrootDir指令是否存在于apache配置文件中(通常位于/etc/httpd/conf/httpd.conf)?

如果是这样的话,你可以查看这个指令指向的目录,如果有一个链接到mysql二进制文件.如果没有,只需在ssh会话中执行以下命令(假设您有权限执行此操作)即可添加它:

$ln /usr/bin/mysql /chroot/path/usr/bin/mysql

用/ chroot /路径替换为ChrootDir指令路径.

其中一个意见提到了open_basedir PHP setting,可以在php.ini,httpd.conf或.htaccess文件中进行配置.

此设置限制对PHP可用文件系统的某些目录的访问.一个可能的解决方法是删除这个限制,使用您所使用的插件执行的脚本,如果该设置不受保护:

找到您的wordpress目录中插件安装的脚本,
>创建一个.htaccess文件,使用以下命令解除包含脚本的目录中的限制:

$echo’php_value open_basedir none’>>的.htaccess

上述将在.htaccess文件末尾的简单引用之间添加文本,如有必要,创建它.
这个解决方案可能是最安全的,因为它可以减轻安全性,只放弃这些脚本.你应该保持警惕,你会让这些脚本可能比他们真正需要的操作更多的访问.

如果上述不起作用,这意味着该设置是受保护的,必须在httpd.conf或php.ini中进行更改,该文件应位于/ etc目录中.详见SO question.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读