phpmyadmin 无法正常工作 chrome 显示错误 500 firefox 不显示任何内容

phpmyadmin 无法正常工作 chrome 显示错误 500 firefox 不显示任何内容

我使用的是 ubuntu 16.04 LTS 开发分支。我最近安装了 mysql、apache2 和 phpmyadmin。当我localhost/phpmyadmin在 Firefox 的地址栏中输入时,它什么也没显示,而 Chrome 则给出 500 服务器错误。当我看到 apache error.log 时,它说

[Fri Jan 29 16:39:11.833839 2016] [:error] [pid 2795] [client 127.0.0.1:58438] PHP Fatal error:  require(): Failed opening required '/usr/share/php//Crypt/Random.php' (include_path='.') in /usr/share/phpmyadmin/libraries/session.inc.php on line 16

Random.php存在于同一位置,错误告诉failed opening 我我正在使用

  • Ubuntu 16.04 开发分支
  • mysql 版本 14.14 发行版 5.6.28,
  • Apache/2.4.18(Ubuntu)
  • PHP 5.6.17-3ubuntu1 (命令行)

*请忽略语法错误。

答案1

phpseclib 中的 Random.php 似乎已更改。我做了一个快速修复,更改如下:

$_SESSION[' PMA_token '] = bin2hex(phpseclib\Crypt\Random::string(16));

在第 116 行和第 135 行

$_SESSION[' PMA_token '] = bin2hex(crypt_random_string(16));

在文件中/usr/share/phpmyadmin/libraries/session.inc.php

目前这应该可以解决问题,直到 phpmyadmin 开发人员拿出解决方案。

编辑于 2016 年 1 月 30 日:PMA 开发人员已修复此问题。无需手动更改文件。

答案2

user185719 的回答仅对我有部分帮助,因为报告的错误仍然存​​在:会话.inc.php无法包括随机.php. 呼唤文件已存在()随机.php总是返回 false,虽然没有权限问题,但没有安全模式,所以我真的不明白为什么它不能按预期工作。我不得不做以下解决方法才能使 phpmyadmin 正常工作(至少现在是这样,直到 phpmyadmin 的工作人员修复了这个问题):

  • 复制文件的以下内容/usr/share/php/Crypt/Random.php进入/usr/share/phpmyadmin/libraries/session.inc.php

    define('CRYPT_RANDOM_IS_WINDOWS', strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
    
    function crypt_random_string($length) {
        if (CRYPT_RANDOM_IS_WINDOWS) {
            ....
        }
    }
    

复制上述代码后,用户 185719 的回答应该可以解决问题。我的系统:

Linux Mint 17.3 Rosa
PHP 5.6.17-3
Apache 2.4.18
PhpMyadmin 4.5.4-1

答案3

由于某种原因,如果将 Crypt/Random.php 文件放在 /usr/share/php 文件夹中,phpmyadmin 无法读取它。此外,我还尝试了 /usr/local/share/php5,结果相同。最后,我将整个 Crypt 文件夹从 /usr/share/php 复制到 /usr/share/phpmyadmin/libraries/

cp -r /usr/share/php/Crypt /usr/share/phpmyadmin/libraries/

并修改 /usr/share/phpmyadmin/libraries/session.inc.php 以从中包含 Crypt/Random.php。

#require PHPSECLIB_INC_DIR . '/Crypt/Random.php';
require ("/usr/share/phpmyadmin/libraries/Crypt/Random.php");

它成功了,然后我得到了第二个错误,如 jancoow 所述。他的修复也帮助我解决了这个问题(两个地方 - 在我的情况下是第 117 行和第 136 行 - 创建会话并销毁它)。

所以最后的问题仍然是 - 为什么不能从 /usr/share/php 或 /usr/local/share/php5 文件夹访问这些文件?无需添加,所有访问权限均正常。

我的设置是

  • Kubuntu 16.04 开发

  • phpmyadmin 4.5.4.-1

  • apache2-bin 2.4.18-1ubuntu

  • libapache2-mod-php5 5.6.16+dfsg-1ubuntu1

相关内容