一、起因
最近想尝试体验下laravel框架,由于框架对php版本大于5.6.4,自己服务器的php版本才5.4,因此一次性升级到php7。
参考官网的laravel服务器要求:https://laravel.com/docs/5.3/installation
PHP >= 5.6.4
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension
二、Ubuntu通过apt-get升级PHP7
添加ppa(https://www.linuxdashen.com/debian%E5%92%8Cubuntu%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8D%87%E7%BA%A7php7)
sudo apt-get install python-software-properties software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
安装PHP7
sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-curl php7.0-mbstring
三、验证php7.0是否安装成功
php -v
发现还是老的版本,同时发现有一个ph7.0命令:
root:~# php7.0 -v
PHP 7.0.13-1+deb.sury.org~precise+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.13-1+deb.sury.org~precise+1, Copyright (c) 1999-2016, by Zend Technologies
通过浏览器访问phpinfo()发现还是老的版本,默认使用的还是老版本,存在两个版本共存,下面通过php-fpm修改。
四、升级php-fpm
升级php7.0的同时会自动升级php-fpm到7.0,执行ps -ef | grep php-fpm
发现有一个原有的php-fpm
和一个/etc/php/7.0/fpm/php-fpm.conf
,把老的kill掉,再通过浏览器执行,发现报502错误。*
解决方式:在php-fpm配置文件(/etc/php/7.0/fpm/php-fpm.conf
)加上下面几行即可。
[www]
user=www
group=www
listen = 127.0.0.1:9000
重启php-fpm
service php-fpm restart
验证访问成功,并执行phpinfo()确认是php7.0最新版
原因:php-fpm是绑定本地9000端口,nginx通过fastcgi_pass 127.0.0.1:9000;
将请求转发到本地9000端口上。 </