加载CodeIgniter白屏(Loader中未定义的base_url)

时间:2011-04-27 16:18:15

标签: php codeigniter

我不能为我的生活找出为什么我的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/

6 个答案:

答案 0 :(得分:1)

是否是任何CI库文件的权限问题?

也许是{p> chown www-data system -R?还是777它只是用于测试?

答案 1 :(得分:1)

这里的解决方案是:

  1. Apache作为错误的用户运行,并且对CI的文件具有错误的权限
  2. PHP 5.3与5.2不同preg_quote,修复方法在此处:http://davidmichaelthompson.com/2009/09/03/fixed-the-uri-you-submitted-has-disallowed-characters-error-codeigniter/
  3. 确保您的数据库设置正确

答案 2 :(得分:1)

我遇到了同样的问题,在研究和浪费时间后,我发现最新的xamp版本安装了,发现我的网站无法正常工作。

我需要打开php.ini文件中的以下标记 short_open_tag =开启

执行此操作后,请确保重新启动apache。

希望这会有所帮助,如果您的网站已经像其他人一样面临着类似的问题,那么大多数问题都与php.ini文件或全新安装有关。

答案 3 :(得分:0)

听起来像语法错误..检查所有文件是否完全上传

答案 4 :(得分:0)

检查base_url中的config.phpapplication/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');