前言
在 CentOS 上透過 yum 安裝 php 及相關的模組後,可以發現在許多模組的配置文件是放置在 /etc/php.d 目錄下,不需要另外手動在 /etc/php.ini 添加,也能夠正常使用新安裝的模組。
說明
這是因為透過 yum 安裝的 php,會建立 /etc/php.d 目錄,並指定該目錄為 php.ini 之外的其他 ini 文件預設目錄。因此使用 yum 安裝的 php 模組,就會將模組的 ini 配置文件建立在 /etc/php.d 目錄下。
如果是下載原始碼進行編譯、安裝,在執行 configure
的時候,是可以透過使用 --with-config-file-path
及 --with-config-file-scan-dir
這兩個變數,指定 php.ini 文件及其他模組的 ini 文件的所在目錄。例如下面的範例就是指定 php.ini 放在 /etc 目錄下,而其他模組的 ini 文件則是放在 /etc/php.d 目錄下。
$ ./configure --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/etc/php.d
如果想要查詢目前 ini 文件相關目錄的配置,可以使用 php --ini
指令查詢。
$ php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed: /etc/php.d/10-opcache.ini,
/etc/php.d/20-bcmath.ini,
/etc/php.d/20-bz2.ini,
/etc/php.d/20-calendar.ini,
/etc/php.d/20-ctype.ini,
/etc/php.d/20-curl.ini,
/etc/php.d/20-dom.ini,
/etc/php.d/20-exif.ini,
/etc/php.d/20-fileinfo.ini,
/etc/php.d/20-ftp.ini,
/etc/php.d/20-gd.ini,
/etc/php.d/20-gettext.ini,
/etc/php.d/20-iconv.ini,
/etc/php.d/20-intl.ini,
/etc/php.d/20-json.ini,
/etc/php.d/20-mbstring.ini,
/etc/php.d/20-mysqlnd.ini,
/etc/php.d/20-pdo.ini,
/etc/php.d/20-phar.ini,
/etc/php.d/20-posix.ini,
/etc/php.d/20-shmop.ini,
/etc/php.d/20-simplexml.ini,
/etc/php.d/20-soap.ini,
/etc/php.d/20-sockets.ini,
/etc/php.d/20-sodium.ini,
/etc/php.d/20-sqlite3.ini,
/etc/php.d/20-sysvmsg.ini,
/etc/php.d/20-sysvsem.ini,
/etc/php.d/20-sysvshm.ini,
/etc/php.d/20-tokenizer.ini,
/etc/php.d/20-xml.ini,
/etc/php.d/20-xmlwriter.ini,
/etc/php.d/20-xsl.ini,
/etc/php.d/30-mysqli.ini,
/etc/php.d/30-pdo_mysql.ini,
/etc/php.d/30-pdo_sqlite.ini,
/etc/php.d/30-xmlreader.ini,
/etc/php.d/30-xmlrpc.ini,
/etc/php.d/30-zip.ini,
/etc/php.d/40-apcu.ini,
/etc/php.d/40-igbinary.ini,
/etc/php.d/40-msgpack.ini,
/etc/php.d/40-swoole.ini,
/etc/php.d/50-redis.ini