LNMP 一鍵安裝包優化
阿新 • • 發佈:2018-12-10
lnmp 作為現在phper的主流安裝包, 有其自身很強大的優點. 但是安裝完後, 也不是100%適配你自己的系統. 我在安裝後, 對其幾處不太合適的地方做了一下總結.
: 配合另外一個
opcache 優化
通過 lnmp 的 addon 指令碼可以安裝 opcache, 但是安裝完後會發現, 每次改一個檔案, 總要60s 之後才生效.
修改 php.ini 中的配置項 validate_timestamps
和 revalidate_freq
兩個選項後, 仍然不起效果.
很明顯, 配置並沒有生效. 那我們查詢一下是否有 Additional ini 檔案.
php -i | grep Additional
Additional .ini files parsed = > /usr/local/php/conf.d/004-opcache.ini,
ok, 修改004-opcache.ini
檔案的相關選項.
php-fpm 報錯設定
修改 php.ini 檔案中 display_errors = On
, 就可以顯示錯誤. 但是在線上環境強烈建議關閉此選項, 防止錯誤資訊暴露程式碼的路徑版本等資訊.
通過如下程式碼, 在單獨業務程式碼+環境中啟用報錯.
error_reporting("E_ALL");
ini_set("display_errors","On");
解釋 php.ini 其他報錯設定
display_startup_errors
: php 啟動階段的錯誤.
html_errors
docref_root
, 錯誤用 html 形式展示.
502 Bad Gateway
The proxy server received an invalid response from an upstream server.
這種情況, 未開啟 PHP-fpm 報錯, 導致 fpm 未傳送任何資訊給 nginx 就關閉和 nginx 通訊. 開啟報錯, 就可以顯示出錯誤.
open_basedir restriction in effect
open_basedir是 php.ini 的一個配置, 主要是限制 php 僅能訪問配置目錄下的檔案. 可以通過 php-fpm.conf & nginx.conf 進行配置.
php web 系統中, 通常會將 index.php 檔案放入 web 目錄下, 其他業務程式碼放在其他目錄. LNMP 在預設的 nginx 配置檔案fastcgi.conf 中
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
修改為
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/";