Tag: PHP
在伺服器進行 PHP 設定, 最直接的方法是編輯 php.ini 檔案, 如果是使用 mod_php 的情況下, 可以用 php_admin_value 或 php_admin_flag, 在 Apache 對個別目錄或 VirtualHost 設定不同的 PHP 參數, 或者使用 .htaccess 設定更可以不用重新載入 httpd 修改 PHP 設定。 但如果是使用 PHP-FPM …
當網站的 CSS 及 Javascript (.css 及 .js) 作出修改後,這些更新可能不會立即呈現及訪客,這是因為瀏覽器為了提高開啟網站的速度,會將 .js 及 .css 檔儲存在快取內,下次進入網站時不會重新載入所致。 網站訪客可以清除網站的快取然後重新載入,便會看到新內容。但網站管理員總不能要求每個訪客這樣做,需要在網頁的層面解決。 一個簡單的解法是在 HTML 的 Meta Tag 加入控制快取的指示,例如: 但這個方法很多時都不會長時間有效。 另一個較簡單實用的方法是在檔名後面加上一個 GET 變數,這個 GET 變數可以是日期時間,也可以是版本號,例如: 當下次修改 CSS 或 JS …
有一台原本使用 Apache 的 Web Server 換成 Nginx 後, 其中一個 PHP 的上傳檔案程式遇到錯誤, 原本以為是 PHP 的 max_execution_time 或 max_upload_filesize 設定太小出問題。 後來在 Nginx 的 Log 找到以下錯誤: client intended to send too large …
PHP-FPM 預設的 PM (process manager) 會設定為 “dynamic”, 除了 dynamic, 還有 static 及 ondemand, 以下是 PHP 官方對這些設定的解釋: pm = dynamic – the number of child processes is set dynamically based …
在預設的情況下, HTTP 的 Header 會包含了 Web Server 及 PHP 的版本, 基於安全理由, 可以用以下方法隱藏 Apache, Nginx 及 PHP 的版本資訊。 Apache 開啟 Apache 的 httpd.conf, CentOS 預設位置是 /etc/httpd/conf/httpd.conf: # vi /etc/httpd/conf/httpd.conf 找到 …
Apache 配置 PHP 一般會預設用 mod_php 的方法安裝, 安裝 Nginx 便會使用 PHP-FPM。但如果在 Apache 不想使用預設的 prefork 作為 MPM (通常基於效能因素), 想使用 worker 或 event, 便需要使用 PHP-FPM 的方法安裝 PHP。 本文會示範在 CentOS 7 安裝 Apache …
現在很多入門的 VPS 只有 1GB Ram, 如果在 1GB RAM 的 VPS 安裝 Apache, PHP 及 MySQL / MariaDB, 為僻免出現 out of memory 的情況, 可以使用以下方法進行優化。 Apache 建議對 Apache MPM worker 進行設定: …
近幾年的伺服器都是使用 CentOS 預設的 PHP 版本, 而 CentOS 7 預設的 PHP 版本仍是 5.4, 而 PHP 7 對於性能提升也是相當明顯的。 近期將本網的 PHP 版本升級到 PHP 7.2, 以下是用 RRDTool 監察的 Load Average 數據: 在四月至六月間是使用 4GB …
要開啟或關閉 PHP 的錯誤訊息有幾種方法, 分別是在 php.ini 內設定, httpd.conf 及 .htaccess 設定, 或者在 PHP 程式內設定, 以下是各種方法的設定方法。 1. php.ini 在 php.ini 一般預設路徑在 /etc/php.ini, 在 php.ini 內找到 display_errors, 設定為 On 是開啟錯誤信息, Off 是關閉輸出: …
OPcache 在 PHP 5.5 (預設沒有開啟)開始內建在 PHP, 前身是 Zend Optimizer, PHP 5.2, 5.3 及 5.4 則要透過安裝 PECL extension 安裝。它的作將已經編譯的 PHP Script 儲存在記憶體, 當下次存取 PHP Script 時不用重新編譯, 這樣便可以提高 PHP 的效能。 以下是在 …