Ubuntu20.04/18.04下安装或更新至PHP8

风强大大_3883

风强大大_3883

2020-12-01

6176人浏览

转载


php

本指南让你了解如何安装最新的 php 版本 8,并在你的任何 VPS、云服务器、专用主机上的 Ubuntu 20.0 或 18.04 系统中升级到最新版本,并将其配置为 Apache 和 Nginx。

最新的 php 8 正式发布于2020年11月26日。它附带了一些新特性,并且在你升级旧版本之前应该注意到一些不兼容的问题。

此安装是在 google 云平台上测试的,它使用了一个计算引擎 VM 实例。此设置将在所有  linux 服务器上运行。

开始

通过运行以下命令,确保你的 Ubuntu 服务器具有最新的软件包。

sudo apt update
sudo apt upgrade

这将更新软件包索引,并将已安装的软件包更新为最新版本。

为 PHP 8 添加 PPA

添加具有 PHP 8 软件包和其他必需的 PHP 扩展的ondrej / php。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

一旦你添加 PPA,你就可以安装 PHP 8 了。

为 Apache 安装 PHP 8

执行以下命令以安装 PHP 8

sudo apt install php8.0

安装完成后,可以使用以下命令确认安装

php -v

为 Nginx 安装 PHP 8 FPM

对于 Nginx,你需要安装 FPM,执行以下命令以安装 PHP 8 FPM

sudo apt install php8.0-fpm

安装完成后,请使用以下命令确认 PHP 8 FPM 已正确安装

php-fpm8.0 -v

安装 PHP 8 扩展

安装 php 扩展很简单,使用下面的命令可以安装任意扩展

sudo apt install php8.0-extension_name

下面列出了常用的扩展,可以复制并直接安装

sudo apt install php8.0-common php8.0-mysql php8.0-xml php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip -y

为 Apache 配置 PHP 8

现在我们配置 Web 应用的 PHP 版本,可以通过修改php.ini文件中的某些值来配置

对于使用 Apache 的 PHP 8,php.ini位置一般在下面的目录中。

sudo nano /etc/php/8.0/apache2/php.ini

推荐在编辑器中按F6,使用搜索功能修改配置项,推荐更新以下值可以提高性能。

upload_max_filesize = 32M 
post_max_size = 48M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000

修改 PHP 设置后,你需要重新启动 Apache 才能使更改生效。

为 Nginx 配置 PHP 8

对于使用 Nginx 的 PHP 8 FPM,php.ini位置将在以下目录中。

PHP 8.5.12
PHP 8.5.12

修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。

下载
sudo nano /etc/php/8.0/fpm/php.ini

在编辑器中按 F6 键进行搜索,并更新以下值以获得更好的性能。

upload_max_filesize = 32M 
post_max_size = 48M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000

修改 PHP 设置后,你需要重新启动 PHP FPM 才能使更改生效。

sudo php-fpm8.0 -t 
sudo service php8.0-fpm restart

配置 PHP 8 FPM 池

PHP 8 FPM 允许你为服务配置用户和组,并在其下运行。你可以使用以下命令修改它们

sudo nano /etc/php/8.0/fpm/pool.d/www.conf

通过将www-data替换为你的username来更改以下几行。

user = username 
group = username 
listen.owner = username
listen.group = username

点击CTRL+X和Y保存配置,并检查配置是否正确,并重启PHP。

重启 PHP 8.0 FPM

更新 PHP FPM 设置后,你需要重新启动它以应用更改。

sudo php-fpm8.0 -t 
sudo service php8.0-fpm restart

现在,你已经安装并配置了 PHP 8。

为 Apache 升级到 PHP 8

安装 PHP 8 之后,你需要升级到最新安装的 PHP 版本。

你需要禁用旧 PHP 版本并启用新 PHP 版本 8。

sudo a2dismod php7.4

此命令将禁用 PHP 7.4 模块。

sudo a2enmod php8.0

此命令将启用PHP 8模块。
必须要重新启动 Apache 才能使更改生效。使用下面的命令

sudo service apache2 restart

将 Nginx 升级到 PHP 8

你需要在 Nginx 配置文件里修改 PHP-FPM 的版本,在 Nginx 安装目录下的 sites-available文件中找到对应的配置文件,配置文件中 location 块下面的 location ~ \.php$ 里的内容就是你对 PHP 相关的配置

sudo nano /etc/nginx/sites-available/your.conf

找到 fastcgi_pass 配置项,一般长这样

fastcgi_pass unix:/run/php/php7.4-fpm.sock;

然后你需要将旧版本替换为新版本,修改成下面的样子

fastcgi_pass unix:/run/php/php8.0-fpm.sock;

测试你的配置文件,并重启 Nginx

sudo nginx -t
sudo service nginx restart

结论

现在你学会了如何在 Ubuntu 上安装并配置 PHP 8,谢谢你的观看,如果你遇到了任何问题,可以在下面评论区讨论


原文地址:https://php.watch/articles/php-8.0-installation-update-guide-debian-ubuntu

译文地址:https://learnku.com/php/t/51997

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php8

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

40

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

20

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

40

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

120

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

80

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

80

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

40

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

80

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

40

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP8,究竟有啥野心..!?
PHP8,究竟有啥野心..!?

共4课时 | 0.6万人学习

php8,我来也
php8,我来也

共35课时 | 34.4万人学习