Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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
up vote 5 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

For others:

sudo apt-get install php-gettext

might be the answer (especially with php7 as it seems that this is not included by default, maybe because it is a pear extension).

share|improve this answer
    
I got the error after performing a fresh install of Ubuntu 16.04. It worked after upgrading 15.10 to 16.04, but I had to do a fresh install due to other problems. Explicitly installing the php-gettext package (and adding Require all granted to phpmyadmin.conf) made it work again. – bovender Apr 23 at 11:55
1  
this is the actual answer! – tika May 2 at 3:02
    
Thanks for that; I didn't think of that; this and php-mbstring were required to get phpmyadmin to work right for me with php7 – jhaagsma May 2 at 21:36

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
    
Thanks, that did it. The open_basedir line already contained the php-gettext directory so reinstalling those links was necessary. – Karma Fusebox Feb 8 '14 at 2:08

I had to disable (prefix with #) the Alias /phpmyadmin /usr/share/phpmyadmin in /etc/apache2/conf-available/phpmyadmin.conf since I'm using a custom vhost file for phpmyadmin to serve it on a subdomain. With the additional Alias it didn't work for some reason.

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.