phpmyadmin symlinks error nach ubuntu upgrade

15

Nach dem Upgrade meines Ubuntu-Servers auf 13.04 ist mein phpmyadmin nicht mehr erreichbar. Der Browser meldet 500 (interner Serverfehler) und im error.log heißt es:

Schwerwiegender PHP-Fehler: require_once (): Fehler beim Öffnen von './libraries/php-gettext/gettext.inc' (include_path = '.') In /usr/share/phpmyadmin/libraries/select_lang.lib.php in Zeile 370

Jede andere PHP-Software funktioniert einwandfrei auf dem Computer und auch MySQL. Phpmyadmin ist korrekt installiert und hat vor dem dist-upgrade einwandfrei funktioniert. Ich habe es auch getan, sudo aptitude reinstall phpmyadminaber das hat nicht geholfen.

Die Versionsnummer von phpmyadmin ist 4: 3.5.8.1-1

Irgendwelche Ideen, was könnte hier falsch sein?

/ edit: inzwischen habe ich herausgefunden, dass die symlinks hier nicht zu funktionieren scheinen:

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

ich php-gettexthabe den ordner gesichert und cp -r hat den symbolisierten überspielt, jetzt funktioniert es. das scheint also tatsächlich ein symlink-problem zu sein.

das ist der anfang von meinem /etc/phpmyadmin/apache.conf

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

es soll also sofort symlinks folgen. vor dem ubuntu upgrade hat alles prima geklappt. Was ist mit den Symlinks los?

Magnesium
quelle
Überprüfen Sie die Berechtigungen unter /usr/share/php/php-gettext. Verwenden Sie SELinux / AppArmor?
Dawud

Antworten:

7

Für mich hat die folgende Lösung das Problem gelöst:

In meiner Website-Conf-Datei habe ich den folgenden Abschnitt:

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

Die einzige Änderung, die ich seit der Installation von Ubuntu 13.04 vorgenommen habe, ist / usr / share / php / php-gettext / im open_basedir, und das hat den Trick getan.

gdl
quelle
23

Für andere:

sudo apt-get install php-gettext

könnte die antwort sein (besonders mit php7, da es so scheint, als ob dies nicht standardmäßig enthalten ist, vielleicht weil es eine birnenerweiterung ist).

zweimal jr
quelle
Ich habe den Fehler nach einer Neuinstallation von Ubuntu 16.04 erhalten. Es funktionierte nach dem Upgrade von 15.10 auf 16.04, aber ich musste wegen anderer Probleme eine Neuinstallation durchführen. Durch die explizite Installation des php-gettextPakets (und das Hinzufügen Require all grantedzu phpmyadmin.conf) funktionierte es wieder.
Bovender
1
Das ist die eigentliche Antwort!
Tika
Dank dafür; Daran habe ich nicht gedacht. dies und php-mbstringmussten phpmyadmin dazu bringen, mit php7
jhaagsma
1
Es ist seltsam, weil php-gettext eine Abhängigkeit vom phpmyadmin-Paket ist: packages.ubuntu.com/xenial/phpmyadmin, daher bin ich mir nicht sicher, warum es nicht bereits vorhanden ist.
Sam Wilson
Installiere zuerst LAMP, dann phpmyadmin, vielleicht ist das ein Teil des Problems
zweimal jr
5

Wenn Ihre bereits open_basedirenthält /usr/share/php/php-gettext/(wie in meinem Fall) und Sie können nicht mit den vorherigen Antworten arbeiten, dann tun Sie Folgendes:

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

Entfernt die symbolischen Verknüpfungen

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

schafft harte Verbindungen

Dadurch funktioniert phpmyadmin wieder. Warum es in 13.04 brach und die symbolischen Links nicht befolgt werden, während die apache.conf sagt, dass sie sollten, bleibt mir ein Rätsel.

user221931
quelle
Danke, das hat es geschafft. Die open_basedir-Zeile enthielt bereits das php-gettext-Verzeichnis, sodass eine Neuinstallation dieser Links erforderlich war.
Karma Fusebox
0

Ich musste disable (Präfix #) der Alias /phpmyadmin /usr/share/phpmyadminin /etc/apache2/conf-available/phpmyadmin.confda ich eine benutzerdefinierten vhost - Datei für phpMyAdmin es auf einer Sub - Domain zu dienen. Mit dem Zusatz hat Aliases aus irgendeinem Grund nicht geklappt.

Silenzium
quelle
0

Wenn phpMyAdmin auf einem Nginx-Server läuft, php.inimuss der Pfad zusätzlich /usr/share/php/php-php-gettextzum open_basedirSchlüssel hinzugefügt werden .

Lucky Luke
quelle