我有一个带有MySQL、Apache2和phpMyAdmin的Ubuntu服务器。今天我从Ubuntu16.04升级到18.04。现在我有了一个问题,phpMyAdmin显示的只是一个空白的没有任何内容的白色网页。
我在apache错误日志中找到了这些条目(由我编辑的客户端和引用程序):
[Mon Aug 27 20:10:00.558433 2018] [php7:warn] [pid 17925] [client ] PHP Warning: is_dir(): open_basedir restriction in effect. File(/usr/share/php/php-php-gettext/) is not within the allowed path(s): (/usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/) in /usr/share/phpmyadmin/libraries/vendor_config.php on line 64, referer:
[Mon Aug 27 20:10:00.560176 2018] [php7:warn] [pid 17925] [client ] PHP Warning: require_once(): open_basedir restriction in effect. File(/usr/share/php/php-php-gettext/gettext.inc) is not within the allowed path(s): (/usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/) in /usr/share/phpmyadmin/libraries/common.inc.php on line 77, referer:
[Mon Aug 27 20:10:00.561106 2018] [php7:warn] [pid 17925] [client ] PHP Warning: require_once(/usr/share/php/php-php-gettext/gettext.inc): failed to open stream: Operation not permitted in /usr/share/phpmyadmin/libraries/common.inc.php on line 77, referer:
[Mon Aug 27 20:10:00.561554 2018] [php7:error] [pid 17925] [client ] PHP Fatal error: require_once(): Failed opening required '/usr/share/php/php-gettext/gettext.inc' (include_path='.') in /usr/share/phpmyadmin/libraries/common.inc.php on line 77, referer: 这些日志行指的是这些资源:
/usr/share/phpmyadmin/libraries/vendor_config.php on line 64/usr/share/phpmyadmin/libraries/common.inc.php on line 77但这些文件我从来没有手动修改过。所以我现在不敢改变它们。
这是vendor_config.php,第60至68行(第64行以“if”开头):
/**
* Path to gettext.inc file. Useful when you want php-gettext somewhere else,
* eg. /usr/share/php/gettext/gettext.inc.
*/
if (is_dir('/usr/share/php/php-php-gettext/')) {
define('GETTEXT_INC', '/usr/share/php/php-php-gettext/gettext.inc');
} else {
define('GETTEXT_INC', '/usr/share/php/php-gettext/gettext.inc');
}两个目录,
确实存在。他们的所有者是root:root,权限都是: 755
包含指向php-php-gettext中的3个文件的3个符号链接(链接和目标具有相同的名称),它们是:
所有文件都属于root:root。符号链接的权限: 777。php-php-gettext中文件的权限为: 644。
这是common.inc.php,第74至77行:
/**
* Load gettext functions.
*/
require_once GETTEXT_INC;这里怎么了?
更重要的是:我必须做些什么来纠正它?
发布于 2018-08-27 19:13:29
看起来,随着升级,PHP目录的位置发生了变化,您正在使用open_basedir来限制从哪个目录加载PHP文件。
要解决这个问题,请更新open_basedir设置中的php.ini (或者可能在D2的配置中),以包含新路径。
https://serverfault.com/questions/928197
复制相似问题