我已经阅读了很多关于这个问题的帖子,但没有一个完全符合我的问题。我在 GoDaddy 虚拟主机上有一个 WordPress 网站(目前是 3.5)。11 月,我选择将 O/S 从 CentOS 5 升级到 CentOS 6.3,这涉及到完整的 O/S 重新安装,对此我无法控制,也没有任何信息。在重新安装 O/S 之后,我从开始前的备份中重建了站点。
重建后,我们使用多年的 WordPress 插件 WP-DBManager 突然停止备份我们的 mysql 数据库。备份失败,因为备份面板声称“MYSQL 路径不存在”。烦人的是,当您进入 DB Options 页面并告诉它自动检测 mysql 路径时,选项页面会生成 /usr/bin/mysql,这是正确的。我可以使用 SSH 登录该站点,它就在那里。权限是:
-rwxr-xr-x 1 root root 338184 Jun 22 05:58 /usr/bin/mysql
这应该有效。我的网站权限中的某些内容随着这次重建而改变,我不知道是什么;到目前为止,我只记录了 WordPress 配置。我所做的研究表明这可能与 PHP 安全模式有关。我们运行 PHP 5.3.3,并且 phpinfo() 的配置列表不显示
--enable-safe-mode
这意味着安全模式应该关闭。启动时 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:/home/lrservice/bin
我不知道这是否是环境变量问题,这里是安全模式条目:
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
这些设置在工作测试站点上并不完全相同,其中之一是:
safe_mode_allowed_env_vars = PHP_ LANG LANG_
由于该站点除此之外功能齐全,因此我知道mysql的权限通常是正确的。这会为任何人敲响警钟吗?如果安全模式被正式关闭,为什么我会得到这一切?我有一种感觉,我错过了一些明显而愚蠢的东西。