Apache 配置 PHP 一般會預設用 mod_php 的方法安裝, 安裝 Nginx 便會使用 PHP-FPM。但如果在 Apache 不想使用預設的 prefork 作為 MPM (通常基於效能因素), 想使用 worker 或 event, 便需要使用 PHP-FPM 的方法安裝 PHP。

本文會示範在 CentOS 7 安裝 Apache 及 PHP-FPM 的方法。

首先用 yum 安裝 httpd 及 php-fpm:

[root@opencli ~]# yum install httpd httpd-tools mod_ssl php-fpm

Apache 預設使用 mod_mpm_prefork, 改用 mod_mpm_event, 開啟 /etc/httpd/conf.modules.d/00-mpm.conf:

[root@opencli ~]# vi /etc/httpd/conf.modules.d/00-mpm.conf

將 mpm_prefork_module 一行, 在前面加上註解:

# LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

然後將 mpm_event_module 一行前的註解刪除:

LoadModule mpm_worker_module modules/mod_mpm_worker.so

修改好上面的設定後, 現在設定 PHP-FPM, 將所有 PHP 的請求傳送給 PHP-FPM:

[root@opencli ~]# vi /etc/httpd/conf.d/php.conf

以下是 php.conf 的內容:

# Tell the PHP interpreter to handle files with a .php extension.

# Proxy declaration

# we must declare a parameter in here (doesn't matter which) or it'll not register the proxy ahead of time

ProxySet disablereuse=off

# Redirect to the proxy

SetHandler proxy:fcgi://php-fpm

#

# Allow php to handle Multiviews

#

AddType text/html .php

#

# Add index.php to the list of files that will be served as directory

# indexes.

#

DirectoryIndex index.php

#

# Uncomment the following lines to allow PHP to pretty-print .phps

# files as PHP source code:

#

#

# SetHandler application/x-httpd-php-source

#

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

# Tell the PHP interpreter to handle files with a .php extension.

# Proxy declaration

# we must declare a parameter in here (doesn't matter which) or it'll not register the proxy ahead of time

ProxySetdisablereuse=off

# Redirect to the proxy

SetHandlerproxy:fcgi://php-fpm

#

# Allow php to handle Multiviews

#

AddTypetext/html.php

#

# Add index.php to the list of files that will be served as directory

# indexes.

#

DirectoryIndexindex.php

#

# Uncomment the following lines to allow PHP to pretty-print .phps

# files as PHP source code:

#

#

#       SetHandler application/x-httpd-php-source

#

預設的 php-fpm 設定檔會使用 TCP 連線, 為了有更佳的效能, 改用 socket, 開啟 PHP-FPM 設定檔 /etc/php-fpm.d/www.conf:

[root@opencli ~]# vi /etc/php-fpm.d/www.conf

以下是需要修改的內容:

; listen = 127.0.0.1:9000

listen = /var/run/php-fpm/default.sock

1

2

;listen=127.0.0.1:9000

listen=/var/run/php-fpm/default.sock

listen.allowed_clients = 127.0.0.1

listen.owner = apache

listen.group = apache

listen.mode = 0660

user = apache

group = apache

1

2

3

4

5

6

listen.allowed_clients=127.0.0.1

listen.owner=apache

listen.group=apache

listen.mode=0660

user=apache

group=apache

設定完成後, 現在啟動 httpd 及 php-fpm, 並設定開機自動啟動:

[root@opencli ~]# systemctl enable php-fpm

[root@opencli ~]# systemctl enable httpd

[root@opencli ~]# systemctl start php-fpm

[root@opencli ~]# systemctl start httpd

現在需要設定 firewalld, 開放 port 80 及 443 對外連線:

[root@opencli ~]# firewall-cmd –zone=public –permanent –add-service=http

[root@opencli ~]# firewall-cmd –zone=public –permanent –add-service=https

[root@opencli ~]# firewall-cmd –reload

最後可以測試一下 PHP 是否可以透過 PHP-FPM 正常執行, 執行以下指令建立 PHP 測試頁面:

[root@opencli ~]# echo “<?php phpinfo(); ?>” > /var/www/html/info.php

用瀏覽器開啟上面的頁面 (http://xxx.xxx.xxx.xxx/info.php), 如果可以看到 phpinfo 的畫面, 並看到 Server API 是 “FPM/FastCGI”, 便表示安裝成功了:

你可能感興趣的內容:

mod mpm event php7.1,CentOS 7 安裝 PHP-FPM 及使用 mod_mpm_event相关推荐

  1. CentOS下安裝Nvidia docker 2.0:[Errno 256] No more mirrors to try錯誤及解決方式

    CentOS下安裝Nvidia docker 2.0:[Errno 256] No more mirrors to try. [Errno 14] HTTPS Error 404 - Not Foun ...

  2. [Python學習筆記] 在Centos上安裝 Django

    曾在模擬器跟Digital Ocean上安裝成功,我在 Digital Ocean上的是CentOS 7 x64,模擬器的則是Centos 6. 雖然Centos 本身已經裝好 Python 但是是2 ...

  3. php70wfpm,CentOS 7 安裝 Nginx、PHP7、PHP-FPM

    修改 PHP-FPM listen 的方式 若想將 PHP-FPM listen 的方式,改成 unix socket,可以編輯 /etc/php-fpm.d/www.conf 將 listen = ...

  4. CentOS 7安裝视频解码器

    装了centos,但不能播放视频...我要看视频学习啊... 下载gstreamer 链接:http://pan.baidu.com/s/1yLcRW 密码:h159 解压后放到 /usr/lib64 ...

  5. worker mpm php,Ubuntu 16.04 安裝 Apache2.4 + mpm_worker + fastcgi + php7.0

    之前寫過一篇 Ubuntu 16.04 在 Apache2.4 跑 PHP7.0 是用 mod_php 跑來的,而 mod_php 是使用 mpm_prefork 來跑,這篇主要要說的是 mpm_wo ...

  6. mysql5.7版本源_用最新MySQL 8.0的源安裝MySQL 5.7版本(CentOS 7環境下)

    起因: 從官網下了MySQL最新8.0版本的源,安裝了MySQL 8.0.13,但是發現版本太新了跟其他軟件不兼容,而且改了半天其他軟件配置都沒改好(囧rz)...算了,卸載了8.0,還是安回5.7的 ...

  7. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展...

    1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr/local/httpd --enable-so 2 第二步: make 3 第三步: sudo ...

  8. Apache Maven 3.0.3 (yum) 安裝 (CentOS 6.4 x64)

    介紹 http://maven.apache.org/ Maven是一個專案的開發,管理和綜合工具. 下載 http://maven.apache.org/download.cgi 參考 http:/ ...

  9. CentOS 5.4 安裝 boost 1.4.1 筆記 - 杨毅的电子笔记

    CentOS 5.4 安裝 boost 1.4.1 筆記 - 杨毅的电子笔记 CentOS 5.4 安裝 boost 1.4.1 筆記 - 杨毅的电子笔记 CentOS 5.4 安裝 boost 1. ...

  10. CentOS 7下編譯安裝和配置GoldenDict

    GoldenDict發佈於GNU GPLv3+許可下,也許其它平臺有更好的選擇,但它是Linux下最好用的免費詞典應用,其兼容另一款與之比肩的同類應用StarDict的詞典文件格式,還有強大的Mdic ...

最新文章

  1. MFC两个复选框互斥设置
  2. 关于分布式锁的面试题都在这里了
  3. Sysnoise5.6安装教程
  4. Bash脚本报错:“/bin/bash^M: bad interpreter: No such file or directory”
  5. RedHat Enterprise AS4安装步骤
  6. Logistics模型预测银行贷款违约
  7. 未签名的应用程序请求对系统进行无限制访问_OWASP Top 10 2017 10项最严重的 Web 应用程序安全风险 (完结篇)...
  8. Eureka的工作原理以及它与ZooKeeper的区别
  9. IIS(IISReset.exe)命令行(备忘)
  10. (89c51)16x16点阵屏幕的实现
  11. 【路径规划】基于蚁群算法求解带容量距离约束的车辆路径问题(CDVRP)matlab代码
  12. Redis知识点整理(详讲)
  13. 易想团购 注入 user.php,易想购物(easethink)存在sql注入漏洞,附利用测试POC
  14. 域组策略与本地组策略
  15. WHT, SLANT, Haar
  16. EDIUS中怎么快速实现色彩平衡滤镜较色
  17. http://sishuok.com/forum/blog/index.html?search_keywords=%E7%A0%94%E7%A3%A8%E8%AE%BE%E8%AE%A1%E6%A8%
  18. MTK Http Socket GPRS以及解析器和下载器概述
  19. MIUI黑科技之小米直达服务:Web 般的流畅体验+更少的卡顿、延迟
  20. 基于ARM开发板的智能家居控制系统设计

热门文章

  1. as常用固定搭配_英语专业四级常用固定搭配
  2. 华三服务器升级文档,H3C交换机升级步骤
  3. 搭建sip软电话环境
  4. 12 初探肿瘤异质性
  5. Java中的String的getBytes()方法
  6. html调查问卷页面,html+js 问卷调查页面的展示以及form提交
  7. python实现 stft_scipy-Python中的可逆STFT和ISTFT
  8. 计算机无steam服务,有了这个,或许以后都不用登录电脑的Steam了
  9. SteamVR Unity工具包(三):控制器交互
  10. excel自动调整列宽_Java 设置Excel自适应行高、列宽