我不能为我的生活弄清楚为什么我的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只是为了测试?
解决方案是:
- Apache以错误的用户运行,并且对CI的文件有错误的权限
- PHP 5.3有不同的
preg_quote
比5.2,修复在这里:http://davidmichaelthompson.com/2009/09/03/fixed-the-uri-you-submitted-has-disallowed-characters-error-codeigniter/ - 确保你的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');