Errore di symlink phpmyadmin dopo l'aggiornamento di Ubuntu


15

Dopo l'aggiornamento del mio server Ubuntu a 13.04 il mio phpmyadmin non è più raggiungibile. il browser segnala 500 (errore interno del server) e nel log degli errori dice:

Errore irreversibile PHP: require_once (): apertura non riuscita richiesta './libraries/php-gettext/gettext.inc' (include_path = '.') In /usr/share/phpmyadmin/libraries/select_lang.lib.php sulla riga 370

Qualsiasi altro software php funziona bene sulla macchina e lo stesso vale per mysql. Phpmyadmin è installato correttamente e ha funzionato bene prima dell'aggiornamento dist. anche io l'ho fatto, sudo aptitude reinstall phpmyadminma questo non ha aiutato.

il numero di versione di phpmyadmin è 4: 3.5.8.1-1

qualche idea, cosa potrebbe esserci di sbagliato qui?

/ modifica: ormai ho scoperto che i link simbolici qui non sembrano funzionare:

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

ho eseguito il backup della cartella php-gettexte ho premuto il link simbolico sopra, ora funziona. quindi questo in realtà sembra essere un problema di collegamento simbolico.

questo è l'inizio del mio /etc/phpmyadmin/apache.conf

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

quindi dovrebbe seguire subito i symlink. prima dell'aggiornamento di Ubuntu tutto funzionava bene. quindi qual è il problema con i symlink?


Controlla le autorizzazioni sotto /usr/share/php/php-gettext. Stai usando SELinux / AppArmor?
Dawud,

Risposte:


7

Per me la seguente soluzione ha risolto il problema:

Nel mio file di configurazione del sito Web, ho la seguente sezione:

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

L'unica modifica che ho fatto dall'installazione di Ubuntu 13.04 è includere / usr / share / php / php-gettext / in open_basedir, e questo ha funzionato.


23

Per gli altri:

sudo apt-get install php-gettext

potrebbe essere la risposta (specialmente con php7 in quanto sembra che questo non sia incluso di default, forse perché è un'estensione pera).


Ho ricevuto l'errore dopo aver eseguito una nuova installazione di Ubuntu 16.04. Ha funzionato dopo l'aggiornamento da 15.10 a 16.04, ma ho dovuto fare una nuova installazione a causa di altri problemi. L'installazione esplicita del php-gettextpacchetto (e l'aggiunta Require all granteda phpmyadmin.conf) lo hanno fatto funzionare di nuovo.
bovender

1
questa è la risposta reale!
Tika,

Grazie per quello; Non ci avevo pensato; questo e php-mbstringdovevamo far funzionare phpmyadmin per me con php7
jhaagsma

1
È strano, perché php-gettext è una dipendenza del pacchetto phpmyadmin: packages.ubuntu.com/xenial/phpmyadmin, quindi non sono sicuro del perché non sia già lì.
Sam Wilson,

Installare prima LAMP, quindi phpmyadmin, forse questo è parte del problema
volte il

5

Se il tuo open_basedircontiene /usr/share/php/php-gettext/già (come nel mio caso) e non riesci a farlo funzionare con le risposte precedenti, allora fai:

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

rimuove i collegamenti simbolici

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

crea collegamenti reali

Questo fa funzionare di nuovo phpmyadmin. Perché si è rotto nel 13.04 e i collegamenti simbolici non sono seguiti mentre apache.conf dice che dovrebbero, rimane un mistero per me.


Grazie, l'ha fatto. La riga open_basedir conteneva già la directory php-gettext, quindi era necessario reinstallare quei collegamenti.
Karma Fusebox

0

Ho dovuto disabilitare (prefisso con #) Alias /phpmyadmin /usr/share/phpmyadminin /etc/apache2/conf-available/phpmyadmin.confpoiché sto usando un file vhost personalizzato per phpmyadmin per servirlo su un sottodominio. Con l'aggiunta Aliasnon ha funzionato per qualche motivo.


0

Se phpMyAdmin viene eseguito su un server Nginx, il php.ini inoltre necessario aggiungere il percorso /usr/share/php/php-php-gettextalla open_basedirchiave.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.