一、問題描述
#寫了一個php檔案test.php,程式碼如下:
<?php echo phpinfo(); ?>
瀏覽器訪問了一下,卻回傳了NULL。
二、問題定位及解決
網路上查了一下,大部分人遇到的問題其實是 short_open_tags 的問題,他們的程式碼如下:
<? echo phpinfo(); ?>
這種情況是需要把 php.ini 中的short_open_tags 打開,然後重新載入php.ini 服務就OK了。
這裡又有兩個問題,一是怎麼知道php執行載入的是哪個php.ini 檔案呢,可以在命令列下執行: php --ini 來找到php.ini 檔案;二是如何重新載入php.ini 文件,如何你的伺服器上面啟用了php-fpm,一般來說重啟php-fpm 就OK了,指令為: service php-fmp restart ,如果沒有啟用 php-fpm 服務(較早版本的php),一般重啟apache服務就OK,指令為service httpd restart 。
按照上面的步驟操作完成以後,大部分人遇到的問題就解決了,但是這個是別人的問題,跟我的並不是一個問題orz...
無奈,感覺這個東西一定是跟php的配置有關係,於是去官網看了下php.ini 的文檔,裡面以後一項配置如下:
disable_functions string
本指令允許你基於安全原因禁止某些函數。接受逗號分隔的函數名稱列表作為參數。 disable_functions 不受安全模式的影響。本指令只能設定在 php.ini 中。例如不能設定在httpd.conf
意思是php.ini裡面可以配置一些方法,這些方法不能被調用,打開php.ini找到這個配置,果然phpinfo()這個方法被停用了,如下:
disable_functions = phpinfo,system,proc_open,proc_close,show_source,popen,pclose
到這裡豁然開朗,暫時把phpinfo() 這個方法從disable_functions 中刪除掉,重新加載php.ini 文件,然後再次從瀏覽器訪問 test.php, 這次成功了,問題解決。不過這裡要提醒小夥伴們 phpinfo() 是很敏感的訊息,平常最好還是不要暴露給客戶端,因此測試完我就趕緊給關掉了。
PHP中文網,有大量免費的Swoole入門教學,歡迎大家學習!
以上是swoole phpinfo()不顯示怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!