PHP 常用設定
大约 2 分鐘
PHP 常用設定
前言
因為常常用到就記錄一下。
修改設定檔
如果是安裝在 Ubuntu 系統,預設路徑可參考以下。
/etc/php/7.4/fpm/php.ini
/etc/php/8.1/fpm/php.ini
修改項目
調整擴充模組的 extension 註解 可參考
extension=bz2
extension=curl
; extension=ffi
; extension=ftp
extension=fileinfo
; extension=gd
extension=gettext
; extension=gmp
; extension=intl
; extension=imap
; extension=ldap
extension=mbstring
extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
; extension=oci8_12c ; Use with Oracle Database 12c Instant Client
; extension=oci8_19 ; Use with Oracle Database 19 Instant Client
; extension=odbc
extension=openssl
; extension=pdo_firebird
extension=pdo_mysql
; extension=pdo_oci
; extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite
; extension=pgsql
; extension=shmop
修改時區
date.timezone = Asia/Taipei
上傳檔案大小限制
放寬檔案上傳大小相關的設定:記憶體用量上限 > POST 大小上限 > 上傳檔案大小上限。
; 上傳檔案大小上限(單一檔案大小)
upload_max_filesize = 50M
; POST 大小上限(所有檔案大小加總)
post_max_size = 200M
; 記憶體用量上限
memory_limit = 512M
執行時間設定
上傳大型檔案通常都會需要比較久的時間,為了避免逾時需要調整執行時間。
; PHP 指令稿執行時間上限(秒)
max_execution_time = 600
; PHP 指令稿解析輸入資料時間上限(秒)
max_input_time = 600
若擔心網路不穩造成傳大檔案時容易斷線的話,可以嘗試將 socket 等待逾時的設定調大一點。
; socket 等待逾時(秒)
default_socket_timeout = 600
若有使用 MySQL 資料庫的連線,可以修改一下 MySQL 連線逾時的設定,避免上傳檔案等待太久,造成資料庫連線中斷:
; MySQL 資料庫連線逾時(秒,-1 代表永不斷線)
mysql.connect_timeout = -1
是否給 cookie 加上 httpOnly 標誌
session.cookie_httponly = 1
修改充檔案的資料夾目錄
; extension_dir = "ext"
extension_dir = "D:\WNMP\php-8.1.5-nts-Win32-vs16-x64\ext"
其他修改
; 僅適用 Apache 伺服器 是否啟用動態載入模組功能
enable_dl = On
; 與 $_SERVER['PATH_INFO'] 變數取值功能有關
cgi.fix_pathinfo=1
; 可防止任何人使用 URL 直接調用 PHP
cgi.force_redirect = 1
; 設定 PHP 是否傳送 RFC 2616 相容的報頭
cgi.rfc2616_headers = 1
; 使IIS的FastCGI模擬應用程式的安全金鑰
fastcgi.impersonate = 1