首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"(include_path='.:/usr/share/pear:/usr/share/php')"?是什么意思?

"(include_path='.:/usr/share/pear:/usr/share/php')"?是什么意思?
EN

Stack Overflow用户
提问于 2013-08-08 14:17:38
回答 8查看 127.8K关注 0票数 22

我在EC2上有这样的文件结构:但面临着一些文件引用问题。

代码语言:javascript
复制
index.php
-db
  -config.php
-cron
  -cron1.php

我尝试过这样引用文件:

代码语言:javascript
复制
`require_once (dirname(__FILE__).'/db/config.php');`
`require_once (($_SERVER['DOCUMENT_ROOT']).'/db/config.php');`

但是cron不会在邮件中给出错误,因为run.it

代码语言:javascript
复制
`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`
EN

回答 8

Stack Overflow用户

发布于 2013-08-08 14:38:48

如果你查看PHP常量PATH_SEPARATOR,你会发现它是":“。

如果您使用该字符分隔字符串".:/usr/share/pear:/usr/share/php“,您将得到3个部分。

  • .(这意味着您的代码的当前目录是in)
  • /usr/share/pear
  • /usr/share/php

任何试图包含()/require()内容的尝试都将按此顺序在这些目录中查找。

它会在错误消息中向您显示,以让您知道在何处找不到您试图要求的文件()

对于您的第一个要求,如果它包含在您的index.php中,那么您不需要dir内容,只需……

代码语言:javascript
复制
require_once ( 'db/config.php');
票数 13
EN

Stack Overflow用户

发布于 2014-12-07 14:27:01

问题的解决方案

正如Uberfuzzy提到的问题的真正原因

如果你查看PHP常量PATH_SEPARATOR,你会发现它是":“。

如果您使用该字符将字符串".:/usr/share/pear:/usr/share/php“分开,您将得到3个部分

  • .(这意味着您的代码的当前目录是in)
  • /usr/share/pear
  • /usr/share/ph

任何试图包含()/require()内容的尝试都将按此顺序在这些目录中查找。

它会在错误消息中向您显示,以让您知道在何处找不到您试图要求的文件()

导致错误的

现已进入solution

Apache第1步:使用命令php --ini查找您的

  • 文件(在我的示例中:php --ini/etc/php5/cli/php.ini )

  • 第2步:使用include_path在vi中查找apache,然后按/include_path,然后按enter

  • Step 3:取消注释该行如果已注释并包含您的服务器目录,您的路径应如下所示4:重新启动apache include_path = ".:/usr/share/php:/var/www/<directory>/"

  • Step

就是这个。希望能有所帮助。

票数 12
EN

Stack Overflow用户

发布于 2014-07-30 18:41:49

实际上,解决方案是打开php.ini文件,编辑include_path行,然后将其完全更改为

代码语言:javascript
复制
include_path='.:/usr/share/php:/usr/share/pear' 

或将

代码语言:javascript
复制
'.:/usr/share/php:/usr/share/pear' 

设置为include_path的当前值。

有关详细说明,请参阅:http://pear.php.net/manual/en/installation.checking.php#installation.checking.cli.phpdir

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18119133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档