Linux – phptheadmin symlinks error after ubuntu upgrade

linuxMySQLPHPUbuntu

After the upgrade of my ubuntu server to 13.04 my phpmyadmin is no longer reachable. the browser reports 500 (internal server error) and in the error.log it says:

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

Any other php software works fine on the machine and so does mysql itself. Phpmyadmin is installed correctly and worked fine before the dist-upgrade. i also did sudo aptitude reinstall phpmyadmin but that did not help.

the version number of phpmyadmin is 4:3.5.8.1-1

any ideas, what could be wrong here?

/edit: by now i found out, that the symlinks here do not seem to work:

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

i backed up the folder php-gettext and cp -r'd the symlinked one over, now it works. so this actually seems to be a symlink-problem.

this is the beginning of my /etc/phpmyadmin/apache.conf

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

so it is supposed to follow symlinks right away. before the ubuntu upgrade everything worked fine. so whats the matter with the symlinks?

Best Answer

For me the following solution solved the problem:

In my website conf file, I have the following section:

<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>

The only change I've made since Ubuntu 13.04 install is include /usr/share/php/php-gettext/ in the open_basedir, and that did the trick.

Related Question