我有一个聪明的项目:
在devidate_server.php
中:
<?php
include($_SERVER['DOCUMENT_ROOT'] . '/ax/ax_conf/CONSTANTS.php');
include($_SERVER['DOCUMENT_ROOT'] . '/ax/utils/utils.php');
...
我会得到错误,但是我无法获得错误信息,因为我正在开发WHMCS,所以我不知道回溯的位置。给我信息,界面空白。
但是,如果我评论include($_SERVER['DOCUMENT_ROOT'] . '/ax/utils/utils.php');
,就不会出错。
将显示界面内容。
在utils.php
中有:
<?php
include($_SERVER['DOCUMENT_ROOT'].'/qi_cloud/utils/http_util.php');
include($_SERVER['DOCUMENT_ROOT'].'/qi_cloud/qi_cloud_config/urls.php');
include($_SERVER['DOCUMENT_ROOT'].'/qi_cloud/libs/Requests/library/Requests.php');
Requests::register_autoloader();
function fetch_qicloud_access_tokens($params){
$result = Requests::post('http://localhost:8000/o/token', [
// headers
'Accept'=>'application/json'
], $params, [
// options
'auth' => new Requests_Auth_Basic([QICLOUD_whmcs_pj_client_id, QICLOUD_whmcs_pj_client_secret])
]);
return $result;
}
我不知道为什么会出现包含错误,谁能帮助我为什么我评论那行会正常?
EDIT-01
我得到了错误日志:
[2018年7月18日星期三11:26:52.040872] [proxy_fcgi:error] [pid 29189:tid 139662983087872] [client 118.113.136.133:29440] AH01071:错误'PHP消息:PHP警告:require(/ usr /本地/httpd/htdocs/whmcs/qi_cloud/libs/Requests/library/Requests.php):无法打开流:/usr/local/httpd/htdocs/whmcs/qi_cloud/utils/http_util.php中没有此类文件或目录第9行\ nPHP消息:PHP警告:require(/usr/local/httpd/htdocs/whmcs/qi_cloud/libs/Requests/library/Requests.php):无法打开流:/ usr /中没有这样的文件或目录第9行\ nPHP上的local / httpd / htdocs / whmcs / qi_cloud / utils / http_util.php消息:PHP致命错误:require():无法打开所需的'/ usr / local / httpd / htdocs / whmcs / qi_cloud / libs / Requests第9行的/usr/local/httpd/htdocs/whmcs/qi_cloud/utils/http_util.php中的/library/Requests.php'(include_path ='。:/ usr / share / pear:/ usr / share / php') \ n',引荐来源:http://www.example.net/clientarea.php
EDIT-2
qi_cloud/utils/utils.php
<?php
include($_SERVER['DOCUMENT_ROOT'].'/qi_cloud/utils/http_util.php');
include($_SERVER['DOCUMENT_ROOT'].'/qi_cloud/qi_cloud_config/urls.php');
include($_SERVER['DOCUMENT_ROOT'].'/qi_cloud/libs/Requests/library/Requests.php');
Requests::register_autoloader();
...
urls.php
<?php
require('./CONSTANTS.php');
define('qicloud_oauth_token_url', QICLOUD_BASE_API . 'o/token/'); //
CONSTANTS.php
:
<?php
define('QICLOUD_BASE_API', 'http://103.200.32.76:8000/');
...
答案 0 :(得分:0)
您不应该依赖文档根目录。
执行以下操作:
require_once( DIR 。'/relative/path/from/current/directory/file.php');
如果ifbfile不存在,则require一次将停止执行,因为它是require。如果第二次通过此代码,一次将确保您不会两次不包含该文件。作为绝对/类/常量声明,您不应包含一个以上的文件。如果使用正确的IDE(例如phpstorm),则文件路径无效时将发出警告。使用文档根变量无法实现这一点。
但是我不知道您确切的contalext,但是您应该检查诸如composer.json之类的内容来处理您的依赖项。
P.s。 DIR magic常量前后有2个下划线,但是移动网络版本上的格式受到限制,并且强制加粗...