Code Igniter白页使用新服务器

时间:2015-02-21 02:45:08

标签: php codeigniter codeigniter-2

我在我的Apache2服务器上运行了一个带有PHP版本“5.5.9-1ubuntu4.2”的CI应用程序。一切都运行良好。

现在,我安装了第二个OpenLiteSpeed网络服务器,运行PHP版本“5.6.5”(我尝试过不同的版本)。此服务器与apache并行运行,但位于不同的端口(8088)。

每当我访问我的应用程序的index.php页面时,我都会看到一个白色屏幕。我尝试添加默认的welcome.php控制器和视图,并尝试使用URL运行它:

http://www.example.com:8088/app/index.php/welcome/
http://www.example.com:8088/app/index.php/welcome/index
http://www.example.com:8088/app/index.php
http://www.example.com:8088/app/index.php/app/ (my app controller)

...etc

一切都是白色的屏幕。如果我只是将8088从URL中拉出来(因此使用端口80,我的apache服务器),一切都运行得很好。

我已尝试将所有错误日志参数设置为其最大值。我检查了我的服务器的error.log和access.log。我已经检查了我的/ app / application / logs /文件夹中的CI生成日志。我已将OpenLiteSpeed设置为调试模式并读取所有消息。我已将php.ini中的“display_errors”设置为“On”并使用php.info进行验证。我已将应用程序的index.php设置为开发模式。

任何地方都没有错误。

我的任何php文件中都没有短标签。我试过在我的php.ini中打开和关闭短标签而没有效果。

OpenLiteSpeed不使用任何.htaccess文件。我有一个RewriteRule将非www重写为www。

我解决这个问题的时间大约是16小时20分钟,进展为0。

有什么建议吗?

编辑:尝试将apache的php.ini移动到OpenLiteSpeed的php上。没有任何区别。

编辑:将其缩小为“数据库”和“会话”的自动加载。删除这些自动加载可以解决问题,但数据库功能不再起作用。

编辑:在mysql_driver.php中找到数据库连接函数。当然,调用是@mysql_pconnect(...),@抑制错误,所以难怪我什么都没看到。在php.ini中的两个位置重新启用display_errors后,我现在得到

Fatal error: Call to undefined function mysql_pconnect() in /var/www/html/CodeIgniter/database/drivers/mysql/mysql_driver.php on line 94
似乎php没有用mysql支持编译。让我们重新编译。

编辑:问题解决了。 CI的自动加载正在加载两个库“数据库”和“会话”,这两个都导致了白屏。当我删除它们时,错误就会消失。我必须使用以下选项重新编译PHP:

--enable-opcache --with-mysql --with-mysqli --with-zlib --with-gd --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-mbstring --with-iconv --with-libdir=lib64 --with-litespeed --with-curl --enable-zip --with-bz2 --with-jpeg-dir=lib64 --enable-bcmath --enable-calendar --enable-ftp --enable-gd-native-ttf --enable-exif --with-openssl --with-xmlrpc --with-freetype-dir=lib64 --with-png-dir=lib64 --enable-inline-optimization --enable-xml 

因此根本原因是PHP配置配置不正确。但真正的问题是CI是一个糟糕的框架,无法正确显示错误信息,以帮助您识别出现问题。信息就在那里,PHP告诉你什么是错的,CI最好隐藏它,这样你就不会在没有大约20个小时的反复试验的情况下弄清楚。超级。

1 个答案:

答案 0 :(得分:1)

找出答案。白色屏幕是由于"下载"的自动加载导致的。和"会话"图书馆,在后台静默失败。我必须使用正确的选项重新编译PHP以使其正常工作。

--enable-opcache --with-mysql --with-mysqli --with-zlib --with-gd --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-mbstring --with-iconv --with-libdir=lib64 --with-litespeed --with-curl --enable-zip --with-bz2 --with-jpeg-dir=lib64 --enable-bcmath --enable-calendar --enable-ftp --enable-gd-native-ttf --enable-exif --with-openssl --with-xmlrpc --with-freetype-dir=lib64 --with-png-dir=lib64 --enable-inline-optimization --enable-xml 

真正的问题是CI隐藏了所有可能导致此问题无法检测的错误消息,并且只需要花费大量时间来查找失败的@ surpressed mysql_connection函数调用。