当前位置: 首页>>技术教程>>正文


linux – ubuntu升级后phpmyadmin symlinks错误

, , ,

问题描述

将我的ubuntu服务器升级到13.04之后,我的phpmyadmin不再可用。浏览器报告500(内部服务器错误),并且在error.log中显示:

PHP Fatal error: require_once(): Failed opening required ‘./libraries/php-gettext/gettext.inc’ (include_path=’.’) in /usr/share/phpmyadmin/libraries/select_lang.lib.php on line 370

任何其他php软件在计算机上都可以正常运行,mysql本身也可以。 Phpmyadmin已正确安装,并且在dist-upgrade之前运行正常。我也做了sudo aptitude reinstall phpmyadmin,但这没有帮助。

phpmyadmin的版本号是4:3.5.8.1-1

任何想法,这里可能有什么问题?

/edit:到目前为止,我发现这里的符号链接似乎不起作用:

mcnesium@fluse:/usr/share/phpmyadmin/libraries/php-gettext$ ls -l
total 0
lrwxrwxrwx 1 root root 36 Apr 25 03:38 gettext.inc -> ../../../php/php-gettext/gettext.inc
lrwxrwxrwx 1 root root 36 Apr 25 03:38 gettext.php -> ../../../php/php-gettext/gettext.php
lrwxrwxrwx 1 root root 36 Apr 25 03:38 streams.php -> ../../../php/php-gettext/streams.php

我备份了文件夹php-gettext,然后cp -r将符号链接移到另一边,现在可以使用了。因此这实际上似乎是symlink-problem。

这是我/etc/phpmyadmin/apache.conf的开始

# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

因此应该立即遵循符号链接。在ubuntu升级之前,一切正常。那么符号链接怎么了?

最佳方法

对我来说,以下解决方案解决了这个问题:

在我的网站conf文件中,我有以下部分:

<IfModule mod_php5.c>
    AddType application/x-httpd-php .php

    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_flag register_globals Off
    php_admin_flag allow_url_fopen Off
    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
    php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/
</IfModule>

自从安装Ubuntu 13.04以来,我所做的唯一更改是在open_basedir中包含了/usr /share /php /php-gettext /,并且达到了目的。

次佳方法

为他人:

sudo apt-get install php-gettext

可能是答案(特别是在php7中,因为默认情况下似乎不包括此功能,可能是因为它是pear扩展名)。

第三种方法

如果您的open_basedir已经包含/usr/share/php/php-gettext/(就我而言),并且您无法使其与先前的答案配合使用,则请执行以下操作:

sudo rm /usr/share/phpmyadmin/libraries/php-gettext/*

删除符号链接

sudo ln /usr/share/php/php-gettext/* /usr/share/phpmyadmin/libraries/php-gettext

创建硬链接

这使phpmyadmin再次工作。为什么它在13.04中中断,而apache.conf表示应该链接,却没有遵循符号链接,这对我来说还是个谜。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9309.html,未经允许,请勿转载。