无法设置 PHP include_path
Posted
技术标签:
【中文标题】无法设置 PHP include_path【英文标题】:Cannot set PHP include_path 【发布时间】:2015-09-03 13:28:45 【问题描述】:我已经在 var/www/html 中上传了我的所有文件,并且在我的一个 php 文件中我有这一行:
require_once('libraries/stripe/init.php');
我的文件夹结构如下:
www
-html/
-libraries
-> Stripe -> init.php
-register.php
我不断收到此错误消息:
警告:require_once(libraries/Stripe/init.php):无法打开流:第 116 行的 /var/www/html/register.php 中没有这样的文件或目录
致命错误:require_once():无法在 /var/www/ 中打开所需的“libraries/Stripe/init.php”(include_path='.:/usr/share/php:/var/www/html/') html/register.php 第 116 行
我的php.ini文件以前是这样的
include_path=".:/usr/local/php/pear/"
但根据这里的一些答案,我将其更改为
include_path='.:/usr/share/php:/var/www/html/'
但它不起作用!
编辑:在我的库文件夹中,我有一个名为 index.php 的文件,内容是:
<?php
header("Location: ../"); die();
【问题讨论】:
请检查该路径下的文件 @Ramki 文件存在于该路径中 尝试 Include_once(path) @MeeneshJain 在任何事情上授予 777 权限都是自找麻烦,停止传播不良建议! @HiradRoshandel 更改您的代码以使用正确的路径,特别是区分大小写的正确路径。 *nix 文件系统通常区分大小写。最好以最便携的方式编写代码 【参考方案1】:我不会把图书馆路径留给这样的机会:
require_once(__DIR__ . '/libraries/Stripe/init.php');
这将确保您使用当前运行的脚本的绝对目录路径包含脚本。
更新
打开失败需要'/var/www/html/libraries/Stripe/init.php'
好吧,那么文件根本不存在;如果此文件是由其他工具生成的,例如composer
,需要在新服务器上再次完成(或者理想情况下在每次部署时)。
我认为问题在于我的 Stripe 文件夹位于“s”中,但我使用的是大写“S”。有没有不区分大小写的方法?
Linux 下的文件系统默认区分大小写(甚至不确定是否可以更改),而不是 Windows。确保始终使用大写。
【讨论】:
还是同样的错误:打开失败需要'/var/www/html/libraries/Stripe/init.php' 跟作曲家有关系吗? @HiradRoshandel 然后文件根本不存在;如果您使用composer
在该非标准目录中安装软件包,则需要在另一台服务器上再次运行它。
呃,这是区分大小写的。看这里的评论~***.com/questions/30906376/…
@HiradRoshandel 你真的使用 Composer 来安装 Stripe 包吗?【参考方案2】:
这不是你要找的。它说 php.ini 文件找不到您指定的文件的路径。这就是为什么你应该使用文件的绝对路径
require_once "path/to/file";
【讨论】:
但我在另一台服务器上有这段代码,它工作正常!我的设置一定有问题以上是关于无法设置 PHP include_path的主要内容,如果未能解决你的问题,请参考以下文章