PHP 是最常用的服务器端编程语言之一。许多流行的 CMS 和框架(例如 WordPress、Magento 和 Laravel)都是用 PHP 构建的。
在本指南中,我们将讨论如何在 CentOS 8 上安装 PHP 7.2、7.3 或 7.4。在选择要安装的 PHP 版本之前,请确保您的应用程序支持它。
我们还将向您展示如何将 PHP 与 Nginx 和 Apache 集成。
在 CentOS 8 上安装 PHP#
CentOS 8 随 PHP 7.2 一起分发。该版本支持大多数现代 PHP 应用程序,但从 2019 年 11 月起将不再主动维护。较新的 PHP 版本可从雷米存储库
.
启用 Remi 存储库#
如果您要安装稳定版 PHP 7.2 版本,请跳过此步骤。否则,如果您想安装 PHP 7.3 或 7.4,请通过以 root 身份运行以下命令来启用 Remi 存储库,或者具有 sudo 权限的用户
:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
上面的命令还将启用EPEL 存储库
.
安装完成后,运行以下命令以获取所有可用的列表PHP 版本
:
sudo dnf module list php
输出将显示所有可用模块的列表,包括关联的流、版本和安装配置文件。
Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.
CentOS-8 - AppStream
Name Stream Profiles Summary
php 7.2 [d][e] 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
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
默认 PHP 模块设置为 PHP 7.2。要安装较新的 PHP 版本,请启用适当的版本:
PHP 7.3
sudo dnf module reset php
sudo dnf module enable php:remi-7.3
PHP 7.4
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
现在您已准备好在 CentOS 服务器上安装 PHP。
安装PHP#
以下命令将安装 PHP 和一些最常见的 PHP 模块:
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd
FPM 作为依赖项安装并用作 FastCGI 服务器。启动 FPM 服务并使其在启动时自动启动:
sudo systemctl enable --now php-fpm
配置 PHP 以与 Apache 一起使用#
If SELinux 正在运行在您的系统上,您需要更新 SELinux 安全上下文:
sudo chcon -Rt httpd_sys_rw_content_t /var/www
如果您正在使用Apache作为您的网络服务器,重新启动httpd
使用以下命令进行服务,就可以开始了:
sudo systemctl restart httpd
配置 PHP 以与 Nginx 一起使用#
默认情况下,PHP FPM 以用户身份运行apache
。为了避免权限问题,我们将用户更改为nginx
。为此,请编辑以黄色突出显示的行:
sudo nano /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf
...
user = nginx
...
group = nginx
确保/var/lib/php
目录有正确的所有权
:
chown -R root:nginx /var/lib/php
完成后,重新启动 PHP FPM 服务:
sudo systemctl restart php-fpm
接下来,编辑 Nginx 虚拟主机指令,并添加以下位置块,以便Nginx可以处理PHP文件:
server {
# . . . other code
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
为了使新配置生效,重启 Nginx 服务
:
sudo systemctl restart nginx
更新 SELinux 安全上下文:
sudo chcon -Rt httpd_sys_rw_content_t /var/www
结论#
PHP 7.2 可以从默认的 CentOS 8 存储库安装。如果您想安装更新版本,您需要启用 Remi 存储库。
如果您有任何问题或反馈,请随时发表评论。