phpmyadmin symlinks ข้อผิดพลาดหลังจากการอัพเกรด Ubuntu


15

หลังจากอัปเกรดเซิร์ฟเวอร์ ubuntu ของฉันเป็น 13.04 phpmyadmin ของฉันไม่สามารถเข้าถึงได้อีกต่อไป เบราว์เซอร์รายงาน 500 (ข้อผิดพลาดเซิร์ฟเวอร์ภายใน) และใน error.log มันบอกว่า:

ข้อผิดพลาดร้ายแรงของ PHP: require_once (): ไม่สามารถเปิดได้ './library/php-gettext/gettext.inc' (include_path = '.') ใน /usr/share/phpmyadmin/library/select_lang.lib.php ที่บรรทัดที่ 370

ซอฟแวร์ php อื่น ๆ ทำงานได้ดีบนเครื่องและ mysql เอง Phpmyadmin ถูกติดตั้งอย่างถูกต้องและทำงานได้ดีก่อนที่จะทำการอัพเกรด ฉันก็ทำเช่นนั้นsudo aptitude reinstall phpmyadminแต่นั่นก็ไม่ได้ช่วยอะไร

หมายเลขเวอร์ชันของ phpmyadmin คือ 4: 3.5.8.1-1

ความคิดใด ๆ สิ่งที่อาจจะผิดที่นี่?

/ edit: โดยตอนนี้ฉันพบว่า, symlink ที่นี่ดูเหมือนจะไม่ทำงาน:

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-symlinked มากกว่าตอนนี้มันทำงาน ดังนั้นนี่น่าจะเป็นปัญหา symlink

นี่คือจุดเริ่มต้นของฉัน /etc/phpmyadmin/apache.conf

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

ดังนั้นจึงควรติดตาม symlinks ทันที ก่อนที่อูบุนตูจะอัปเกรดทุกอย่างทำงานได้ดี ดังนั้นเรื่องกับ symlinks คืออะไร


/usr/share/php/php-gettextตรวจสอบสิทธิ์ภายใต้ คุณใช้ SELinux / AppArmor อยู่หรือไม่?
dawud

คำตอบ:


7

สำหรับฉันทางออกต่อไปนี้แก้ไขปัญหา:

ในไฟล์ conf เว็บไซต์ของฉันฉันมีส่วนต่อไปนี้:

<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ดังนั้นฉันไม่แน่ใจว่าทำไมมันถึงไม่มีอยู่แล้ว
Sam Wilson

ติดตั้ง LAMP ก่อนจากนั้น phpmyadmin ซึ่งอาจเป็นส่วนหนึ่งของปัญหา
doublejr

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กุญแจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.