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 phpmyadmin
ale 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-gettext
i 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?
/usr/share/php/php-gettext
. Czy używasz SELinux / AppArmor?Odpowiedzi:
Dla mnie następujące rozwiązanie rozwiązało problem:
W pliku conf mojej witryny internetowej mam następującą sekcję:
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ę.
źródło
Dla innych:
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).
źródło
php-gettext
pakietu (i dodanieRequire all granted
do niegophpmyadmin.conf
) spowodowało, że znów działał.php-mbstring
były wymagane, aby phpmyadmin działał poprawnie dla mnie z php7Jeśli Twój
open_basedir
zawiera/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:usuwa dowiązania symboliczne
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ą.
źródło
Musiałem wyłączyć (prefiks
#
)Alias /phpmyadmin /usr/share/phpmyadmin
w,/etc/apache2/conf-available/phpmyadmin.conf
ponieważ używam niestandardowego pliku vhost dla phpmyadmin, aby udostępnić go w subdomenie. Z dodatkowymAlias
nie działało z jakiegoś powodu.źródło
Jeśli phpMyAdmin działa na serwerze Nginx,
php.ini
dodatkowo trzeba dodać ścieżkę/usr/share/php/php-php-gettext
doopen_basedir
klucza.źródło