当前PHP的最新版本是PHP 7.1.10,并且已提供了下载,但是我们本次只升级到PHP 7.0。PHP 7.0发布于2015年11月3日,这个版本提升了速度并加入了新特性。这篇文章介绍怎么把Apache或Nginx服务器上PHP 5.x升级到PHP 7.0。
注意:php7是主版本的升级,你最好等一段时间在转到新版本上。在升级之前也要对你的应用在PHP7下进行测试。
前提
Ubuntu 14.04
Apache或Nginx
PHP 5.x
可以执行sudo的普通用户
为PHP 7.0增加源(PPA)
sudo add-apt-repository ppa:ondrej/php-7.0
注意:当你的系统使用的不是UTF-8字符集时,运行上面命令可能失败。你可以安装language-pack-en-base解决:
sudo apt-get install -y language-pack-en-base
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php-7.0
添加完PPA,更新软件缓存列表:
sudo apt-get update
Apache:
Apache是通过mod_php执行php代码,如果你使用的是Nginx和PHP-FPM,跳到下一段。
安装PHP 7。下面这条命令更新了PHP相关的所有包,除了php5-mysql(它被删除了)。
sudo apt-get install php7.0
注意:以前的配置文件还在原来的位置(/etc/php5/)并没有删除,PHP 7的配置文件在 (/etc/php/7.0)。
如果你使用mysql,安装php7.0-mysql:
sudo apt-get install php7.0-mysql
Nginx
安装:
sudo apt-get install php7.0-fpm
如果使用mysql,安装php7.0-mysql:
sudo apt-get install php7.0-mysql
注意:以前的配置文件还在原来的位置(/etc/php5/)并没有删除,PHP 7的配置文件在 (/etc/php/7.0)。
更新sock路径:
PHP 5:/var/run/php5-fpm.sock
PHP 7:/var/run/php/php7.0-fpm.sock
编辑配置文件:
sudo nano /etc/nginx/sites-enabled/default
查找fastcgi_pass unix:/var/run/php5-fpm.sock,替换为unix:/var/run/php/php7.0-fpm.sock:
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启nginx:
sudo service nginx restart
测试PHP
在终端输入如下命令,查询PHP版本:
php -v
PHP 7.0.0-5+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
在网站根目录创建文件info.php:
phpinfo();
?>
根据系统不同,网站根目录默认一般在如下位置:
/var/www/html
/var/www/
/usr/share/nginx/html
在浏览器中输入你服务器网址或IP:http://your_IP/info.php
你应该能看到PHP版本和配置信息的网页,最后删除这个文件:
sudo rm /var/www/html/info.php