如何在 Ubuntu 14.04 上升级到 PHP 7如何在 Ubuntu 14.04 上升级到 PHP 7如何在 Ubuntu 14.04 上升级到 PHP 7如何在 Ubuntu 14.04 上升级到 PHP 7
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 14.04 上升级到 PHP 7

介绍

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

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

如果您正在与活跃用户一起运行任何服务或应用程序,最安全的做法是首先在临时环境中测试此过程。

先决条件

本指南假设您在 Ubuntu 14.04 机器上运行 PHP 5.x,使用 mod_php 结合 Apache,或者结合使用 PHP-FPM 和 Nginx。它还假设您有一个非 root 用户配置了 sudo 管理任务的权限。

为 PHP 7.0 包添加 PPA

Personal Package Archive 或 PPA 是托管在 Launchpad 上的 Apt 存储库。 PPA 允许第三方开发人员在官方渠道之外为 Ubuntu 构建和分发软件包。它们通常是 beta 软件、修改版本和向后移植到旧版本操作系统的有用来源。

Ondřej Surý 为 Debian 维护 PHP 包,并为 Ubuntu 上的 PHP 7.0 提供 PPA。在执行任何其他操作之前,登录到您的系统,并将 Ondřej 的 PPA 添加到系统的 Apt 源中:

  1. sudo add-apt-repository ppa:ondrej/php

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

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

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

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

  1. sudo apt-get update

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

使用 Apache 升级 mod_php

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

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

  1. sudo apt-get install php7.0

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

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

  1. sudo apt-get install php7.0-mysql

使用 Nginx 升级 PHP-FPM

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

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

  1. sudo apt-get install php7.0-fpm

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

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

  1. 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 站点配置文件:

  1. 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 确认要覆盖的文件名来完成此操作。

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

现在我们可以重启 nginx:

  1. sudo service nginx restart

测试PHP

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

  1. php -v
Output
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 上,这将是:

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

在 Nginx 上,您可以改为使用:

  1. 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 是最安全的:

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

结论

您现在已经安装了一个有效的 PHP 7。从这里,您可能想查看 Erika Heidi 的官方迁移指南。

©2015-2025 艾丽卡 support@alaica.com