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


CodeIgniter white screen on load (undefined base_url in Loader)

我不能为我的生活弄清楚为什么我的CodeIgniter安装不加载。我确信我所有的配置文件都是正确的,我甚至有error_reporting(E_ALL)ini_set('display_errors', 1);设置。

无论如何,我得到一个空白页。

在我的错误日志中,我发现了这个:

[Wed Apr 27 11:08:15 2011] [error][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的调用。

EDIT:在更改了一些文件(包括。htaccess文件)然后将它们更改回来后,我得到了一个不同的错误:

您提交的URI不被允许字符。

EDIT 2:转到http://myurl.com给出空白页,但http://myurl.com/controller给出"disallowed "字符错误。

EDIT 3: Apache以错误的用户运行,并且我的DB设置错误。修复这些后,该网站的工作,但只有当$config['permitted_uri_chars']是空白。否则我得到"disallowed "字符错误。

UPDATE: Solved the issue!这个新服务器是PHP 5.3,其他服务器是PHP 5.2。preg_quote在5.3中是不同的,所以我必须按照下面的说明来修复它:http://davidmichaelthompson.com/2009/09/03/fixed-the-uri-you-submitted-has-disallowed-characters-error-codeigniter/

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

chown www-data system -R maybe?还是777只是为了测试?

解决方案是:

  1. Apache以错误的用户运行,并且对CI的文件有错误的权限
  2. PHP 5.3有不同的preg_quote比5.2,修复在这里:http://davidmichaelthompson.com/2009/09/03/fixed-the-uri-you-submitted-has-disallowed-characters-error-codeigniter/
  3. 确保你的DB设置正确

我也有同样的问题,我安装了最新的xamp版本,发现我的网站不工作,经过研究和浪费时间,我发现。

我需要在php.ini文件中打开下列标签short_open_tag =

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

希望这有帮助,如果你的网站已经像其他人面临类似的问题一样运行,大多数这些问题都与php.ini文件或新安装有关。

听起来像是语法错误。检查是否所有文件都上传完毕

检查config.php中的base_url(在application/config/中)。听起来语法可能是混乱的,或者没有定义。

$config['base_url'] = 'http://your_url/';

也:你使用的是哪个版本的CI ?我刚刚在我的工作项目中加载了我的loader.php文件,我的第255行与你的有点不同。$CI->dbutil =& instantiate_class(new $class()); . .我不确定这是否相关,因为我不怎么浏览系统文件夹但是

值得一看

您可以将autoload.php文件替换为以下内容:

$autoload['helper'] = array('url');