Błąd dowiązań symbolicznych phpmyadmin po aktualizacji Ubuntu


15

Po aktualizacji mojego serwera Ubuntu do 13.04 mój phpmyadmin jest już nieosiągalny. przeglądarka zgłasza 500 (wewnętrzny błąd serwera), aw dzienniku error.log jest napisane:

PHP Błąd krytyczny: requ_once (): Wymagane niepowodzenie otwarcia './libraries/php-gettext/gettext.inc' (ścieżka_w = =..)) W /usr/share/phpmyadmin/libraries/select_lang.lib.php w linii 370

Każde inne oprogramowanie php działa dobrze na maszynie, podobnie jak sam mysql. Phpmyadmin jest poprawnie zainstalowany i działał dobrze przed aktualizacją dist. ja też tak zrobiłem, sudo aptitude reinstall phpmyadminale to nie pomogło.

numer wersji phpmyadmin to 4: 3.5.8.1-1

jakieś pomysły, co może tu być nie tak?

/ edit: do tej pory dowiedziałem się, że linki tutaj nie działają:

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

utworzyłem kopię zapasową folderu php-gettexti cp -r złączyłem dowiązanie symboliczne, teraz działa. więc to wydaje się być problemem dowiązań symbolicznych.

to jest początek mojego /etc/phpmyadmin/apache.conf

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

więc powinien od razu podążać za dowiązaniami symbolicznymi. przed aktualizacją ubuntu wszystko działało dobrze. więc o co chodzi z dowiązaniami symbolicznymi?


Sprawdź uprawnienia w /usr/share/php/php-gettext. Czy używasz SELinux / AppArmor?
dawud

Odpowiedzi:


7

Dla mnie następujące rozwiązanie rozwiązało problem:

W pliku conf mojej witryny internetowej mam następującą sekcję:

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

Jedyną zmianą, którą wprowadziłem od czasu instalacji Ubuntu 13.04, jest włączenie / usr / share / php / php-gettext / w open_basedir i to załatwiło sprawę.


23

Dla innych:

sudo apt-get install php-gettext

może być odpowiedzią (szczególnie w przypadku php7, ponieważ wydaje się, że nie jest to domyślnie zawarte, być może dlatego, że jest to rozszerzenie gruszki).


Wystąpił błąd po przeprowadzeniu nowej instalacji Ubuntu 16.04. Działa po aktualizacji 15.10 do 16.04, ale musiałem zrobić nową instalację z powodu innych problemów. Jawne zainstalowanie php-gettextpakietu (i dodanie Require all granteddo niego phpmyadmin.conf) spowodowało, że znów działał.
bovender

1
to jest właściwa odpowiedź!
tika

Dziękuję za to; Nie myślałem o tym; to i php-mbstringbyły wymagane, aby phpmyadmin działał poprawnie dla mnie z php7
jhaagsma

1
To dziwne, ponieważ php-gettext jest zależnością pakietu phpmyadmin: packages.ubuntu.com/xenial/phpmyadmin, więc nie jestem pewien, dlaczego go jeszcze nie ma.
Sam Wilson,

Najpierw zainstaluj LAMP, potem phpmyadmin, może to część problemu
twicejr

5

Jeśli Twój open_basedirzawiera /usr/share/php/php-gettext/już (jak w moim przypadku) i nie możesz zmusić go do pracy z poprzednimi odpowiedziami, wykonaj następujące czynności:

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

usuwa dowiązania symboliczne

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

tworzy twarde linki

To sprawia, że ​​phpmyadmin znów działa. Dlaczego złamał się w 13.04, a linki symboliczne nie są śledzone, podczas gdy apache.conf mówi, że powinny, pozostaje dla mnie tajemnicą.


Dzięki, że to zrobiło. Linia open_basedir zawierała już katalog php-gettext, więc konieczna była ponowna instalacja tych łączy.
Karma Fusebox

0

Musiałem wyłączyć (prefiks #) Alias /phpmyadmin /usr/share/phpmyadminw, /etc/apache2/conf-available/phpmyadmin.confponieważ używam niestandardowego pliku vhost dla phpmyadmin, aby udostępnić go w subdomenie. Z dodatkowym Aliasnie działało z jakiegoś powodu.


0

Jeśli phpMyAdmin działa na serwerze Nginx, php.inidodatkowo trzeba dodać ścieżkę /usr/share/php/php-php-gettextdo open_basedirklucza.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.