升级到php8.0后,nginx仍然使用php7.2进行PHP-FPM

PHP*_*ler 6 php nginx ubuntu-18.04

我正在使用 nginx/1.14.0 运行 Ubuntu 18.04。我一直在运行 PHP 7.2,但出于安全原因,我的一些 Web 应用程序需要更新的 PHP。

由于是nginx,所以我使用PHP-FPM。

我使用apt升级到PHP的最新版本。

# /usr/bin/php -v
PHP 8.0.2 (cli) (built: Feb 14 2021 14:21:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.2, Copyright (c), by Zend Technologies
Run Code Online (Sandbox Code Playgroud)

所以看起来是对的。但应用程序仍然抱怨 PHP-FPM 7.2 并且 phpinfo 确认:

PHP Version 7.2.34-13+ubuntu18.04.1+deb.sury.org+1
Run Code Online (Sandbox Code Playgroud)

所以听起来我应该更改 PHP conf 文件。这是我尝试查找时得到的结果:

# locate php.conf | more
/etc/nginx/snippets/fastcgi-php.conf
Run Code Online (Sandbox Code Playgroud)

好的。所以我寻找 php.ini:

# locate php.ini | more
/etc/php/7.2/cli/php.ini
/etc/php/7.2/fpm/php.ini
/etc/php/7.2/fpm/php.ini.orig
/etc/php/7.2/fpm/php.ini.ucf-dist
/etc/php/8.0/apache2/php.ini
/etc/php/8.0/cli/php.ini
/etc/php/8.0/fpm/php.ini
/usr/lib/php/7.2/php.ini-development
/usr/lib/php/7.2/php.ini-production
/usr/lib/php/7.2/php.ini-production.cli
/usr/lib/php/8.0/php.ini-development
/usr/lib/php/8.0/php.ini-production
/usr/lib/php/8.0/php.ini-production.cli
Run Code Online (Sandbox Code Playgroud)

我没有看到可以选择 NGINX 或 PHP 的 conf 文件,我会告诉它使用 PHP-FPM 8.0。

如何让 NGINX/PHP 使用我的服务器上的新版本 PHP 而不是旧版本?

Ras*_*kul 4

在每个服务器中,您可以定义 Nginx 应使用哪个版本的 PHP:

location ~ \.php$ {
     include snippets/fastcgi-php.conf;
     fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }
Run Code Online (Sandbox Code Playgroud)

或者 :

location ~ \.php$ {
     include snippets/fastcgi-php.conf;
     fastcgi_pass unix:/run/php/php8.0-fpm.sock;
  }
Run Code Online (Sandbox Code Playgroud)