これは当然 includes_path ディレクティブによって処理されますが、CLI からの初期ファイルでは考慮されません。ファイル内で使用される include は includes_path を使用します。
見る:
[root@host ~]# php -v
PHP 5.2.9 (cli) (built: Oct 17 2010 16:55:28)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
[root@host ~]# php -i | grep include_path
include_path => .:/usr/lib/php:/usr/local/lib/php => .:/usr/lib/php:/usr/local/lib/php
[root@host ~]# ls /usr/lib/php
Archive Console HTML Net OS PEAR PEAR.php PEAR5.php Structures System.php XML build data doc pearcmd.php peclcmd.php test
[root@host ~]# php PEAR.php
Could not open input file: PEAR.php
1 つの代替方法は、INI ファイルを読み取り、include_path を解析してphp ${INCLUDE_PATH_PREFIX}$1
. そのパスを php.ini ファイルに追加する必要があります...例:
#!/bin/sh
INCLUDE_PATH_PREFIX=grep -Ei '^include_path.*:([^ ]+)' /usr/local/lib/php.ini | grep -oEi ":[^:]+" | grep -oEi "[^:\"]+" | tail -1
php ${INCLUDE_PATH_PREFIX}$1 -c $2
使用法: phpinc.sh file.php /path/to/custom/php.ini
CLI (通常は PCRE API またはラッパーを使用) では grep をあまり使用しないため、最後のインクルード パスを絞り込むためのより良い方法があるかもしれません。