记 PHP7.0 -> PHP7.4 升级 (Debian 9 + Nginx)

最近 WordPress 提示 PHP 版本过旧,存在安全隐患,故升级至 PHP 7.4

Debian 9 的官方源里面目前只有 PHP 7.0,因此首先添加第三方源:

sudo apt install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

列出当前已安装的 PHP 以及模组

dpkg -l | grep php

安装对应的 PHP 7.4 版本

sudo apt install php7.4 php7.4-common php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-json php7.4-mysql php7.4-opcache php7.4-readline

验证安装

php -v
PHP 7.4.9 (cli) (built: Aug  7 2020 14:56:37) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies

重启 VPS,此时在 /var/run/php/ 目录下应出现 php7.4-fpm.sock,说明 php7.4-fpm 已经在运行 (安装 php7.4-fpm 会添加开机启动项至 /etc/init.d/php7.4-fpm)

但此时 nginx 还在使用旧的版本,需要修改站点配置 (以default为例)

sudo vi /etc/nginx/sites-available/default

找到 fastcgi_pass, 修改为 unix:/var/run/php/php7.4-fpm.sock

# pass PHP scripts to FastCGI server
location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

重新加载 nginx 配置

sudo nginx -s reload

可以添加测试页至 html 目录下以验证配置正确

<?php
phpinfo();
?>

确认配置无误后删除旧版本

sudo apt purge php7.0 php7.0-cli php7.0-common php7.0-curl php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-opcache php7.0-readline

发表评论

邮箱地址不会被公开。