ฉันไม่สามารถเปิด phpMyAdmin ได้รับข้อผิดพลาด 301 หรือ 500


8

ผมได้ติดตั้ง phpMyAdmin แต่ฉันไม่สามารถเปิดได้ในเบราว์เซอร์ใด ๆที่ฉันได้รับการเปลี่ยนเส้นทาง 301 (*) http://localhost:8080/phpmyadminถ้าผมเรียกดู หากฉันเพิ่ม a /ไปยังจุดสิ้นสุดของที่อยู่ฉันจะได้รับสถานะข้อผิดพลาด 500ครั้ง

(*) บันทึกโดยใช้ Wireshark หากฉันใช้ netcat จากสถานีในพื้นที่เดียวกันฉันได้รับ301 เปลี่ยนเส้นทางไปยังแตกต่างกันอยู่

สภาพแวดล้อมเป็น VM ที่ฉันสร้างขึ้นเพื่อการพัฒนา / ทดสอบซึ่งฉันได้ติดตั้งสภาพแวดล้อมLEMP (Linux / Nginx / MySQL / PHP) เป็นการติดตั้งCentOS 6 64 บิตแบบคลีนที่ทำงานอยู่ในฐานะแขกบนโฮสต์ Ubuntu 12.04 64 บิต VM กำลังทำงานในโหมด NATed ด้วยการส่งต่อพอร์ต ฉันสามารถเปิดhttp://localhost:8080บนเครื่องแขกและดูหน้าต้อนรับของ nginx ฉันสามารถเปิดหน้า phpinfo ได้เช่นกันดังนั้นฉันรู้ว่า PHP กำลังทำงานอยู่

ฉันได้ติดตั้งแพ็คเกจ nginx, MySQM, PHP และ phpMyAdmin แยกกัน ฉันใช้การตั้งค่าเริ่มต้นสำหรับ phpMyAdmin หลังจากติดตั้ง MySQL ฉันได้รันmysql_secure_installationคำสั่งและในตัวเลือกอื่น ๆ ฉันปิดการเข้าถึงรูทระยะไกล

นี่คือไฟล์กำหนดค่าของฉัน:

  • /etc/php.ini: ลิงค์
  • /etc/php.d/mysql.ini: ลิงค์
  • /etc/nginx/nginx.conf: ลิงค์
  • /etc/nginx/conf.d/default.conf: ลิงค์ (ในการใช้งานสคริปต์ PHP ฉันได้ทำการปรับแต่งตามบทเรียนออนไลน์และฉันไม่แน่ใจในสิ่งที่ฉันทำ )
  • /etc/phpMyAdmin/config.inc.php: ลิงค์

4
คำถามนี้มี 4 คะแนนเพื่อปิด ทำไม? meta.superuser.com/questions/6455/…
Guy บราซิลนั่น

คำตอบ:


4

มีสาเหตุหลายประการที่ทำให้ฉันไม่สามารถเข้าสู่ phpMyAdmin:

mbstring

ข้อผิดพลาด 500 สร้างข้อความที่ไฟล์PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177 /var/log/php-fpm/www-error.logตามความคิดเห็นในhttp://www.php.net/manual/en/mbstring.installation.phpฉันพยายามติดตั้งphp-mbstringแพ็คเกจ แต่มันมีอยู่แล้ว

เริ่มต้นใหม่การphp-fpm serviceแก้ไขข้อผิดพลาด 500

เซสชัน PHP

หลังจากแก้ไขข้อผิดพลาดก่อนหน้านี้ฉันได้รับข้อผิดพลาดต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

/etc/phpmyadmin/config.inc.php มีสาย

$ cfg ['เซิร์ฟเวอร์'] [$ i] ['auth_type'] = 'คุกกี้';

แต่session.save_pathตัวแปรของ PHP ถูกตั้งค่าเป็น/var/lib/php/sessionโฟลเดอร์ที่ไม่มีอยู่

การสร้างโฟลเดอร์ที่มีสิทธิ์ที่เหมาะสมแก้ไขข้อผิดพลาดนี้ฉันสามารถเข้าสู่ระบบได้อย่างถูกต้อง

การเปลี่ยนเส้นทางสแลชต่อท้าย

ถ้าฉันพยายาม acess ที่อยู่ใด ๆบนเซิร์ฟเวอร์นี้โดยไม่มีเครื่องหมายสแลชท้ายท้าย URL, nginx กำลังเพิ่มสแลชต่อท้ายและลบ:8080ส่วนของมัน จะไม่เกิดขึ้นหากฉันออกจากสแลชต่อท้าย

(เช่น: http://localhost:8080/exampleได้รับการเปลี่ยนเส้นทางไปhttp://localhost/example/ที่ความจริงฉันมี phpMyAdmin ทำงานทั้งใน VM และบนเครื่องโฮสต์เพิ่มความสับสนมากขึ้นเพราะฉันจะเห็นกล่องโต้ตอบเข้าสู่ระบบ phpMyAdmin แต่ในปลายทางที่ไม่ถูกต้อง)

มันน่าจะเป็นข้อผิดพลาดที่พบบ่อย Nginx ฉันลองใช้วิธีแก้ปัญหาต่าง ๆ โดยไม่ประสบความสำเร็จ หากฉันพบวิธีแก้ปัญหาสำหรับกรณีของฉันฉันจะอัปเดตคำตอบนี้


0

การเข้าสู่ระบบต้องได้รับอนุญาตใน/etc/phpmyadmin/config.inc.phpไฟล์การกำหนดค่า

เพิ่มบรรทัดต่อไปนี้:

$ cfg ['เซิร์ฟเวอร์'] [$ i] ['AllowRoot'] = TRUE;


3
สวัสดีและยินดีต้อนรับสู่ SuperUser โปรดสละเวลาอธิบายเกี่ยวกับไวยากรณ์และรายละเอียดเกี่ยวกับบรรทัดคำสั่งเหล่านั้นที่จะทำงาน มันอาจจะเกี่ยวข้องกับผู้อ่านในอนาคตหรือ QA เอง
Lorenzo Von Matterhorn

ฉันไม่เห็นหน้าจอเข้าสู่ระบบของ phpmyadmin ฉันได้เพิ่มบรรทัดลงในไฟล์ cfg แต่มันไม่สามารถแก้ไขปัญหาได้
Guy บราซิล

docs.phpmyadmin.net/en/latest/config.htmltrueระบุค่าเริ่มต้นคือ ฉันไม่ได้ตั้งค่าเป็นเท็จและไม่มีอยู่ในไฟล์ปรับแต่ง
Guy บราซิลนั่น

0

ตรวจสอบ/var/log/nginx/error.logเพื่อดูว่าข้อผิดพลาด 500 ระบุว่าอะไร

ดูเหมือนว่าคุณกำลังใช้การกำหนดค่าสองแบบ (อันที่พอร์ต 80 และอีกอันใน 8080) ซึ่งอาจขัดแย้งกัน


ฉันไม่ได้ใช้การกำหนดค่าเว็บเซิร์ฟเวอร์สองรายการในเครื่องเดียวกัน 8080 เป็นพอร์ตการเปลี่ยนเส้นทาง NAT สำหรับ guest VM และ 80 เป็นพอร์ตสำหรับโฮสต์ระบบปฏิบัติการ ในทางเทคนิคแล้วพวกเขาอยู่ในเครื่องเดียวกัน แต่จำลองเสมือนจากกันและกัน
Guy บราซิลนั่น

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