设为首页 收藏本站
查看: 1067|回复: 0

[经验分享] unbutu升级php和安装php扩展插件

[复制链接]
发表于 2018-12-17 11:52:18 | 显示全部楼层 |阅读模式
ubuntu升级php和安装php扩展

  我想说的话:

  虽然对已一个运维来说,升级个php安装个扩展是很简单的事情,但我还是把这次升级的过程完整记录下来(每个插件都带有wget下载地址,这是我的初衷),这样再次安装扩展插件时就省事多了,不至于每个插件去趟官网找下载地址。

  =======================废话不多说,开始======================

  php升级5.3.24到5.4.34
首先查看原版本的php编译参数:

root@develop:~# /usr/local/php/bin/php -i | grep configure
./configure  '--prefix=/usr/local/php-5.3.24/' \
'--with-config-file-path=/usr/local/php-5.3.24/etc' \
'--with-freetype-dir' '--with-jpeg-dir' '--with-png-dir' \
'--with-zlib' '--enable-xml' '--with-curl' '--with-curlwrappers' \
'--enable-mbregex' '--enable-mbstring' '--with-openssl' \
'--enable-sockets' '--enable-zip' '--disable-ipv6' \
'--with-pear' \
'--enable-fpm' \
'--with-fpm-user=www' \
'--with-fpm-group=www' \
'--with-mysql=/usr/local/mysql' \
'--with-mysqli=mysqlnd' \
'--enable-soap' \
'--with-pdo-mysql' \
'--enable-pcntl' \
'--with-gd' '--with-xmlrpc' '--with-iconv' '--with-mcrypt'  

  升级php要注意php的编译参数要相同。要带上版本号,然后使用软连接访问。
  

  开始升级:
cd /usr/local/src/
wget http://cn2.php.net/distributions/php-5.4.34.tar.gz
tar zxf php-5.4.34.tar.gz
cd php-5.4.34
./configure  '--prefix=/usr/local/php-5.4.34/' \
'--with-config-file-path=/usr/local/php-5.4.34/etc' \
'--with-freetype-dir' '--with-jpeg-dir' '--with-png-dir' \
'--with-zlib' '--enable-xml' '--with-curl' '--with-curlwrappers' \
'--enable-mbregex' '--enable-mbstring' '--with-openssl' \
'--enable-sockets' '--enable-zip' '--disable-ipv6' \
'--with-pear' \
'--enable-fpm' \
'--with-fpm-user=www' \
'--with-fpm-group=www' \
'--with-mysql=/usr/local/mysql' \
'--with-mysqli=mysqlnd' \
'--enable-soap' \
'--with-pdo-mysql' \
'--enable-pcntl' \
'--with-gd' '--with-xmlrpc' '--with-iconv' '--with-mcrypt'
make  其中make步骤报错如下:

ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
/home/king/php-5.2.13/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1  解决:参考:http://blog.csdn.net/sflsgfs/article/details/6318583
在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。

  解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,
例如: EXTRA_LIBS = ..... -lcrypt -liconv
然后重新再次 make 即可。
继续升级:

make
make install
cd ..  编译完成有如下提示:
Wrote PEAR system config file at: /usr/local/php-5.4.34/etc/pear.conf
You may want to add: /usr/local/php-5.4.34/lib/php to your php.ini include_path
/usr/local/src/php-5.4.34/build/shtool install -c ext/phar/phar.phar /usr/local/php-5.4.34/bin
ln -s -f /usr/local/php-5.4.34/bin/phar.phar /usr/local/php-5.4.34/bin/phar
Installing PDO headers:          /usr/local/php-5.4.34/include/php/ext/pdo/

  ====================升级完成,开始配置php===========================

  

  1) 拷贝源码包目录下的php.ini参考文件到安装目录的etc目录下
cp /usr/local/src/php-5.4.34/php.ini-production  /usr/local/php-5.4.34/etc/php.ini  修改php.ini参数(参考已有的5.3.24的php.ini)
2 )配置生产php-fpm配置文件
root@develop:/usr/local/php-5.4.34/etc# pwd
/usr/local/php-5.4.34/etc
root@develop:/usr/local/php-5.4.34/etc# cp php-fpm.conf.default php-fpm1.conf  修改 php-fpm1.conf (参考已有的5.3.24的php-fpm1.conf)

  

  3)配置完成后,创建软连接
ln -s /usr/local/php-5.4.34/ /usr/local/php  

  4 )查看就版本安装的php扩展,为新版本的php安装扩展插件

  
旧版本安装的php安装扩展如下:

extension=redis.so
extension=eaccelerator.so
;extension=memcached.so
extension=memcache.so
extension=gearman.so
extension=trie_filter.so
extension=mongo.so  ======================开始安装php扩展====================

  1 redis扩展安装

cd /usr/local/src/
wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
tar zxf 2.2.4.tar.gz
cd phpredis-2.2.4/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ..  检查:(出现redis.so表示正确)
ll /usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/  
配置php支持:

vim /usr/local/php/etc/php.ini
    #修改扩展模块路径
    extension_dir = "/usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/"
    # 添加支持
    extension="redis.so"  重启php和nginx(最后统一重启)
2 安装eaccelerator插件

cd /usr/local/src/
wget https://codeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/master
tar zxf master
cd eaccelerator-eaccelerator-42067ac/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ..
echo 'include /usr/lib/php/modules/*.so' >>  /etc/ld.so.conf  修改/usr/local/php/ect/php.ini添加如下配置:

[eaccelerator]
zend_extension_ts="/usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"  创建缓存目录:

mkdir -p /tmp/eaccelerator
chmod 777 /tmp/eaccelerator  (重启nginx php,最后统一重启)
3 安装memcache.so扩展

cd /usr/local/src/
wget http://pecl.php.net/get/memcache-2.2.7.tgz
tar zxf memcache-2.2.7.tgz
cd memcache-2.2.7/
/usr/local/php/bin/phpize
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
make
make install
cd ..  (重启nginx php,最后统一重启)
  4 安装gearman扩展

cd /usr/local/src/
wget http://pecl.php.net/get/gearman-1.1.2.tgz
tar zxf gearman-1.1.2.tgz
cd gearman-1.1.2/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ..  (重启nginx php,最后统一重启)

  
5 安装trie_filter扩展:
(该软件不好下载,网络因素) 参考网址:http://www.codeweblog.com/用于检测敏感词的-php-扩展/

cd /usr/local/src/
mkdir trie_filter
cd trie_filter/
wget https://as3chat.googlecode.com/files/trie_filter-2011-03-21.tar.gz
tar zxf trie_filter-2011-03-21.tar.gz
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ..  (重启nginx php,最后统一重启)
  

  6 安装mongo扩展

cd /usr/local/src/
wget http://pecl.php.net/get/mongo-1.4.5.tgz
tar zxf mongo-1.4.5.tgz
cd mongo-1.4.5/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ..  7 扩展安装完成检查:

root@develop:/usr/local/src# ll /usr/local/php-5.4.34/lib/php/extensions/no-debug-non-zts-20100525/
total 3380
drwxr-xr-x 2 root root    4096 Jan 20 15:11 ./
drwxr-xr-x 3 root root    4096 Jan 20 14:00 ../
-rwxr-xr-x 1 root root  467380 Jan 20 14:13 eaccelerator.so*
-rwxr-xr-x 1 root root  302505 Jan 20 14:39 gearman.so*
-rwxr-xr-x 1 root root  265098 Jan 20 14:32 memcache.so*
-rwxr-xr-x 1 root root 1445848 Jan 20 15:11 mongo.so*
-rwxr-xr-x 1 root root  928238 Jan 20 14:00 redis.so*
-rwxr-xr-x 1 root root   36722 Jan 20 14:54 trie_filter.so*  8 把已安装的扩展插件添加到php.ini

vim /usr/local/php/etc/php.ini  
添加如下配置:

extension=redis.so
extension=eaccelerator.so
;extension=memcached.so
extension=memcache.so
extension=gearman.so
extension=trie_filter.so
extension=mongo.so  9 重启nginx和php

  10 调用phpinfo();来检查
  升级完毕。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652412-1-1.html 上篇帖子: LAMP之一(模块php方式) 下篇帖子: 【laravel框架】compile.php文件的生成方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表