Linux中配置apache+php-fpm模式

先查找php-fpm.conf ,发现PHP的安装目录下没有该文件
在PHP安装目录下创建php-fpm配置文件,并输入以下内容(存在跳过此步骤)

[global]
pid = /www/server/php/70/var/run/php-fpm.pid
error_log = /www/logs/php/70/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi-70.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.status_path = /phpfpm_70_status
pm.max_children = 300
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 50
request_terminate_timeout = 100
request_slowlog_timeout = 30
slowlog = /www/logs/php/70/slow.log

找到apache的配置文件,找到 php_module 项(代表你的PHP版本号)注释该项
再找到 mod_proxy.so 和 mod_proxy_fcgi.so 以及 mod_rewrite.so项,解除注释,启用模块

在apache配置文件中加载其它配置(比如网站域名配置)

IncludeOptional /www/server/apache/vhost/*.conf

php-fpm模式5.png

创建测试文件
在web站点根目录下创建index.php

创建文件夹

mkdir /www/wwwroot/build

创建文件

vim /www/wwwroot/build/index.php

在文件中输入以下内容

phpinfo();

保存退出#

创建apache的虚拟主机站点配置文件
在IncludeOptional 项指定的目录下创建一个任意文件名.conf的配置,我这里是index.conf

vim /www/server/apache/vhost/index.conf

输入以下内容 (注意内容中的路径是可以自定义的)#

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot "/www/wwwroot/build" #这里指定web的根目录
    ServerName 192.168.1.3                #这里是web网站访问的域名
    ServerAlias 192.168.1.3            #这里也是web网站访问的域名
    errorDocument 404 /404.html     
    ErrorLog "/www/logs/www/1.error_log"  #这里是web网站访问的日志
    CustomLog "/www/logs/www/1.access_log" combined  #这里是web网站访问的错误日志

    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>

    #PHP
    <FilesMatch \.php$>
            SetHandler "proxy:unix:/tmp/php-cgi-70.sock|fcgi://localhost"
    </FilesMatch>

    #PATH
    <Directory "/www/wwwroot/build"> #这里指定web的根目录
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.php index.html index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>

修改所有新创建的文件所属权

重启apache
启动php-fpm

/www/server/php/56/sbin/php-fpm
/www/server/php/70/sbin/php-fpm

浏览器输入地址
访问成功

Apache禁止域名和未设置虚拟主机的域名访问

LAMP禁止域名和未添加虚拟主机的域名访问,这里只记录一种,访问未设置虚拟主机的域名或IP时跳到指定的页面中

<VirtualHost *:80>
  DocumentRoot "指定目录"
  ServerName ip地址
  ServerAlias *
  <Location 指定目录>
    Order Allow,Deny
    Allow from all
  </Location>
</VirtualHost>

有的朋友说该设置需要放在虚拟域名列表的前面,但我此处是先载入虚拟域名的配置,然后才是此设置,具体情况还有待测试