phpmyadmin символізує помилку після оновлення ubuntu


15

Після оновлення мого сервера ubuntu до 13.04 мій phpmyadmin вже недоступний. браузер повідомляє 500 (внутрішня помилка сервера), а в error.log пише:

PHP Фатальна помилка: Requ_once (): Не вдалося відкрити './libraries/php-gettext/gettext.inc' (include_path = '.') У /usr/share/phpmyadmin/libraries/select_lang.lib.php на лінії 370

Будь-яке інше програмне забезпечення для php добре працює на машині, так само як і mysql. Phpmyadmin встановлений правильно та добре працював перед dist-оновленням. Я теж робив, sudo aptitude reinstall phpmyadminале це не допомогло.

номер версії phpmyadmin становить 4: 3.5.8.1-1

будь-які ідеї, що тут може бути не так?

/ редагувати: на даний момент я дізнався, що символьні посилання тут, здається, не працюють:

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

я створив резервну копію папки php-gettextі cp -r - це символьна посилання, тепер вона працює. тож це насправді здається проблемою символьної посилання.

це початок мого /etc/phpmyadmin/apache.conf

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

тому слід негайно слідувати посиланнями. перед оновленням ubuntu все працювало нормально. так у чому справа із символьними посиланнями?


Перевірте дозволи під /usr/share/php/php-gettext. Ви використовуєте SELinux / AppArmor?
dawud

Відповіді:


7

Для мене наступне рішення вирішило проблему:

У своєму конф-файлі веб-сайту я маю такий розділ:

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

Єдина зміна, яку я зробив після встановлення Ubuntu 13.04, це включити / usr / share / php / php-gettext / у open_basedir, і це зробило трюк.


23

Для інших:

sudo apt-get install php-gettext

може бути відповіддю (особливо це стосується php7, оскільки здається, що це не включено за замовчуванням, можливо тому, що це розширення груші).


Я отримав помилку після нової установки Ubuntu 16.04. Він працював після оновлення 15.10 до 16.04, але мені довелося зробити новий монтаж через інші проблеми. Явна установка php-gettextпакету (і додавання Require all grantedдо нього phpmyadmin.conf) змусила його знову працювати.
bovender

1
це фактична відповідь!
tika

Дякую за це; Я про це не думав; це php-mbstringбуло потрібно, щоб phpmyadmin працював для мене правильно з php7
jhaagsma

1
Це дивно, тому що PHP-Gettext є залежність пакету PhpMyAdmin: packages.ubuntu.com/xenial/phpmyadmin тому я не знаю , чому це не так вже там.
Сем Вілсон

Спершу встановіть LAMP, потім phpmyadmin, можливо, це є частиною проблеми
Dvajr

5

Якщо ваш open_basedirвміст /usr/share/php/php-gettext/вже є (як у моєму випадку), і ви не можете змусити його працювати з попередніми відповідями, тоді виконайте такі дії:

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

видаляє символічні посилання

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

створює жорсткі зв’язки

Це змушує phpmyadmin працювати знову. Чому він зламався в 13.04, і символічні посилання не дотримуються, поки apache.conf каже, що слід, для мене залишається загадкою.


Дякую, що це вдалося. Рядок open_basedir вже містив каталог php-gettext, тому необхідна перевстановлення цих посилань.
Karma Fusebox

0

Мені довелося вимкнути (префікс з #) Alias /phpmyadmin /usr/share/phpmyadminв, /etc/apache2/conf-available/phpmyadmin.confоскільки я використовую користувальницький файл vhost для phpmyadmin, щоб обслуговувати його на піддомен. З додатковими Aliasце чомусь не вийшло.


0

Якщо phpMyAdmin працює на сервері Nginx, php.iniдодатково потрібно додати шлях /usr/share/php/php-php-gettextдо open_basedirключа.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.