我在EC2上有这样的文件结构:但面临着一些文件引用问题。
index.php
-db
-config.php
-cron
-cron1.php我尝试过这样引用文件:
`require_once (dirname(__FILE__).'/db/config.php');`
`require_once (($_SERVER['DOCUMENT_ROOT']).'/db/config.php');`但是cron不会在邮件中给出错误,因为run.it
`PHP Warning: require_once(/db/config.php): failed to open stream: No such file or directory in /var/www/html/cron/cron1.php on line 3
Warning: require_once(/db/config.php): failed to open stream: No such file or directory in /var/www/html/cron/cron1.php on line 3
PHP Fatal error: require_once(): Failed opening required '/db/config.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/cron/cron1.php on line 3
Fatal error: require_once(): Failed opening required '/db/config.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/cron/cron1.php on line 3`发布于 2013-08-08 14:38:48
如果你查看PHP常量PATH_SEPARATOR,你会发现它是":“。
如果您使用该字符分隔字符串".:/usr/share/pear:/usr/share/php“,您将得到3个部分。
任何试图包含()/require()内容的尝试都将按此顺序在这些目录中查找。
它会在错误消息中向您显示,以让您知道在何处找不到您试图要求的文件()
对于您的第一个要求,如果它包含在您的index.php中,那么您不需要dir内容,只需……
require_once ( 'db/config.php');发布于 2014-12-07 14:27:01
问题的解决方案
正如Uberfuzzy提到的问题的真正原因
如果你查看PHP常量PATH_SEPARATOR,你会发现它是":“。
如果您使用该字符将字符串".:/usr/share/pear:/usr/share/php“分开,您将得到3个部分
任何试图包含()/require()内容的尝试都将按此顺序在这些目录中查找。
它会在错误消息中向您显示,以让您知道在何处找不到您试图要求的文件()
导致错误的。
现已进入solution
Apache第1步:使用命令php --ini查找您的
php --ini:/etc/php5/cli/php.ini )
include_path在vi中查找apache,然后按/include_path,然后按enter
include_path = ".:/usr/share/php:/var/www/<directory>/"
就是这个。希望能有所帮助。
发布于 2014-07-30 18:41:49
实际上,解决方案是打开php.ini文件,编辑include_path行,然后将其完全更改为
include_path='.:/usr/share/php:/usr/share/pear' 或将
'.:/usr/share/php:/usr/share/pear' 设置为include_path的当前值。
有关详细说明,请参阅:http://pear.php.net/manual/en/installation.checking.php#installation.checking.cli.phpdir
https://stackoverflow.com/questions/18119133
复制相似问题