前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上升级到PHP 7

如何在Ubuntu 14.04上升级到PHP 7

原创
作者头像
八十岁的背影
修改2018-10-22 11:50:13
2.1K0
修改2018-10-22 11:50:13
举报

介绍

2015年12月3日发布的PHP 7承诺与以前版本的语言相比具有显着的速度提升,以及标量类型提示等新功能。本指南介绍如何快速将运行PHP 5.x(任何版本)的Apache或Nginx Web服务器升级到PHP 7。

警告:与大多数主要版本语言版本一样,在生产中切换到PHP 7之前最好等一会儿。同时,现在是测试应用程序与新版本兼容性,执行基准测试以及熟悉新语言功能的好时机。

如果您正在运行具有活动用户的任何服务或应用程序,则最安全的做法是首先在暂存环境中测试此过程。

准备

一台已经设置好可以使用sudo命令的非root账号的Ubuntu 服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

本指南假设您在Ubuntu 14.04计算机上运行PHP 5.x,既可以mod_php与Apache结合使用,也可以将PHP-FPM与Nginx结合使用。它还假定您为非root用户配置sudo了管理任务的权限。

为PHP 7.0包添加PPA

一个个人包档案,或PPA,是托管在一个恰当的存储库快速启动。PPA允许第三方开发人员在官方渠道之外为Ubuntu构建和分发软件包。它们通常是测试版软件的有用来源,修改后的构建版本以及向旧版本操作系统的反向移植。

OndřejSurý维护Debian的PHP包,并在Ubuntu上为PHP 7.0提供PPA。在做任何其他事情之前,请登录您的系统,并将Ondřej的PPA添加到系统的Apt源:

sudo add-apt-repository ppa:ondrej/php

您将看到PPA的描述,然后提示继续。按Enter继续。

注意:如果系统的语言环境设置为UTF-8以外的任何其他语言,则添加PPA可能会因作者姓名中的错误处理字符而失败。作为一种变通方法,您可以安装language-pack-en-base以确保生成语言环境,并在添加PPA时覆盖系统范围的语言环境设置:

sudo apt-get install -y language-pack-en-base
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

安装PPA后,更新本地程序包缓存以包含其内容:

sudo apt-get update

现在我们可以访问PHP 7.0的包,我们可以替换现有的PHP安装。

使用Apache 升级mod_php

本节介绍使用Apache作为Web服务器和mod_php执行PHP代码的系统的升级过程。相反,如果您正在运行Nginx和PHP-FPM,请跳到下一部分。

首先,安装新包。这将升级所有重要的PHP包,但将删除的php5-mysql除外。

sudo apt-get install php7.0

注意:如果您对在/etc/php5/里任何配置文件进行了大量修改,那些文件仍然存在,并且可以引用。PHP 7.0的配置文件现在存在于/etc/php/7.0

如果您使用的是MySQL,请确保重新添加更新的PHP MySQL绑定:

sudo apt-get install php7.0-mysql

使用Nginx升级PHP-FPM

本节介绍使用Nginx作为Web服务器和PHP-FPM执行PHP代码的系统的升级过程。

首先,安装新的PHP-FPM包及其依赖项:

sudo apt-get install php7.0-fpm

系统会提示您继续。按Enter键完成安装。

如果您使用的是MySQL,请务必重新安装PHP MySQL绑定:

sudo apt-get install php7.0-mysql

注意:如果您对/etc/php5/里任何配置文件进行了大量修改,那些文件仍然存在,并且可以引用。PHP 7.0的配置文件现在存在于/etc/php/7.0

更新Nginx站点以使用新的套接字路径

Nginx使用Unix域套接字与PHP-FPM通信。套接字映射到文件系统上的路径,我们的PHP 7安装默认使用新路径:

PHP 5

PHP 7

/var/run/php5-fpm.sock

/var/run/php/php7.0-fpm.sock

使用nano(或您选择的编辑器)打开default站点配置文件:

sudo nano /etc/nginx/sites-enabled/default

您的配置可能有所不同。寻找一个以location ~ \.php$ {开头的块,以及一个类似fastcgi_pass unix:/var/run/php5-fpm.sock;的行。改成使用unix:/var/run/php/php7.0-fpm.sock

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
​
    root /var/www/html;
    index index.php index.html index.htm;
​
    server_name server_domain_name_or_IP;
​
    location / {
        try_files $uri $uri/ =404;
    }
​
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
​
    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;
    }
}

退出并保存文件。在nano,您可以通过按Ctrl-X退出,按y确认,然后按Enter确认要覆盖的文件名来完成此操作。

您应该为需要支持PHP的在/etc/nginx/sites-enabled任何其他虚拟站点重复此过程。

现在我们可以重启nginx

sudo service nginx restart

测试PHP

配置Web服务器并安装新软件包后,我们应该能够验证PHP是否已启动并正在运行。首先在命令行检查已安装的PHP版本:

php -v
PHP 7.0.0-5+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 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

您还可以在Web服务器的文档根目录中创建测试文件。根据您的服务器和配置,这可能是以下之一:

  • /var/www/html
  • /var/www/
  • /usr/share/nginx/html

使用nano,打开info.php文档根目录中调用的新文件。默认情况下,在Apache上,这将是:

sudo nano /var/www/html/info.php

在Nginx上,您可以使用:

sudo nano /usr/share/nginx/html/info.php

粘贴以下代码:

<?php
phpinfo();
?>

退出编辑器,保存info.php。现在,在浏览器中加载以下地址:

http://server_domain_name_or_IP/info.php

您应该看到PHP 7的PHP版本和配置信息。一旦您仔细检查了这一点,最安全的是删除info.php

sudo rm /var/www/html/info.php

结论

您现在已经安装了PHP 7。在这里查看官方迁移指南

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Upgrade to PHP 7 on Ubuntu 14.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 准备
      • 为PHP 7.0包添加PPA
        • 使用Apache 升级mod_php
          • 使用Nginx升级PHP-FPM
            • 更新Nginx站点以使用新的套接字路径
          • 测试PHP
            • 结论
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档