httpd+php结合的方式:
module: php 基于模块,apache换成nginx就不支持。
fastcgi: php-fpm 基于软件
各种OS版本对fastcgi的支持
CentOS 8: 默认使用fpm模式
httpd-2.4:默认rpm包支持fcgi模块
php包默认使用fpm模式
php-fpm包:专用于将php运行于fpm模式
CentOS 7:
httpd-2.4:默认rpm包支持fcgi模块
php-fpm包:专用于将php运行于fpm模式
CentOS 6:
PHP-5.3.2之前:默认不支持fpm机制;需要自行打补丁并编译安装
httpd-2.2:默认不支持fcgi协议,需要自行编译此模块
解决方案:编译安装httpd-2.4, php-5.3.3+
实验:基于UDS(sock)模式的php-fpm 的LAMP
注意基于UDS(sock)模式,对httpd版本有要求(2.4.9以上)
官方文档:http://php.net/manual/zh/install.fpm.configuration.php
实验:基于端口号实现 php-fpm 的LAMP
两台主机:一台A apache+php-fpm, ip:100
一台B mariadb ip:110
项目: wordpress
1 A 编译安装httpd
yum install php-fpm php-mysql
useradd -s /sbin/nologin apache
2 A 设置站点ACL权限,主要是用于生成wordpress/wp-config.php文件。
tar xvf wordpress-5.0.4-zh_CN.tar.gz -C /var/www/html/
setfacl -Rm u:apache:rwx /var/www/html/wordpress
3 B 安装数据库并账号授权
yum install mariadb-server
mysql> create database wpdb;
mysql> grant all on wpdb.* to wpuser@'192.168.80.%' identified by '123456';
4. A 配置php-rpm配置文件(基本不用设置)
vim /etc/php-fpm.d/www.conf
#listen = 127.0.0.1:9000
listen=/var/run/php5-fpm.sock #sock
listen.owner = apache #sock文件账号
listen.group = apache
listen.mode = 0666
listen.allowed_clients = any #允许访问FastCGI进
#确保运行php-fpm进程的用户对session目录有读写权限(测试没有此文件)
mkdir /var/lib/php/session
chown apache.apache /var/lib/php/session
5. A配置httpd,
在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
vim /app/httpd/conf/httpd.conf #(直接方式)
user apache
group apache
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
#ProxyPassMatch ^/(.*\.php)$ "fcgi://localhost:9000/var/www/html/$1"
ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm.sock|fcgi://localhost/var/www/html/"
cat /usr/local/httpd/conf/conf.d/fcgi.conf #(虚拟主机方式)
<VirtualHost *:80>
DocumentRoot "/usr/local/httpd/htdocs/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxypassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm.sock|fcgi://localhost/usr/local/httpd/htdocs/"
ProxyPassMatch ^/(status|ping) unix:/var/run/php.sock|fcgi://localhost
<Directory "/usr/local/httpd/htdocs/">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
systemctl restart php-fpm http
6.客户端192.168.80.100/wordpress/浏览器登录,使用账号登录生成wp-config.php文件和数据库文件。