運行時配置

這些函數(shù)的行為受 php.ini 中的設(shè)置影響。

文件系統(tǒng)和 stream 配置選項
名字 默認 可修改范圍 更新日志
phar.readonly "1" PHP_INI_ALL  
phar.require_hash "1" PHP_INI_ALL  
phar.cache_list "" PHP_INI_SYSTEM  

這是配置指令的簡短說明。

phar.readonly bool

在使用 phar 流或 Phar 對象的寫入操作時, 本選項可以禁止創(chuàng)建、修改 Phar 歸檔。 在生產(chǎn)環(huán)境中推薦始終啟用本設(shè)置,否則伴隨其他常見安全漏洞, phar 擴展支持寫入時也能創(chuàng)建基于 PHP 的病毒。

注意:

出于安全考慮,只能在 php.ini 中取消此設(shè)置。 若在 php.ini 中禁用 phar.readonly,可以在代碼中啟用 phar.readonly 或其后禁用它。 若在 php.ini 中啟用 phar.readonly,在代碼中只能 "重復啟用" INI 變量,不能禁用。

phar.require_hash bool

此選項要求調(diào)用的所有 Phar 歸檔必須包含簽名(目前支持的簽名類型有 MD5、SHA1、SHA256、SHA512、OpenSSL), 而且會拒絕處理不含簽名的 Phar 歸檔。

注意:

只能在 php.ini 中取消此設(shè)置。 若在 php.ini 中禁用 phar.require_hash,可以在代碼中啟用 phar.require_hash 或其后禁用它。 若在 php.ini 中啟用 phar.require_hash,在代碼中可以 "重復啟用" INI 變量,但不能禁用它。

此選項不影響 PharData 類讀取普通 tar 文件。

警告

phar.require_hash 本身不提供任何安全保障,它只能阻止運行因意外而損壞的 Phar 歸檔, 因為任何人都可以篡改 Phar 歸檔后輕松修改成對應的簽名。

phar.cache_list string

允許 web 服務啟動時預先解析映射 phar 歸檔,提供性能上的優(yōu)化, 使得從 phar 歸檔中運行文件的速度幾乎接近從傳統(tǒng)的基于磁盤安裝運行這些文件的速度。

示例 #1 phar.cache_list 用法示例

在 php.ini 中(windows):
phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar
在 php.ini 中(unix):
phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar