ubuntu升级后phpmyadmin symlinks错误


15

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

PHP致命错误:require_once():无法在第370行的/usr/share/phpmyadmin/libraries/select_lang.lib.php中打开所需的'./libraries/php-gettext/gettext.inc'(include_path ='。')。

任何其他php软件在计算机上都可以正常运行,mysql本身也可以。Phpmyadmin已正确安装,并且在dist升级之前可以正常工作。我也做了,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's符号链接了一个,现在就可以了。因此,这实际上似乎是一个符号链接问题。

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

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

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


检查下的权限/usr/share/php/php-gettext。您正在使用SELinux / AppArmor吗?
dawud

Answers:


7

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

在我的网站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 /,并且达到了目的。


23

为他人:

sudo apt-get install php-gettext

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


在执行全新安装的Ubuntu 16.04之后,出现错误。在将15.10升级到16.04之后,它可以正常工作,但是由于其他问题,我不得不重新安装。显式安装php-gettext软件包(并添加Require all grantedphpmyadmin.conf)使它可以再次工作。
bovender

1
这是实际答案!
tika

感谢那; 我没想到 这并php-mbstring要求使phpmyadmin与php7
一起

1
这很奇怪,因为php-gettext是phpmyadmin软件包的依赖项:packages.ubuntu.com/xenial/phpmyadmin,所以我不确定为什么它还不存在。
山姆·威尔逊

首先安装LAMP,然后安装phpmyadmin,也许这是问题的一部分
两次jr

5

如果您的文件已经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表示应该链接,却没有遵循符号链接,这对我来说仍然是个谜。


谢谢,做到了。open_basedir行已经包含php-gettext目录,因此必须重新安装这些链接。
Karma Fusebox 2014年

0

我必须禁用in (带有前缀#Alias /phpmyadmin /usr/share/phpmyadmin/etc/apache2/conf-available/phpmyadmin.conf因为我正在使用phpmyadmin的自定义虚拟主机文件在子域上提供该文件。另外Alias,由于某种原因,它无法正常工作。


0

如果phpMyAdmin在Nginx服务器上运行,则php.ini还需要将路径添加/usr/share/php/php-php-gettextopen_basedir密钥。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.