跳至主要內容

PHP 常用設定

Pamis Wang大约 2 分鐘後端PHPPHP 7PHP 8

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
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
上次編輯於:
貢獻者: pamis