Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question
    
Check the permissions under /usr/share/php/php-gettext. Are you using SELinux/AppArmor? –  dawud May 1 '13 at 19:34

3 Answers 3

up vote 3 down vote accepted

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.

share|improve this answer
    
thank you! that did it… –  mcnesium May 2 '13 at 14:37

If your open_basedir contains /usr/share/php/php-gettext/ already (as in my case) and you can't get it to work with the previous answers then do:

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

removes the symbolic links

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

creates hard links

This makes phpmyadmin work again. Why it broke in 13.04 and the symbolic links aren't followed while the apache.conf says they should, remains a mystery to me.

share|improve this answer
    
Hallelujah! This finally fix it for me! –  djthoms Jun 2 '13 at 0:56
    
Thanks, that did it. The open_basedir line already contained the php-gettext directory so reinstalling those links was necessary. –  Karma Fusebox Feb 8 at 2:08

In the above solution, the file to be modified is located on:

sudo gedit /etc/apache2/conf.d/apache.conf 

Do not forget to restart the server:

sudo /etc/init.d/apache2 restart 
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.