[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

在 CentOS 7.4 上使用 PHP 7.x

此文章是關乎我近日所關注的一個問題:如何在 CentOS 7 預設的 httpd 伺服器上採用 PHP 7.0 或 7.1,卻不採用外置軟件庫或從源碼重新編譯 PHP?

答案是 軟件選集。在這裡我們會從新的 CentOS 安裝開始,進而設立一個執行 PHP 7.x 的網站。

首先,我們會安裝軟件選集的軟件庫(它是一個需要啟用的官方軟件庫)。

root @ centos7-vm: ~ # yum -y install centos-release-scl.noarch

此指令會在你的系統上部署一個新的軟件庫,它是 CentOS 的其中一個官方軟件庫。

安裝完成後,讓我們安裝 PHP 7 套件及 httpd 套件,連同它的插件。

root @ centos7-vm: ~ 24 # yum -y install rh-php72 rh-php72-php rh-php72-php-fpm httpd

為了要採用 php 7.2,我們將會使用 php-fpm,這是 建議的做法,並代替了 mod_php。既然如此,我們便採用 fpm 服務。此服務預設會在 900 埠上運行。要是你需要更改埠號,請開啟以下檔案:

/etc/opt/rh/rh-php72/php-fpm.d/www.conf

然後將下行修改:

listen = 127.0.0.1:9000

成為你所需的設定(例如:9002)。完成後,我們必須更改 selinux 的資料庫並加入 9002 為 httpd 服務的有效連接埠。

semanage port -a -t http_port_t -p tcp 9002

完成後,開啟 php-fpm 服務並在開機時啟動它:

{{{root @ centos7-vm: ~ 29 # systemctl enable rh-php72-php-fpm.service Created symlink from /etc/systemd/system/multi-user.target.wants/rh-php72-php-fpm.service to /usr/lib/systemd/system/rh-php72-php-fpm.service. root @ centos7-vm: ~ 30 # systemctl start rh-php72-php-fpm.service root @ centos7-vm: ~ 31 # systemctl status rh-php72-php-fpm.service ● rh-php72-php-fpm.service - The PHP FastCGI Process Manager

現在我們須要設定 httpd 背景服務並告訢它利用此服務來處理 php 頁面。

讓我們在 /etc/httpd/conf.d/ 資料來建立名為 fpm.conf 的檔案,並放入以下內容:

{{{# PHP scripts setup ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/var/www/html

Alias / /var/www/html/

DirectoryIndex index.php}}}

如此,apache 將會把所有以 .php 結尾的檔案傳送到我們的 php-fpm 服務,然後顯示所得結果。

為要確定一切正常,我們會在 /var/www/html 建立一個小頁面,提出 phpinfo 的要求

{{{root @ centos7-vm: ~ 1 # cat /var/www/html/index.php <?php phpinfo() ?> root @ centos7-vm: ~ 1 #}}}

/!\ 切勿忘記這只是一個基本設置來確定你的安裝能運作。如果你需要實際應用於程式中,你或許應參考 此文章 調校你的 php 設定。

請勿忘記起動、啟用及加入你的 httpd 服務到防火牆:

{{{root @ centos7-vm: ~ 43 # systemctl enable httpd ; systemctl start httpd root @ centos7-vm: ~ 46 # firewall-cmd --add-service=http --permanent success root @ centos7-vm: ~ 47 # firewall-cmd --reload success}}}

現在我們若連線到該網站,它會顯示 php 已被正確地處理:

HowTos/php7/phpinfo7.0.png

Translation of revision 7


2023-09-11 07:23