phpmyadmin symlinks erro após atualização do ubuntu

14

Após a atualização do meu servidor ubuntu para o 13.04, meu phpmyadmin não está mais acessível. o navegador informa 500 (erro interno do servidor) e no error.log diz:

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

Qualquer outro software php funciona bem na máquina e o próprio mysql também. O phpmyadmin está instalado corretamente e funcionou bem antes do dist-upgrade. Eu também fiz sudo aptitude reinstall phpmyadmin , mas isso não ajudou.

o número da versão do phpmyadmin é 4: 3.5.8.1-1

alguma ideia, o que poderia estar errado aqui?

/ edit: agora descobri que os links simbólicos aqui parecem não funcionar:

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 backup da pasta php-gettext e cp -r'd o link simbólico acabou, agora funciona. então isso realmente parece ser um problema de link simbólico.

este é o começo do meu /etc/phpmyadmin/apache.conf

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

então é suposto seguir links simbólicos imediatamente. antes do upgrade do ubuntu tudo funcionou bem. Então, qual é o problema com os links simbólicos?

    
por mcnesium 01.05.2013 / 18:42

4 respostas

7

Para mim, a solução a seguir resolveu o problema:

No arquivo conf do meu site, tenho a seguinte seção:

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

A única alteração que fiz desde a instalação do Ubuntu 13.04 é o / usr / share / php / php-gettext / no open_basedir, e isso funcionou.

    
por 02.05.2013 / 14:07
23

Para outros:

sudo apt-get install php-gettext

pode ser a resposta (especialmente com o php7, pois parece que isso não está incluído por padrão, talvez porque seja uma extensão do pear).

    
por 20.04.2016 / 19:26
5

Se o seu open_basedir já contiver /usr/share/php/php-gettext/ (como no meu caso) e você não conseguir que ele funcione com as respostas anteriores, faça:

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

remove os links simbólicos

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

cria links físicos

Isso faz o phpmyadmin funcionar novamente. Por que ele quebrou em 13.04 e os links simbólicos não são seguidos enquanto o apache.conf diz que eles deveriam, permanece um mistério para mim.

    
por 04.05.2013 / 02:04
0

Eu tive que desabilitar (prefixo com # ) o Alias /phpmyadmin /usr/share/phpmyadmin em /etc/apache2/conf-available/phpmyadmin.conf , pois estou usando um arquivo vhost personalizado para o phpmyadmin para servi-lo em um subdomínio. Com o Alias adicional, não funcionou por algum motivo.

    
por 25.11.2015 / 15:30