Erro de links simbólicos do phpmyadmin após a atualização do ubuntu

15

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

Erro fatal do PHP: require_once (): falha na abertura necessária './libraries/php-gettext/gettext.inc' (include_path = '.') Em /usr/share/phpmyadmin/libraries/select_lang.lib.php na linha 370

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

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

alguma idéia, o que poderia estar errado aqui?

/ edit: a essa altura eu descobri que os links simbólicos aqui não parecem 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

Eu php-gettextfiz o backup da pasta e copiei o link simbólico, 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

portanto, deve seguir os links simbólicos imediatamente. antes da atualização do ubuntu, tudo funcionava bem. Então, qual é o problema com os links simbólicos?

mcnesio
fonte
Verifique as permissões em /usr/share/php/php-gettext. Você está usando o SELinux / AppArmor?
Dawud

Respostas:

7

Para mim, a seguinte solução 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 é incluir / usr / share / php / php-gettext / no open_basedir, e foi o que fez.

gdl
fonte
23

Para os outros:

sudo apt-get install php-gettext

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

twicejr
fonte
Eu recebi o erro depois de executar uma nova instalação do Ubuntu 16.04. Funcionou após a atualização das 15.10 para as 16.04, mas tive que fazer uma nova instalação devido a outros problemas. A instalação explícita do php-gettextpacote (e a adição Require all grantedde phpmyadmin.conf) o fez funcionar novamente.
bovender
1
Esta é a resposta real!
tika
Obrigado por isso; Eu não pensei nisso; isso e php-mbstringforam necessários para obter phpmyadmin para a direita trabalho para mim com php7
jhaagsma
1
É estranho, porque o php-gettext é uma dependência do pacote phpmyadmin: packages.ubuntu.com/xenial/phpmyadmin, então não sei por que ele ainda não está lá.
Sam Wilson
Instale o LAMP primeiro e depois o phpmyadmin, talvez isso faça parte do problema
twicejr
5

Se o seu já open_basedircontiver /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 no 13.04 e os links simbólicos não são seguidos enquanto o apache.conf diz que deveria, continua sendo um mistério para mim.

user221931
fonte
Obrigado, foi isso. A linha open_basedir já continha o diretório php-gettext, portanto era necessário reinstalar esses links.
Karma Fusebox
0

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

Lorenz Haase
fonte
0

Se o phpMyAdmin for executado em um servidor Nginx, será php.ininecessário adicionar o caminho /usr/share/php/php-php-gettextà open_basedirchave.

luckyluke
fonte