PHP ทำงานได้ไม่ดีบน Ubuntu 13.10 และ mcrypt หายไปใน phpmyadmin


15

ฉันได้อัปเกรดจาก UBUNTU 13.04 เป็น 13.10 แต่ไม่สามารถทำงานกับหน้า PHP หรือ phpmyadmin ได้ ฉันได้พยายามด้วยวิธีนี้ในการติดตั้งโคมไฟบน Ubuntu sudo apt-get install lamp-server^ phpmyadmin และฉันได้ทำทั้งหมดของการกำหนดค่าได้อย่างถูกต้องหลังจากการติดตั้งฉันได้เพิ่มบรรทัดนี้ Include /etc/phpmyadmin/apache.confไป /etc/apache2/apache2.confแล้วฉันเริ่มต้นใหม่ apache2

ตอนนี้ฉันมีสองปัญหา:

  1. ใน phpmyadmin ที่ด้านล่างของหน้าคือข้อผิดพลาดนี้: The mcrypt extension is missing. Please check your PHP configuration ฉันได้ตรวจสอบและmcryptอยู่ในนั้น แต่ใน phpmyadmin มันทำให้ฉันมีข้อผิดพลาดที่ขาดหายไป

  2. ปัญหาอื่นอยู่บนหน้า PHP ดูเหมือนว่าไม่มี PHP และมันก็เป็น html ทั้งหมดเพราะมีสาย PHP จำนวนมากที่พิมพ์ในกล่องข้อความเช่น: <? echo $row['details']; ?> ใครช่วยบอกฉันหน่อยได้ไหมว่าฉันควรทำอย่างไร?

คำตอบ:


48

ลองใช้วิธีนี้สำหรับปัญหา mcrypt ของคุณ:

mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart

มันเป็นข้อผิดพลาดที่มีสถานที่ตั้งของไฟล์ mcrypt.ini ที่ผมได้ข้อมูลจากที่นี่

ฉันมีข้อผิดพลาดเดียวกันฉันทำcpแทนmvเพื่อให้แน่ใจ แต่แก้ไขปัญหาได้

สำหรับ PHP ไม่ทำงานถ้าคุณทำให้ phpmyadmin ทำงานได้ (แม้จะมีข้อผิดพลาด mcrypt) ก็หมายความว่า PHP นั้นใช้งานได้ (เพราะ phpmyadmin ใช้ PHP) แต่ในตัวอย่างของคุณ<? echo $row['details']; ?>เปลี่ยน<?เป็น<?phpแล้วลองอีกครั้ง?


1
ขอบคุณคำตอบของคุณแก้ไขปัญหาทั้งหมดของฉัน <? ?> ไม่ทำงานอีกหรือไม่ ใน php เวอร์ชั่นใหม่กว่านี้? จะต้องเป็น <? php?> เพื่อให้ทำงานได้หรือไม่
Mohammad_Hosseini

ฉันเพิ่ง googled มันและดูเหมือนว่าแท็กสั้น ๆ จะไม่ทำงานตามค่าเริ่มต้นอีกต่อไป คุณสามารถเปิดใช้งานได้อีกครั้ง แต่วิธีที่ดีที่สุดคือใช้ <? php
Whatts

ขอบคุณล่วงหน้า แต่ยังมีปัญหานิดหน่อยในหน้า php บางหน้าของฉันฉันไม่รู้ว่าปัญหาคืออะไรเมื่อฉันพยายามโหลดหน้านี้เพียงแสดงหน้าปกสีขาวกำลังแสดงฉันพยายามเปิดใช้งาน การรายงานข้อผิดพลาดสำหรับ php ที่ด้านบนของหน้า แต่ก็ยังไม่มีอะไรแสดงบนหน้า นี่อาจไม่ใช่สถานที่ที่ดีที่จะถามคำถามนี้ แต่เนื่องจากฉันได้นำปัญหานี้มาฉันจึงถามอีกครั้ง หากคุณต้องการให้ฉันใส่รหัสบางส่วนที่นี่บอกฉันขอบคุณ
Mohammad_Hosseini

หน้าขาวที่สมบูรณ์มักจะหมายถึงเครื่องหมายวงเล็บหรือเซมิโคลอนหายไป หรือเรียกใช้ฟังก์ชันที่ไม่มีอยู่ หากคุณไม่มีสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่สามารถช่วยเหลือคุณได้ให้ลองแสดงความคิดเห็นบางส่วนของรหัสของคุณทีละบล็อก (เริ่มความคิดเห็นด้วย / * และจบด้วย * / ทุกอย่างในระหว่างนั้นจะถูกใส่ความคิดเห็น) ฉันมักจะเริ่มต้นด้วยรหัสประมาณครึ่งหนึ่งแสดงความคิดเห็นแล้วลองแสดงแล้วแคบลงไปที่ข้อผิดพลาดเสมอ)
Whatts

3

สำหรับปัญหาที่สองเกี่ยวกับบรรทัด PHP จำนวนมากถูกพิมพ์ในรูปแบบของกล่องข้อความ: echo $row['details'];

แก้ไขไฟล์กำหนดค่า php.ini ของคุณ (สำหรับ apache):

sudo nano -w /etc/php5/apache2/php.ini

และเปลี่ยน:

short_open_tag = Off

ถึง:

short_open_tag = On

คำแนะนำที่น่ากลัว, แก้ไขปัญหาหน้าขาวได้ด้วย
Mohammad_Hosseini

1

ตรวจสอบสคริปต์ทั้งหมดของคุณภายใต้ /etc/php5/conf.d/ เพราะสคริปต์จะหยุดทำงาน ในกรณีของฉัน imap ก็หยุดทำงานเช่นกัน

แก้ไขปัญหาด้วยเคล็ดลับลิงก์สัญลักษณ์ (เป็น root):

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
php5enmod mcrypt
ln -s /etc/php5/conf.d/imap.ini /etc/php5/mods-available/imap.ini
php5enmod imap
service apache2 restart

วิธีการของคุณไม่ทำงานมันทำให้ฉันมีข้อผิดพลาดในการไม่มีตัวตนทั้ง imap หรือ mcrypt แต่สิ่งที่ @whatts บอกว่าทำงานได้ดีสำหรับฉัน
Mohammad_Hosseini

1

(ฉันจะโพสต์สิ่งนี้เป็นความคิดเห็นด้านบน แต่ไม่มีสิทธิ์)

สัญชาตญาณของ Whatts ที่จะใช้cpแทนที่จะmvเป็นสิ่งที่ดี ตัวอย่างเช่นถ้าคุณกำลังใช้ Laravel 4 กรอบ CLI ช่างจะตรวจสอบmcrypt.iniในแต่กรอบของตัวเองดูเหมือนว่าจะมองหามันใน/etc/php5/mods-available/ /etc/php5/conf.d/คุณต้องการสำเนาของมันทั้งสองแห่งเพื่อให้ทุกอย่างทำงาน:

cp -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart


0

ที่จริงสถานที่ที่เหมาะสมสำหรับmcrypt.iniไฟล์ในไดเรกทอรีไม่ได้อยู่ในmods-available conf.dดังนั้นการแทนที่และเปิดใช้งานไฟล์การกำหนดค่าmcryptแก้ปัญหานี้ได้


-1

ฉันยังมีปัญหากับmcryptหลังจากติดตั้ง Ubuntu 14.04 การติดตามลิงก์นี้จะช่วยได้ www.php.net

  1. เปิดไฟล์ php.ini ของคุณ sudo gedit /etc/php5/apache2/php.ini
  2. รีสตาร์ท apache2 ของคุณ sudo service apache2 restart

หวังว่านี่จะช่วยได้


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