phpinfo() ไม่ทำงานบนเซิร์ฟเวอร์ CentOS ของฉัน

ฉันติดตั้ง PHP บนเซิร์ฟเวอร์ CentOS ของฉันแล้ว อย่างไรก็ตาม เมื่อรัน phpinfo() ภายในสคริปต์เพื่อทดสอบ ฉันได้รับ HTML ไม่ใช่ข้อมูลที่ตีความ

ฉันเห็นโฟลเดอร์สำหรับ PHP ฉันยังสามารถดู php.ini ในโฟลเดอร์ etc ได้ แต่ดูเหมือนว่า PHP เองก็จะไม่ทำงาน

ฉันหมายถึงไฟล์ test.php ของฉันมีลักษณะดังนี้:

<?php
    phpinfo();
?>

และการตอบสนองจะเป็นดังนี้:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link {color: #000099; text-decoration: none; background-color: #ffffff;}
...

และอื่น ๆ

ดูเหมือนว่าจะมีปัญหาอะไร และฉันจะแก้ไขได้อย่างไร

หากฉันคัดลอก HTML ที่ส่งคืน ให้วางลงในไฟล์ HTML แล้วเรียกใช้จากตรงนั้น ฉันจะเห็นผลลัพธ์ที่จัดรูปแบบแล้ว แต่จะดูไม่ได้จากการเรียกใช้ test.php ฉันคิดว่า PHP ไม่ได้โหลดมาเลย... แม้ว่าใน HTML ที่ตีความแล้ว ฉันสามารถเห็น:

**Server API    Apache 2.0 Handler
Virtual Directory Support    disabled
Configuration File (php.ini) Path    /etc/php.ini
Scan this dir for additional .ini files    /etc/php.d
additional .ini files parsed    /etc/php.d/dbase.ini, /etc/php.d/json.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini
PHP API    20041225
PHP Extension    20050922
Zend Extension    220051025
Debug Build    no
Thread Safety    disabled
Zend Memory Manager    enabled
IPv6 Support    enabled
Registered PHP Streams    php, file, http, ftp, compress.bzip2, compress.zlib, https, ftps**

และอื่นๆ...

ในระบบนี้มีเว็บไซต์อยู่สามแห่งที่โฮสต์อยู่ มีอะไรเกี่ยวข้องกับปัญหานี้หรือไม่?


person user1137313    schedule 22.07.2013    source แหล่งที่มา
comment
ดูเหมือนว่า PHP กำลังทำงานอยู่ และ phpinfo() กำลังแสดงผลลัพธ์ที่ถูกต้อง คุณอาจมีเทมเพลตหรือบางอย่างที่ขวางทางและทำให้ผลลัพธ์แย่ลง   -  person cHao    schedule 22.07.2013
comment
โค้ด HTML ที่คุณเห็นเป็นสิ่งเดียวกับที่ฉันเห็นเมื่อฉันดูซอร์สโค้ดบนหน้าเว็บที่ไม่มีอะไรเลยนอกจาก <?php phpinfo(); ?> เป็นส่วนหัว HTML ของหน้าข้อมูล PHP   -  person cHao    schedule 22.07.2013
comment
ใช่. เป็นโค้ด HTML ที่ส่งคืนตามปกติในหน้าส่งคืน phpinfo ปกติ แต่มันไม่ได้ตีความ ฉันเห็นมันโดยไม่ต้องคลิกดูซอร์ส ฉันควรทำอย่างไรดี?   -  person user1137313    schedule 22.07.2013
comment
ถ้าฉันจำได้อย่างถูกต้อง php จะส่งออก HTML เมื่อทำการ phpinfo() จากภายในสคริปต์ที่ทำงานบนเว็บเซิร์ฟเวอร์ ลองสิ่งนี้จากบรรทัดคำสั่ง: php -i หรือเรียกใช้สคริปต์ของคุณจากบรรทัดคำสั่ง   -  person mlewis54    schedule 22.07.2013
comment
ฉันเรียกใช้ php -i จาก commandline และฉันได้รับข้อความจำนวนมาก ดูเหมือนว่า phpini() ควรส่งคืนอะไร อย่างไรก็ตาม เนื่องจากมันไม่ทำงานจากเบราว์เซอร์ ฉันจึงมักจะเชื่อว่ามีบางอย่างผิดปกติอยู่ที่ไหนสักแห่ง อย่างที่ฉันบอกไปแล้ว ฉันรู้ว่าฉันติดตั้ง php แล้ว แต่ดูเหมือนว่าจะทำงานไม่ถูกต้อง   -  person user1137313    schedule 22.07.2013
comment
มีรหัสใดบ้างที่ทำงานก่อนของคุณ? เช่น อาจเป็นคอนโทรลเลอร์ / เราเตอร์ด้านหน้า หรืออะไรสักอย่างที่ตั้งไว้ใน auto_prepend_file   -  person cHao    schedule 25.07.2013
comment
มีปัญหาที่คล้ายกัน (ยกเว้นเมื่อฉันเปิดหน้า html มันจะใส่ความคิดเห็นในโค้ด php) การเปลี่ยนชื่อไฟล์จาก index.html เป็น index.php แก้ไขแล้ว ใช้ apache2 และ php7.0   -  person kiwicomb123    schedule 21.12.2017


คำตอบ (14)


สิ่งนี้เกิดขึ้นกับฉันเช่นกัน การแก้ไขถูกรวมไว้ในแท็ก HTML จากนั้นฉันบันทึกไฟล์เป็น /var/www/html/info.php และรัน http://localhost/info.php ในเบราว์เซอร์ แค่นั้นแหละ.

<html>
    <body>
        <?php
            phpinfo();
        ?>
    </body>
</html>
person user6204369    schedule 14.04.2016
comment
การใช้ phpinfo(); จะไม่แสดงข้อมูลเลย หากต้องการพิมพ์ข้อมูลการกำหนดค่า คุณต้องสะท้อนข้อมูลดังกล่าว ดังนั้นโค้ดจะเป็น ‹?php echo phpinfo(); ?> - person Anbuselvan Rocky; 21.10.2017
comment
ฉันกดสิ่งนี้หลังจากอัปเกรดเป็น OSX High Sierra [และ php 7] - person Bret Weinraub; 27.03.2018
comment
@AnbuselvanRocky ผิด phpinfo() คืนค่าบูล มันแสดงผลข้อมูล หากคุณต้องการเก็บข้อมูลให้ใช้การบัฟเฟอร์เอาต์พุต phpinfo ส่งคืน false เมื่อล้มเหลว และคืนค่าจริงเมื่อสำเร็จ - person pgee70; 24.08.2018

บันทึกหน้าซึ่งมี

<?php
    phpinfo();
?>

ด้วยนามสกุล .php บางอย่างเช่น info.php ไม่ใช่ info.html...

person Friend    schedule 22.07.2013
comment
ได้. ดังที่ฉันได้กล่าวไว้ข้างต้น : ...I mean my test.php file looks like this: <?php phpinfo(); ?> ฉันคิดว่ามันชัดเจน ชื่อไฟล์ของฉันคือ test.php - person user1137313; 22.07.2013
comment
เฮิรพ. ฉันกำลังบันทึกเป็นไฟล์ .html ไม่ใช่ไฟล์ .php ตรวจสอบส่วนขยายของคุณ โย่! - person Abraham Brookes; 05.03.2019

คุณต้องอัปเดตการกำหนดค่า Apache ของคุณเพื่อให้แน่ใจว่าเอาต์พุต php เป็นประเภทข้อความ/HTML

โค้ดด้านล่างควรใช้งานได้ แต่การกำหนดค่าบางอย่างแตกต่างออกไป

AddHandler php5-script .php
AddType text/html .php
person cmorrissey    schedule 22.07.2013
comment
ฉันควรรันโค้ดนี้ที่ไหน? หรือฉันควรเพิ่มบรรทัดเหล่านี้ลงในไฟล์กำหนดค่า - person user1137313; 22.07.2013
comment
คุณสามารถเพิ่มลงในไฟล์ .htaccess หรือการกำหนดค่า Apache หลักของคุณได้ - person cmorrissey; 22.07.2013
comment
ฉันเพิ่มโค้ดลงในไฟล์ httpd.conf แล้วรีสตาร์ท httpd แต่ไม่มีอะไรเปลี่ยนแปลง - person user1137313; 22.07.2013
comment
ดี! AddType เป็นส่วนสุดท้ายสำหรับฉัน - person Paul; 04.04.2019

สิ่งนี้ทำเพื่อฉัน (คำตอบที่สอง): เหตุใดไฟล์ PHP ของฉันจึงแสดงเป็นข้อความธรรมดา

เพียงเพิ่มสิ่งนี้ ไม่มีอะไรทำงานอีกเลย

apt-get install libapache2-mod-php5
person Sam Bing    schedule 20.04.2016
comment
ของฉันหา php5 ไม่เจอ ดังนั้นฉันจึงใช้ php7.0 แทน: apt-get install libapache2-mod-php7.0 ฉันใช้ Linux Mint 18 - person Markus Meskanen; 04.11.2016
comment
apt-get install libapache2-mod-php ก็เพียงพอแล้ว - person CordlessWool; 24.10.2018

ฉันเพิ่งมีปัญหาเดียวกันและพบว่าไคลเอนต์ได้ปิดการใช้งานฟังก์ชันนี้จากไฟล์ php.ini ของพวกเขา:

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
disable_functions = phpinfo;

ข้อมูลเพิ่มเติม: การเปิดใช้งานและปิดใช้งาน phpinfo() เพื่อเหตุผลด้านความปลอดภัย

person John Magnolia    schedule 04.09.2014

ลองสร้างไฟล์ php.ini ใน root แล้วเขียนคำสั่งต่อไปนี้ลงไปแล้วบันทึก

disable_functions =

การใช้โค้ดนี้จะเปิดใช้งานฟังก์ชัน phpinfo() ให้กับคุณ หากถูกปิดใช้งานโดยการกำหนดค่า PHP ส่วนกลาง

person Ahmad    schedule 01.04.2016

ตรวจสอบให้แน่ใจว่าแท็ก "php" ติดอยู่ในโค้ดดังนี้:

?php phpinfo(); ?>

ไม่เหมือนสิ่งนี้:

<แข็งแกร่ง>? php phpinfo(); ?>

หรือเซิร์ฟเวอร์จะถือว่ามันเป็น (คำปกติ) ดังนั้นเซิร์ฟเวอร์จะไม่เข้าใจภาษาที่คุณเขียนเพื่อจัดการกับมัน ดังนั้นมันจะว่างเปล่า

ฉันรู้ว่ามันเป็นข้อผิดพลาดไร้สาระ ...แต่มันเกิดขึ้นแล้ว ^_^

person Toqero_Mohamed    schedule 08.03.2017
comment
หลังจากถอนผมอย่างบ้าคลั่ง นี่คือคำตอบ! - person Phillip H. Blanton; 12.08.2020

สำหรับผู้ที่ไม่มีประสบการณ์ในการสร้างเว็บไซต์ (เช่นฉัน) ฉันพยายามมามาก แต่กลับพบว่าฉันไม่ได้ใช้ส่วนขยาย .php แต่ใช้ส่วนขยาย .html

person pmkruyen    schedule 24.10.2018

มันเกิดขึ้นกับผมเป็นอย่างดี. บนเซิร์ฟเวอร์ Red Hat Linux 7 ที่จัดเตรียมใหม่

เมื่อฉันเรียกใช้เพจ PHP เช่น info.php ฉันสามารถเห็นสคริปต์ PHP แบบข้อความธรรมดาแทนที่จะเรียกใช้งานสคริปต์เหล่านั้น

ฉันเพิ่งติดตั้ง PHP:

[root@localhost ~]# yum install php

จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Apache HTTP:

[root@localhost ~]# systemctl restart httpd
person Omari Victor Omosa    schedule 17.11.2017

โซลูชันของฉันคือการถอนการติดตั้งและติดตั้งอินสแตนซ์ PHP (7.0 ในกรณีของฉัน) อีกครั้ง:

sudo apt-get purge php7.0
sudo apt-get install php7.0

หลังจากนั้นคุณจะต้องรีสตาร์ทบริการ Apache:

sudo service apache2 restart

สุดท้าย ให้ยืนยันอีกครั้งในเบราว์เซอร์ของคุณด้วยโลคัลโฮสต์หรือที่อยู่ IP ของคุณ

person NarcosdaCol    schedule 07.10.2018

ฉันตั้งค่าการอนุญาตไฟล์ผิดโดยไม่ตั้งใจ หลังจาก chmod 644 phpinfo.php ข้อมูลปรากฏขึ้นตามที่คาดไว้จริงๆ

person kghbln    schedule 14.11.2018

มันอาจไม่ทำงานสำหรับคุณหากคุณใช้ localhost/info.php

คุณอาจพบเบาะแสจากข้อผิดพลาดได้ ค้นหาหมายเลขพอร์ตในข้อความแสดงข้อผิดพลาด สำหรับฉันมันคือ 80 ฉันเปลี่ยนที่อยู่เป็น http://localhost:80/info.php, แล้วมันก็ได้ผลสำหรับฉัน

person M Kamakshaiah    schedule 04.03.2018

ฉันมีปัญหาเดียวกัน.

วิธีแก้ไขในกรณีของฉันคือตั้งค่า default_mimetype = "text/html" ภายในไฟล์ php.ini

person W.M.    schedule 21.12.2014

อีกคำตอบที่เป็นไปได้สำหรับ Windows 10:

คำสั่ง httpd -k restart ไม่ ทำงานบนเครื่องของฉันในทางใดทางหนึ่ง

ลองใช้ บริการ ของ Windows 10 เพื่อรีสตาร์ทบริการที่เกี่ยวข้อง

person miehmg    schedule 12.10.2018