阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 下升级 php

205次阅读
没有评论

共计 2290 个字符,预计需要花费 6 分钟才能阅读完成。

起因:

在现有的 Apache + PHP 环境下,增加一个 PHP Extension 扩展时,遇到错误:

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

这是因为 PHP 运行库的编译环境与扩展包的编译环境不一致。

解决的思路很简单,让两者一致。这里就有两种处理方式:1,改变 PHP 运行库版本;2,改变扩展包编译环境版本。

在我的服务器上,Apache 加载的版本比 Ubuntu apt-get 下来的版本新,所以选择更新系统的 Extension 编译版本。

1. 清除旧版本

# Remove Ubuntu PHP Packages

sudo apt-get remove php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-geoip php5-imagick php5-intl php5-mcrypt php5-mysql php5-xdebug php5-xsl

# Remove PECL Packages

sudo pecl uninstall apc

sudo pecl uninstall geoip

sudo pecl uninstall xdebug

2. 获取 PHP 指定版本,下载地址可以在这个页面找到:http://cn2.php.net/releases/

# Get PHP 5.4.17 Source

wget http://museum.php.net/php5/php-5.4.17.tar.bz2

tar jxf php-5.4.17.tar.bz2

cd php-5.4.17/

3. 编译

# Configure PHP Source

# Note: Use `php-config` utility to determine your existing PHP configure options.

./configure

# Install PHP

make

make test

sudo make install

4. 使用 peci

sudo pecl install ssh2 channel://pecl.php.net/ssh2-0.12

5. 在 php.ini 中加入

add the “extension=ssh2.so” to the extension part of php.ini

6. 重启 apache

注 1:有可能服务器上不存在 php.ini,如果这样,需要在相关目录上创建一个。

如,使用 <? phpinfo(); ?> 输出:

Configuration File (php.ini) Path /bitnami/megastack-linux-x64/output/php/lib
Loaded Configuration File (none)
这是在我服务器上的输出,让人郁闷的是,这个目录还是不存在的。刚开始没意识到不存在 php.ini,好一通找啊,浪费了不少时间。最后,直接创建了这个目录,再
sudo echo “extension=ssh2.so” > php.ini

其它的配置,就全都用默认值了。

注 2: 这里的 Apache 服务器和 PHP 模块都不是用 ubuntu 的 apt-get 安装的,是独立存在的。所以上面下载的 PHP 最新源码,并没有加入到这个 Apache 服务器中,只是作为编译 ssh2 php extension 的环境用。

所以在编译时,configure 时,没有指定参数,全都采用默认设置。

深入理解 PHP 中的 ini 配置 http://www.linuxidc.com/Linux/2016-02/128442.htm

剖析 PHP 脚本的超时机制 http://www.linuxidc.com/Linux/2016-02/128441.htm

Ubuntu 14.04 下搭建 PHP 开发环境 PDF  http://www.linuxidc.com/Linux/2016-02/128330.htm

PHP 7 革新与性能优化 http://www.linuxidc.com/Linux/2015-09/123136.htm

PHP 7,你值得拥有  http://www.linuxidc.com/Linux/2015-06/118847.htm 

在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0  http://www.linuxidc.com/Linux/2015-05/117960.htm 

CentOS 6.3 安装 LNMP (PHP 5.4,MyySQL5.6) http://www.linuxidc.com/Linux/2013-04/82069.htm 

在部署 LNMP 的时候遇到 Nginx 启动失败的 2 个问题 http://www.linuxidc.com/Linux/2013-03/81120.htm 

Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm 

《细说 PHP》高清扫描 PDF+ 光盘源码 + 全套教学视频 http://www.linuxidc.com/Linux/2014-03/97536.htm 

CentOS 6 中配置 PHP 的 LNMP 的开发环境  http://www.linuxidc.com/Linux/2013-12/93869.htm 

PHP 的详细介绍 :请点这里
PHP 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-04/130579.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2290字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中