在HostGator上通过SSH将PHP从5.6更改为7.0后,CodeIgniter错误

时间:2018-05-25 10:58:58

标签: php codeigniter codeigniter-2 codeigniter-3 php-7

正如标题所描述的那样,我将PHP从5.6更改为7.0后,现在正在我的CI上收到此错误。如果我恢复到5.6但它需要我的服务器在7.0上,它工作正常。

遇到PHP错误

严重性:核心警告

消息:PHP启动:SourceGuardian:无法初始化使用模块API编译的模块模块= 20121212使用模块API编译的PHP = 20151012这些选项需要匹配

文件名:未知

行号:0

回溯:

2 个答案:

答案 0 :(得分:0)

从我的2013年博文:https://delboy1978uk.wordpress.com/2013/10/30/manually-compiling-php-modules-successfully/

这看起来很熟悉吗?

PHP Warning:  PHP Startup: memcached: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match

我不了解你,但我喜欢与你约会!我的PHP是5.5,我不得不安装一些模块。但有时候,旧版本可能会让他们丑陋的头脑发作,并造成各种各样的悲伤。包裹经理可以很好地为您处理所有这些,但有时它们只是不起作用。让你自己编译!让我们来做吧!我要安装memcached,然后安装imagick库(现在我知道我在做什么!)

我在CentOS 6服务器上这样做,但是由于我们正在使用旧的skool编译方式等,这应该适用于任何其他类型的Linux,或者Mac OS X。

第一步是下载你的.tar.gz,然后用tar -zxvf file.tar.gz解压缩,然后进入文件夹。

打开一个显示服务器php.ini的网页。您正在寻找PHP API的版本和extension_dir。

在终端中,进入模块源代码文件夹,然后输入phpize。

如果你检查API版本,它们与你的php.ini不同,那么在终端中使用旧版本的php,你的模块将无法工作!在这种情况下,您需要使用正确的phpize。

键入which phpize以找出违规文件的位置。 (我的是/ usr / bin / phpize)

我的PHP似乎在/ usr / local中,所以我尝试运行/usr/local/phpize。 API匹配。那么我做了以下事情:

mv /usr/bin/phpize /usr/bin/phpize-old
ln -s /usr/local/bin/phpize /usr/bin/phpize

中途!我们需要为php-config

做同样的事情
 mv /usr/bin/php-config /usr/bin/php-config-old
 ln -s /usr/local/bin/php-config /usr/bin/php-config

现在你已经完成了这项工作,安装应该是微不足道的,并按照网络上的教程/教学页面的负载工作。

./configure
 make
 make install

最后编辑你的php.ini并添加'extension = memcached.so'(或你编译的任何模块),然后重新启动你的apache服务器!

  编辑:你可能需要运行'phpize -clean',如果它仍在使用模块源文件夹中的旧东西进行编译

答案 1 :(得分:0)

下载支持PHP 7.X的最新SourceGuardian模块: https://www.sourceguardian.com/loaders/download.php