我不能为我的生活找出为什么我的CodeIgniter安装没有加载。我确定我的所有配置文件都是正确的,我甚至设置了error_reporting(E_ALL)
和ini_set('display_errors', 1);
。
无论如何,我都会得到一个空白页。
在我的错误日志中,我发现了这个:
[Wed Apr 27 11:08:15 2011] [错误] [client 127.0.0.1] PHP致命错误: 调用未定义的函数base_url() 在 /var/www/html/system/libraries/Loader.php 在第255行
有没有人见过这个错误?
第255行是:
$CI->dbutil =& new $class();
$class
$class = 'CI_DB_'.$CI->db->dbdriver.'_utility';
且$CI->db->dbdriver
为'mysqli'
。
我使用了grep,在Loader类或Database类中的任何地方都找不到对base_url
的调用。
编辑:更改了一些文件(包括.htaccess文件)然后再将它们更改后,我收到了一个不同的错误:
您提交的URI已被禁止 字符。
编辑2 :转到http://myurl.com
会显示空白页,但http://myurl.com/controller
会显示“不允许”字符错误。
编辑3 :Apache作为错误用户运行,我的数据库设置错误。修复后,该网站可以正常工作,但仅当$config['permitted_uri_chars']
为空时。否则我会收到“不允许的”字符错误。
更新:解决了问题!这个新服务器有PHP 5.3,其他服务器有5.2。 preg_quote
在5.3中有所不同,因此我必须按照此处的说明进行修复:http://davidmichaelthompson.com/2009/09/03/fixed-the-uri-you-submitted-has-disallowed-characters-error-codeigniter/
答案 0 :(得分:1)
是否是任何CI库文件的权限问题?
也许是{p>chown www-data system -R
?还是777它只是用于测试?
答案 1 :(得分:1)
这里的解决方案是:
preg_quote
,修复方法在此处:http://davidmichaelthompson.com/2009/09/03/fixed-the-uri-you-submitted-has-disallowed-characters-error-codeigniter/ 答案 2 :(得分:1)
我遇到了同样的问题,在研究和浪费时间后,我发现最新的xamp版本安装了,发现我的网站无法正常工作。
我需要打开php.ini文件中的以下标记 short_open_tag =开启
执行此操作后,请确保重新启动apache。
希望这会有所帮助,如果您的网站已经像其他人一样面临着类似的问题,那么大多数问题都与php.ini文件或全新安装有关。
答案 3 :(得分:0)
听起来像语法错误..检查所有文件是否完全上传
答案 4 :(得分:0)
检查base_url
中的config.php
(application/config/
中)。听起来语法可能搞砸了,或者没有定义。
$config['base_url'] = 'http://your_url/';
此外:
您使用的是哪个版本的CI?我刚刚在我的工作项目中加载了loader.php
文件,我的第255行与你的不同。 $CI->dbutil =& instantiate_class(new $class());
..我不确定这是否相关,因为我没有在系统文件夹中找到它,但值得一看
答案 5 :(得分:0)
您可以使用以下内容替换autoload.php文件。
$autoload['helper'] = array('url');