基于UDS(sock)模式的php-fpm 的LAMP

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文件和数据库文件。

  

posted @ 2022-08-22 20:42  yuanbangchen  阅读(55)  评论(0编辑  收藏  举报