您的位置 首页 php

如何在CentOS 8/Almalinux 8 / Rocky Linux 8上安装PHP 7.4

PHP 是一种服务器端 脚本语言 。 PHP 用于开发静态或动态网站或 Web 应用程序。 许多流行的 CMS ,如 WordPress、 Magento Joomla 都是用 PHP 编写的。 Laravel Symfony CodeIgniter 等框架也在使用 PHP。

PHP最新版本为PHP 8.1.3,然而与PC软件不同,服务器端软件不是版本越高越好,特别是在生产环境中,因此在选择服务器软件版本时一定要慎重。

对于 WordPress 来说,根据官方说明(#php-extensions),推荐的配置为:

  • Apache HTTPD 2.4 或者 nginx 1.20 / 1.19
  • PHP 7.4及更高版本
  • MySQL 5.6 / 5.7 / 8.0 或者 MariaDB 10.5 / 10.4 / 10.3 / 10.2

不过WordPress目前还不能全部兼容PHP 8.0或者8.1,参考这里()。这是因为PHP 8.0 是对 2020 年 11 月 26 日发布的 PHP 语言的重大更新,与现有的 PHP 7.4 版本相比是一个巨大的飞跃。 新的 PHP 包含许多新特性和优化,包括命名参数、联合类型、属性、构造函数属性提升、匹配表达式、空安全运算符、JIT 和类型系统的改进、错误处理和一致性。

因此还是建议安装PHP 7.4

检查

首先检查系统中是否安装了PHP,运行下面的命令,如果出现下面的提示,表明系统中没有安装PHP。

 # php -v
-bash: php: command not found  

Rocky Linux AppStream 存储库提供默认启用的 PHP 7.2 版本。 要想获取所有 PHP 模块的列表,请运行下面的命令。

 # dnf module list php 

Last metadata expiration check: 2:28:32 ago on Sat 19 Feb 2022 06:40:14 AM EST.
Rocky Linux 8 - AppStream
Name                Stream                 Profiles                                 Summary
 php                 7 .2 [d]                common [d], devel, minimal               PHP scripting language
php                 7.3                    common [d], devel, minimal               PHP scripting language
php                 7.4                    common [d], devel, minimal               PHP scripting language

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

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled  

安装PHP 7.4

由于默认的PHP版本为7.2,要想安装php 7.4,首先使能这个模块,然后输入y

 # dnf module enable php:7.4
Last metadata expiration check: 2:30:10 ago on Sat 19 Feb 2022 06:40:14 AM EST.
Dependencies resolved.
========================================================================================================================
 Package                     Architecture               Version                       Repository                   Size
========================================================================================================================
Enabling module streams:
 nginx                                                  1.14
 php                                                    7.4

Transaction Summary
========================================================================================================================

Is this ok [y/N]:
  

如果搭建WordPress网站,根据上面提到的官网说明,那么需要安装以下PHP扩展。

 dnf install php php-json php-mysqlnd php-curl php-dom php-exif php-fileinfo php-hash php-imagick php-mbstring php-openssl php-pcre php-xml php-zip php-bcmath php-filter php-gd  php-iconv php-intl php-mcrypt php-simplexml php-sodium php-xmlreader php-zlib php-ssh2 php-ftp php-sockets php-cli  

不过有些模块提示找不到

Error: Unable to find a match: php-imagick php-mcrypt php-sodium php-ssh2

去掉上面4个模块

 dnf install php php-json php-mysqlnd php-curl php-dom php-exif php-fileinfo php-hash php-mbstring php-openssl php-pcre php-xml php-zip php-bcmath php-filter php-gd  php-iconv php-intl php-simplexml php-xmlreader php-zlib php-ftp php-sockets php-cli  

安装结果如下

 Last metadata expiration check: 3:03:18 ago on Sat 19 Feb 2022 06:40:14 AM EST.
Dependencies resolved.
========================================================================================================================
 Package                    Architecture     Version                                          Repository           Size
========================================================================================================================
Installing:
 php                        x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           1.5 M
 php-bcmath                 x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream            79 k
 php-cli                    x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           3.1 M
 php-common                 x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           701 k
 php-gd                     x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream            84 k
 php-intl                   x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           192 k
 php-json                   x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream            73 k
 php-mbstring               x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           483 k
 php-mysqlnd                x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           192 k
 php-pecl-zip               x86_64           1.18.2-1.module+el8.4.0+415+e936cba3             appstream            54 k
 php-xml                    x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           173 k
Installing dependencies:
 libzip                     x86_64           1.6.1-1.module+el8.4.0+415+e936cba3              appstream            63 k
 nginx-filesystem           noarch           1:1.14.1-9.module+el8.4.0+542+81547229           appstream            23 k
 oniguruma                  x86_64           6.8.2-2.el8                                      appstream           186 k
 php- PDO                     x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           122 k
Installing weak dependencies:
 php-fpm                    x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           1.6 M
 php-opcache                x86_64           7.4.19-1.module+el8.5.0+696+61e7c9ba             appstream           266 k

Transaction Summary
========================================================================================================================
Install  17 Packages

Total download size: 8.8 M
Installed size: 34 M
  

如果仔细对比一下,可以发现安装的模块比实际要少

 
Installed:
  libzip-1.6.1-1.module+el8.4.0+415+e936cba3.x86_64
  nginx-filesystem-1:1.14.1-9.module+el8.4.0+542+81547229.noarch
  oniguruma-6.8.2-2.el8.x86_64
  php-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-bcmath-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-cli-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-common-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-fpm-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-gd-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-intl-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-json-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-mbstring-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-mysqlnd-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-opcache-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-pdo-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  php-pecl-zip-1.18.2-1.module+el8.4.0+415+e936cba3.x86_64
  php-xml-7.4.19-1.module+el8.5.0+696+61e7c9ba.x86_64
  

实际上,这些模块包含在php-common中,可以通过 rpm -ql php-common 查询php-common中都包含了哪些模块

 # rpm -ql php-common
/etc/php.d
/etc/php.d/20-bz2.ini
/etc/php.d/20-calendar.ini
/etc/php.d/20-ctype.ini
/etc/php.d/20-curl.ini
/etc/php.d/20-exif.ini
/etc/php.d/20-fileinfo.ini
/etc/php.d/20-ftp.ini
/etc/php.d/20-gettext.ini
/etc/php.d/20-iconv.ini
/etc/php.d/20-phar.ini
/etc/php.d/20-sockets.ini
/etc/php.d/20-tokenizer.ini
/etc/php.ini
/usr/lib64/php
/usr/lib64/php/modules
/usr/lib64/php/modules/bz2.so
/usr/lib64/php/modules/calendar.so
/usr/lib64/php/modules/ctype.so
/usr/lib64/php/modules/curl.so
/usr/lib64/php/modules/exif.so
/usr/lib64/php/modules/fileinfo.so
/usr/lib64/php/modules/ftp.so
/usr/lib64/php/modules/gettext.so
/usr/lib64/php/modules/iconv.so
/usr/lib64/php/modules/phar.so
/usr/lib64/php/modules/sockets.so
/usr/lib64/php/modules/tokenizer.so
  

查看PHP版本信息

 # php -v
PHP 7.4.19 (cli) (built: May  4 2021 11:06:37) ( NTS )
Copyright (c) The PHP Group
 Zend Engine  v3.4.0, Copyright (c)  Zend Technologies 
    with Zend OPcache v7.4.19, Copyright (c), by Zend Technologies  

查看已经安装的PHP模块

 # php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
 ftp 
gd
gettext
hash
iconv
intl
 json 
libxml
mbstring
mysqli
mysqlnd
 openssl 
pcntl
pcre
 pdo 
pdo_mysql
pdo_sqlite
Phar
 readline 
 Reflection 
 session 
SimpleXML
 sockets 
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
 xsl 
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache  

启动PHP

PHP安装成功之后,并没有启动,可以通过下面的命令查看PHP的状态

 $ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: inactive (dead)  

启动和查看PHP状态

 # systemctl enable --now php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-02-20 05:43:57 EST; 46s ago
 Main PID: 612431 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 17864)
   Memory: 16.2M
   CGroup: /system.slice/php-fpm.service
           ├─612431 php-fpm: master process (/etc/php-fpm.conf)
           ├─612432 php-fpm: pool www
           ├─612433 php-fpm: pool www
           ├─612434 php-fpm: pool www
           ├─612435 php-fpm: pool www
           └─612436 php-fpm: pool www

Feb 20 05:43:56 racknerd-855048 systemd[1]: Starting The PHP FastCGI Process Manager...
Feb 20 05:43:57 racknerd-855048 systemd[1]: Started The PHP FastCGI Process Manager.  

测试Apache和PHP

在上一篇文章中,我们已经成功安装了Apache,并且创建了一个网站 。

现在进入网站根目录

 # cd /var/www/domain1.com/public_html/  

创建一个PHP文件 phpinfo.php,其内容为:

 <?php
    phpinfo();
?>  

然后在浏览器地址栏中输入

   

如果显示下面的内容,那么表示PHP已经成功安装,运行正常。

参考

  • #php-extensions

本次测试环境在阿贝云免费云服务器()上进行,阿贝云目前正在进行”免费虚拟主机”和“免费云服务器”体验活动,感兴趣的可以试试。

文章来源:智云一二三科技

文章标题:如何在CentOS 8/Almalinux 8 / Rocky Linux 8上安装PHP 7.4

文章地址:https://www.zhihuclub.com/78422.shtml

关于作者: 智云科技

热门文章

网站地图