如何啟用 Apache 的 PHP-FPM 多例項
PHP-FPM 作為 FastCGI 程序管理器而廣為熟知,它是 PHP FastCGI 實現的改進,帶有更為有用的功能,用於處理高負載的伺服器和網站。下面列出其中一些功能:
新功能
- 擁有具有優雅(graceful)啟動/停止選項的高階程序管理能力。
- 可以透過不同的使用者身份/組身份來以監聽多個埠以及使用多個PHP配置。
- 錯誤日誌記錄。
- 支援上傳加速。
- 特別用於在處理一些耗時任務時結束請求和清空所有資料的功能。
- 同時支援動態和靜態的子程序重生。
- 支援IP地址限制。
在本文中,我將要討論的是,在執行 CPanel 11.52 及 EA3 (EasyApache)的 CentOS 7 伺服器上,於 Nginx 和 Apache 之上安裝 PHP-FPM,以及如何來透過 CPanel 管理這些安裝好的多個 PHP-FPM 例項。
在我們開始安裝前, 先看看安裝的先決條件。
先決條件
- 啟用 Modproxyfcgi 模組
- 啟用 MPM_Event
由於我們要將 PHP-FPM 安裝到一臺 EA3 伺服器,我們需要執行 EasyApache 來編譯 Apache 以啟用這些模組。
你們可以參考我以前寫的,關於如何在 Apache 伺服器上安裝 Nginx 作為反向代理的文件來了解 Nginx 的安裝。
這裡,我將再次簡述那些安裝步驟。具體細節,你可以參考我之前寫的(如何在 CentOS 7/CPanel 伺服器上配置 Nginx 反向代理)一文。
- 步驟 1:安裝 Epel 倉庫
- 步驟 2:安裝 nDeploy RPM 倉庫,這是此次安裝中最為重要的步驟。
- 步驟 3:使用 yum 從 nDeploy 倉庫安裝 nDeploy 和 Nginx 外掛。
- 步驟 4:啟用/配置 Nginx 為反向代理。
完成這些步驟後,下面為伺服器中所有可用 PHP 版本安裝 PHP-FPM 包,EA3 使用 remi 倉庫來安裝這些包。你可以執行這個 nDeploy 指令碼來下載所有的包。
root@server1 [~]# /opt/nDeploy/scripts/easy_php_setup.sh
Loaded plugins: fastestmirror, tsflags, universal-hooks
EA4 | 2.9 kB 00:00:00
base | 3.6 kB 00:00:00
epel/x86_64/metalink | 9.7 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/2): epel/x86_64/updateinfo | 460 kB 00:00:00
(2/2): epel/x86_64/primary_db
執行該指令碼將為 PHP 54,PHP 55,PHP 56 和 PHP 70 安裝所有這些 FPM 包。
Installed Packages
php54-php-fpm.x86_64 5.4.45-3.el7.remi @remi
php55-php-fpm.x86_64 5.5.31-1.el7.remi @remi
php56-php-fpm.x86_64 5.6.17-1.el7.remi @remi
php70-php-fpm.x86_64 7.0.2-1.el7.remi @remi
在以上安裝完成後,你需要為 Apache 啟用 PHP-FPM SAPI。你可以執行下面這個指令碼來啟用 PHP-FPM 例項。
root@server1 [~]# /opt/nDeploy/scripts/apache_php-fpm_setup.sh enable
mod_proxy_fcgi.c
Please choose one default PHP version from the list below
PHP70
PHP56
PHP54
PHP55
Provide the exact desired version string here and press ENTER: PHP54
ConfGen:: lxblogger
ConfGen:: blogr
ConfGen:: saheetha
ConfGen:: satest
which: no cagefsctl in (/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin)
info [rebuildhttpdconf] Missing owner for domain server1.centos7-test.com, force lookup to root
Built /usr/local/apache/conf/httpd.conf OK
Waiting for “httpd” to restart gracefully …waiting for “httpd” to initialize ……
…finished.
它會問你需要執行哪個 PHP 版本作為伺服器預設版本,你可以輸入那些細節內容,然後繼續配置併為現存的域名生成虛擬主機檔案。
我選擇了 PHP 54 作為我伺服器上的預設 PHP-FPM 版本。
雖然伺服器配置了 PHP-FPM 54,但是我們可以透過 CPanel 為各個獨立的域名修改 PHP-FPM 例項。
下面我將透過一些截圖來為你們說明一下,怎樣透過 CPanel 為各個獨立域修改 PHP-FPM 例項。
安裝了 Nginx 外掛後,你的域名的 CPanel 就會有一個 Nginx Webstack 圖示,你可以點選該圖示來配置你的 Web 伺服器。我已經登入進了我其中的一個 CPanel 來配置相應的 Web 伺服器。
請看這些截圖。
現在,你可以根據需要為選中的主域配置 web 伺服器(這裡,我已經選擇了主域 saheetha.com)。我已經繼續透過自動化配置選項來進行了,因為我不需要新增任何手動設定。
當 Nginx 配置完後,你可以在這裡為你的域名選擇 PHP-FPM 例項。
就像你在截圖中所看到的,我伺服器上的預設 PHP-FPM 是PHP 54,而我正要將我的域名的 PHP-FPM 例項單獨修改成 PHP 55。當你為你的域修改 PHP-FPM 後,你可以透過訪問 phpinfo 頁面來確認。
謝謝你們參考本文,我相信這篇文章會給你提供不少資訊和幫助。我會為你們推薦關於這個內容的有價值的評論 :)。
via: http://linoxide.com/linux-how-to/enable-multiple-php-fpm-instances-nginx-apache/
作者:Saheetha Shameer 譯者:GOLinux 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
相關文章
- 多例項資料庫一個用PSU資料庫
- MySQL多例項配置MySql
- linux php-fpm 如何重啟LinuxPHP
- mysql多例項安裝MySql
- flutter 多例項實戰Flutter
- MySQL5.7 多例項MySql
- 多例項資料庫一個用PSU(轉載)資料庫
- MySQL 多例項配置管理:MySql
- Android Flutter 多例項實踐AndroidFlutter
- MySQL多例項環境部署MySql
- mac系統,php-fpm加入開機啟動項MacPHP
- 採用linux cgroup控制redis主從多例項資源LinuxRedis
- canal同步mysql,監聽單例項,多例項配置MySql單例
- Linux下MySQL多例項部署記錄LinuxMySql
- Swoole 在 PHP-fpm/apache 中使用 task 功能PHPApache
- MySQL介紹及安裝與多例項MySql
- MySQL資料庫入門多例項配置MySql資料庫
- Windows平臺RTMP多例項推送探討Windows
- Mac10.13.6 Mysql5.7.23多例項部署MacMySql
- 構建一機多例項tomcat叢集Tomcat
- 在php-fpm或apache中使用swoole提供的task功能PHPApache
- Apache Kafka在大型應用中的20項最佳實踐ApacheKafka
- vsftpd多例項多使用者不同許可權FTP
- SpringBoot開發案例之郵件多例項傳送Spring Boot
- Mysql:mysql多例項建立、配置檔案講解【四】MySql
- Redis多例項及主從複製環境搭建Redis
- Apache DolphinScheduler如何開啟開機自啟動功能?Apache
- MySQL多例項有哪些生產應用場景?怎麼樣才能學好linuxMySqlLinux
- apache2啟用SSL(ubuntu22.04)ApacheUbuntu
- Debian上啟用Apache2服務Apache
- php7+的php-fpm引數配置,注意事項PHP
- 如何管理 macOS 的開機啟動項Mac
- 技術乾貨 | 利用systemd管理MySQL單機多例項MySql
- 1085: 求奇數的乘積(多例項測試)(奇數判斷)
- SpringBoot基礎篇之重名Bean的解決與多例項選擇Spring BootBean
- Spring Cloud Finchley版中Consul多例項註冊的問題處理SpringCloud
- 記php-fpm重啟導致的一個bugPHP
- ubuntn 重啟 PHP-fpm 修改 php.iniPHP
- All in One:Prometheus 多例項資料統一管理最佳實踐Prometheus