目前这篇总结只是从php5.5.9升级到php5.6.30的一个方法,还有其他方法,升级到其他版本的没试,因为懒~
看了一些外文和中文的文章,有一些步骤说是可以直接升级不需要卸载,然而在我这里没有成功,所以总结下自己摸索升级的步骤,应该会有更好的方法,比如不需要重新安装扩展,但是编译安装时的版本不一样这个怎么弄?(我弄懂了会再更新补充上来~)我重新编译安装了之后php-fpm5.6 -t
依然说我的版本不对,我就选了一个我认为我最好接受的方式来升级。
开发机环境
ubuntu14.04
php-5.5.9
nginx 1.4.6
升级步骤
坑:试了其他的方法添加源时会报错,执行apt-get dist-upgrade的时候我发现会一并升级很多软件,这并不是我想要的,我只想升级php5.5.9到5.6.30。
所以,我采用了下面这种方法:
卸载之前安装的php5.5.9:
因为懒:
sudo apt-get autoremove php5*
我发现/etc/php5文件夹和/usr/lib/php5(貌似是这个名字)依旧存在,鉴于没用就删的原则。。。
sudo rm -rf 文件夹
看好了再删!!!
安装php5.6.30
基本命令都在这里了(cli貌似已经在安装php5.6的时候安装了?可以试一下,如果已经安装了会有提示的,phpize和php-config需要php5.6-dev):
sudo apt-get install php5.6 sudo apt-get install php5.6-fpm sudo apt-get install php5.6-cli sudo apt-get install php5.6-dev
接下来对照之前的安装的扩展重新安装,这一步按自己的需求。
sudo apt-get install php5.6-mcrypt sudo apt-get install php5.6-curl sudo apt-get install php5.6-gd sudo apt-get install php5.6-mysql sudo apt-get install php5.6-bcmath sudo apt-get install php5.6-bz2 sudo apt-get install php5.6-dba sudo apt-get install php5.6-mbstring sudo apt-get install php5.6-soap sudo apt-get install php5.6-zip
上面这种安装方式是不需要手动配置php.ini的(cli&fpm)!编译安装时需要在配置中改完再重启php-fpm的。
编译安装redis和amqp。php -m
看一下扩展是否已经安装成功并加载~在php.ini中指定新版本的PHP扩展的文件夹。添加编译安装的扩展。
在nginx sites-enabled这种将每一个配置文件的sock文件改为/var/run/php/php-fpm5.6.sock。(对照自己安装的位置去写,sock文件后面如果有=不需要写)。
重启nginx和php-fpm(fpm是如果编译安装了扩展就需要重新启动的)。