如何在Nentx的CentOS 8上安装PHP 7.x

时间:2020-01-09 10:40:59  来源:igfitidea点击:

如何与Nginx一起在CentOS 8 Linux服务器上安装PHP 7.x?
如何在CentOS Enterprise Linux 8服务器上安装最新版本的PHP 7.4?

PHP(超文本预处理器)是一种用于创建动态网站的开源脚本语言。

PHP代码在Nginx,Apache等Web服务器上运行。
本教程说明如何在CentOS 8 Linux服务器和Nginx服务器上安装PHP7.x。

如何在CentOS 8上安装PHP 7.x

  • 更新CentOS 8服务器,运行sudo yum update
  • 搜索PHP版本,运行sudo yum search php
  • 为PHP 7.4安装并启用Remis repo,运行sudo yum install yum-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
  • 在CentOS 8上为Nginx安装PHP7.2.117.4和FastCGI模块,执行:sudo yum install php php-fpm
  • 配置Nginx以使用PHP
  • 使用sudo yum search php-搜索并安装用于图形和数据库支持的其他PHP模块。
  • 启用并重新启动PHP和Nginx服务器
  • 测试并验证两个PHP安装

更新CentOS 8服务器

运行以下yum命令:

sudo yum update

如果安装了新内核,请重新引导Linux系统:

sudo reboot

搜索PHP版本

让我们找出CentOS Enterprise Linux 8服务器上的PHP版本,执行:

sudo yum search php

您的系统上可能安装了多个版本的PHP。
只需运行以下命令即可验证它:

sudo yum module list php

输出示例:

Last metadata expiration check: 0:25:04 ago on Mon Dec 16 13:01:39 2019.
CentOS-8 - AppStream
Name             Stream             Profiles                              Summary                          
php              7.2 
-             common 
- , devel, minimal            PHP scripting language           

Hint: 
- efault, 
- nabled, [x]disabled, [i]nstalled

以下示例表明可安装PHP版本7.2、7.3和7.4:

sudo yum module list php

输出示例:

Last metadata expiration check: 0:00:05 ago on Mon Dec 16 13:28:05 2019.
CentOS-8 - AppStream
Name            Stream              Profiles                              Summary                          
php             7.2 
-              common 
- , devel, minimal            PHP scripting language           

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name            Stream              Profiles                              Summary                          
php             remi-7.2            common 
- , devel, minimal            PHP scripting language           
php             remi-7.3            common 
- , devel, minimal            PHP scripting language           
php             remi-7.4            common 
- , devel, minimal            PHP scripting language           

Hint: 
- efault, 
- nabled, [x]disabled, [i]nstalled

关于在CentOS 8上启用不同版本的PHP(例如7.3和7.4)的注释

我强烈建议对生产Web应用程序使用默认的PHP版本7.2。
但是,如果您需要PHP 7.3或7.4版,请执行以下命令以启用Remis repo:

sudo yum install yum-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

启用默认版本

默认的PHP版本已锁定为PHP 7.2。
最好是运行enable命令来设置所需的PHP版本。
换句话说,要启用" PHP版本7.4",请运行:

sudo yum module list php
sudo yum module reset php
sudo yum module enable php:remi-7.4
## verify it php set to 7.4 ##
sudo yum module list php

是否想在CentOS 8 Linux上安装PHP 7.4?
启用Remi repo并使用yum设置默认值

对于PHP版本7.3,执行:

sudo yum module list php
sudo yum module reset php
sudo yum module enable php:remi-7.3
## verify it php set to 7.3 ##
sudo yum module list php

在CentOS 8上安装PHP

现在已经设置了PHP版本,是时候通过执行以下命令在CentOS 8云服务器上安装PHP 7.x:

sudo yum install php php-fpm

如果您不希望将Apache(httpd)安装为依赖项,请运行:

sudo yum install php-fpm php-common php-cli

启用php-fpm服务

执行以下systemctl命令:

sudo systemctl enable php-fpm.service

启动php-fpm服务,运行:

sudo systemctl start php-fpm.service
sudo systemctl status php-fpm.service

如何重新加载/启动/重新启动PHP-fpm服务:

sudo systemctl stop php-fpm.service
sudo systemctl restart php-fpm.service

如何配置PHP以与Nginx服务器一起使用

首先,使用cat命令找出PHP-FPM FastCGI服务器配置的位置

cat /etc/nginx/conf.d/php-fpm.conf

确保Unix套接字已启动并正在运行,请运行:

ls -l /run/php-fpm/www.sock

我的带有Nginx的CentOS 8的php-fpm配置:

cat /etc/nginx/default.d/php.conf
index index.php index.html index.htm;
 
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass   php-fpm;
}

重新启动Nginx服务/服务器

再次,运行systemctl命令:

sudo systemctl restart nginx.service

验证php版本。
要查找PHP版本,请执行:

php --version
PHP 7.4.7 (cli) (built: Jun  9 2020 10:57:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.7, Copyright (c), by Zend Technologies

所以我正在使用PHP 7.4.7版本。

测试并验证PHP 7.x与Nginx一起在CentOS 8上运行

创建一个新文件,如下所示:

sudo vi /usr/share/nginx/html/hello.php

追加以下PHP代码:

<?php
	echo "Hello, world!\n";
?>

在vim中保存并关闭文件。
使用curl命令如下运行

curl -I http://localhost/hello.php
curl http://localhost/hello.php

示例-demo.php程序

接下来,创建一个新文件,如下所示:

sudo vi /usr/share/nginx/html/demo.php

追加以下代码:

<?php
	phpinfo();
?>

保存并关闭文件。
打开浏览器,然后输入以下网址:

http://your-domain-OR-ip/hello.php
http://192.168.1.254/hello.php
http://192.168.1.254/demo.php

如何安装其他PHP模块

尝试如下搜索和安装其他模块:

sudo yum search php
sudo yum search php- | grep mysql
sudo yum search php74- ## for version 7.2 ##
sudo yum search php74- ## for version 7.3 ##
sudo yum search php74- ## for version 7.4 ##

安装PHP 7.x CentOS 8模块

例如,安装grphics和数据库支持,运行:

sudo yum install php-mysqlnd php-gd

在CentOS 8上的典型WordPress安装需要以下PHP扩展或模块:

sudo yum install php-mysqlnd php-gd php-pecl-zip php-mbstring php-xml php-opcache php-pecl-imagick

如何配置PHP 7.x

您需要根据需要编辑以下文件:

  • /etc/php.iniPHP的初始化和配置文件。不要修改此文件。而是在/etc/php.d/目录中创建custom.ini。
  • /etc/php-fpm.conf通用的FPM(FastCGI)配置文件。
  • /etc/php-fpm.d/www.confFastCGI(FPM)www池配置文件。
  • /etc/php.d /PHP模块配置文件。