PHP 是一種流行的、免費的開源腳本語言,主要用於 Web 開發。 目前 PHP 的當前版本(在編寫本教程時)是 PHP 7.3.14。 但是,CentOS 7 默認附帶 PHP 5.4。
PHP 5.4 終於在 2015 年 9 月結束了,它不再被 WordPress、cPanel 和 WHM 等主要平台支持。 幸運的是,我們現在有 PHP 7 和最新的 PHP 7.3,它與大多數應用程序完全兼容。
在本教程中,您將學習如何在 CentOS 7 上安裝 PHP 7。更具體地說,您將學習如何安裝 PHP 7.1、7.2 和 7.3。 此後,我們將演示如何將 PHP 7 與 Apache 和 Nginx 服務器。
先決條件
首先,以普通用戶身份登錄到您的服務器 sudo 特權。 與以 root 用戶身份運行命令相反,這是最推薦的方式。
啟用 Remi 存儲庫
Remi 存儲庫是一個免費且流行的第三方存儲庫,它提供 CentOS 7 系統上不可用的最新和最前沿的軟件包。
Remi 存儲庫依賴於 EPEL(Extra Packages for Enterprise Linux),因此您需要確保 Remi 和 EPEL 都存在。
因此,運行以下命令使用 yum 命令安裝 EPEL。
$ sudo yum install epel-release yum-utils
要安裝 Remi,請運行以下命令:
$ sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

已經安裝了 EPEL 和 Remi,讓我們現在繼續在 CentOS 7 上安裝 PHP 7。
在 CentOS 7 上安裝 PHP 7.3
讓我們從安裝 PHP 7.3 開始,這是撰寫本文時 PHP 的最新版本。 這是最新版本,附帶最新的內容管理系統,如 WordPress 和 Joomla,以及 Laravel 等框架。
步驟 1:啟用 PHP 7.3 Remi 存儲庫
要啟用 PHP 7.3 Remi repo,請運行以下命令:
$ sudo yum-config-manager --enable remi-php73

第 2 步:安裝 PHP 7.3 和相關模塊
啟用 php 7.3 Remi 後,現在安裝 PHP 7.3 及其模塊,如下所示:
$ sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

安裝完成後,您可以使用以下命令驗證 PHP 的版本:
$ php -v

在 CentOS 7 上安裝 PHP 7.2
對於 PHP 7.2 CentOS 7 的安裝,請確保按照以下步驟操作:
步驟 1:啟用 PHP 7.2 Remi 存儲庫
正如我們之前看到的,首先為 PHP 7.2 啟用 Remi 存儲庫
$ sudo yum-config-manager --enable remi-php72

步驟 2:安裝 PHP 7.2 和相關的 PHP 模塊
接下來,安裝 PHP 7.2 和相關模塊,如下所示:
$ sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

當提示導入 GPG 時,只需按 y 並按 ENTER

完成安裝後,使用以下命令驗證 PHP 版本:
$ php -v

在 CentOS 7 上安裝 PHP 7.1
最後,我們將安裝 PHP 7.1。 正如我們在前兩個版本中看到的那樣,請按照以下步驟操作:
步驟 1:啟用 PHP 7.1 Remi 存儲庫
正如我們之前看到的,首先為 PHP 7.1 啟用 Remi 存儲庫
$ sudo yum-config-manager --enable remi-php71

第 2 步:安裝 PHP 7.1 及其關聯的 PHP 模塊
啟用 Remi 存儲庫後,繼續使用以下命令安裝 PHP 7.1:
$ sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql

當提示輸入 GPG 密鑰時,鍵入 是 然後按 ENTER

要驗證安裝,請運行以下命令:
$ php -v

配置 PHP 7.x 以使用 Apache 網絡服務器
如果 Apache 是您選擇的網絡服務器,只需重新啟動 Apache 服務好,路就順了。 不需要進一步或複雜的配置。
$ sudo systemctl restart httpd
配置 PHP 7.x 以使用 Nginx Web 服務器
不像 Apache, PHP 7.x 的 Nginx 配置並不像你想像的那麼簡單。 Nginx 不支持處理 PHP 文件,因此,我們需要安裝一組額外的名為 PHP FPM 的包來處理 PHP 文件。
要安裝 PHP FPm 包,請運行以下命令:
$ sudo yum install php-fpm

安裝完成後,前往位於以下位置的配置文件 /etc/php-fpm.d/www.conf
您會發現有一個名為 ‘apache’ 的用戶正在監聽 9000 端口。我們將該用戶更改為 ‘nginx’,然後調整如下所示的行。
...
user = nginx
...
group = nginx
...
listen = /run/php-fpm/www.sock
...
listen.owner = nginx
listen.group = nginx
接下來為文件設置正確的所有權 /var/lib/php
使用 chown 命令,如圖所示:
$ sudo chown -R root:nginx /var/lib/php
然後啟用並啟動 php-fpm,如下所示:
$ sudo systemctl enable php-fpm
$ sudo systemctl start php-fpm

通過運行驗證狀態:
$ sudo systemctl status 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;
}
}
最後,重新啟動您的 Web 服務器以使更改生效
$ sudo systemctl restart nginx
結論
就是這樣,伙計們! 我們已經演示瞭如何在 CentOS 7 上安裝不同版本的 PHP 7,以及如何配置不同的 Web 服務器來處理 PHP 文件。 Apache 是小菜一碟,但您需要更加關注 Nginx Web 服務器。 感謝您的時間。