所以,我把这个项目上传到webwire。在/alpha中,但是它返回的是空白页。
PHP Fatal error: require(): Failed opening required './classes/Cookie.php' (include_path='.:/usr/share/php:/usr/share/pear in /var/www/html/alpha/core/init.php on line 22
和第25行各一个
第21-23行code = spl_autoload_register(function($class) {
require_once ('./classes/' . $class . '.php'); //line 22
});
第25行= require_once ('./functions/sanitize.php');
这个错误的棘手的事情是,这只适用于这个alpha
文件夹。昨天也发生了,但是不知怎么的被修复了。现在,当我删除文件并上传时,错误又出现了。昨天,至少alpha/admin
是工作的,但今天没有任何工作在这个alpha文件夹。
还有一件事,我已经把同样的文件上传到另一台服务器上,它工作得很完美。请看这里——众包。/rationshop(共享主机)
当前服务器是VPS。
我不是这方面的专家,我仍然尝试了解决方案,因为我搜索,但没有一个对我有效,直到现在。
包含的页面是相对于加载的页面包含的,而不是执行包含的脚本。
那么,如果你在文件夹中有一个脚本:/var/www/html/alpha/admin/
包括脚本:/var/www/html/alpha/core/init.php
init.php
包含文件./functions/sanitize.php
然后init.php查找文件夹/var/www/html/alpha/admin/
,这是加载初始脚本的地方。不考虑相对于init.php
脚本。它正在查找一个不存在的文件:/var/www/html/alpha/admin/functions/sanitize.php
。我假设它存在于/var/www/html/alpha/core/functions/sanitize.php
下。
简单的解决方法是使用__DIR__
,这是一个内置的php魔术常量,具有当前脚本(当前包含的文件)的值。/var/www/html/alpha/core/init.php
内部,__DIR__
== /var/www/html/alpha/core/
。所以你可以包含/require __DIR__."/functions/sanitize.php