Setelah peningkatan server ubuntu saya ke 13,04 phpmyadmin saya tidak lagi dapat dijangkau. browser melaporkan 500 (kesalahan server internal) dan di error.log dikatakan:
PHP Fatal error: require_once (): Gagal membuka diperlukan './libraries/php-gettext/gettext.inc' (include_path = '.') Di /usr/share/phpmyadmin/libraries/select_lang.lib.php pada baris 370
Perangkat lunak php lainnya berfungsi dengan baik pada mesin dan begitu pula mysql itu sendiri. Phpmyadmin diinstal dengan benar dan berfungsi dengan baik sebelum dist-upgrade. Saya juga melakukannya sudo aptitude reinstall phpmyadmin
tetapi itu tidak membantu.
nomor versi phpmyadmin adalah 4: 3.5.8.1-1
ada ide, apa yang salah di sini?
/ edit: saat ini saya tahu, bahwa symlinks di sini sepertinya tidak berfungsi:
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
saya mencadangkan folder php-gettext
dan cp -r sudah yang disinkronkan, sekarang berfungsi. jadi ini sebenarnya tampaknya menjadi masalah symlink.
ini adalah awal dari saya /etc/phpmyadmin/apache.conf
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
jadi itu seharusnya mengikuti symlinks segera. sebelum upgrade ubuntu semuanya bekerja dengan baik. jadi ada apa dengan symlink?
/usr/share/php/php-gettext
. Apakah Anda menggunakan SELinux / AppArmor?Jawaban:
Bagi saya solusi berikut memecahkan masalah:
Dalam file konfigurasi situs web saya, saya memiliki bagian berikut:
Satu-satunya perubahan yang saya buat sejak menginstal Ubuntu 13.04 adalah sertakan / usr / share / php / php-gettext / di open_basedir, dan itu berhasil.
sumber
Untuk yang lain:
mungkin jawabannya (terutama dengan php7 karena tampaknya ini tidak disertakan secara default, mungkin karena itu adalah ekstensi pir).
sumber
php-gettext
paket secara eksplisit (dan menambahkanRequire all granted
kephpmyadmin.conf
) membuatnya berfungsi kembali.php-mbstring
diharuskan untuk membuat phpmyadmin berfungsi dengan baik untuk saya dengan php7Jika Anda
open_basedir
mengandung/usr/share/php/php-gettext/
sudah (seperti dalam kasus saya) dan Anda tidak bisa mendapatkannya untuk bekerja dengan jawaban sebelumnya kemudian melakukan:menghapus tautan simbolik
menciptakan tautan keras
Ini membuat phpmyadmin berfungsi kembali. Mengapa itu rusak di 13,04 dan tautan simbolis tidak diikuti sementara apache.conf mengatakan mereka harus, tetap menjadi misteri bagi saya.
sumber
Aku harus menonaktifkan (awalan dengan
#
) yangAlias /phpmyadmin /usr/share/phpmyadmin
di/etc/apache2/conf-available/phpmyadmin.conf
sejak saya menggunakan file vhost kustom untuk phpmyadmin untuk melayani di subdomain. Dengan tambahanAlias
itu tidak berfungsi karena suatu alasan.sumber
Jika phpMyAdmin berjalan di server Nginx,
php.ini
tambahan itu perlu menambahkan path/usr/share/php/php-php-gettext
keopen_basedir
kunci.sumber