用fastcgi的方式分离部署LAMP。

本文介绍如何通过FastCGI将原本一起部署的LAMP架构分开,以提高效率。关键步骤包括:配置HTTP服务器(如Apache)使用fcgi模块转发PHP请求到独立运行的PHP服务,设置网站目录,确保防火墙和SELINUX设置允许通信,并连接MySQL数据库。通过这种方式,HTTP和PHP各自独立,提升系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


原本做的lamp架构放在一起 http以模块的方式调用php 但是这样在一起占资源并且 php这样运行效率不高 让他与fastcgi的方式独立运行更加高效,
其中 比较关键的是http和php的连接,要使用fcgi模块将来自php的请求转发给PHP 来处理动态请求, 如果将原理简单来说就是:
http接受到请求然后转发给php 因为网站又不全是php的内容 所以 php http上都要有网站目录。php接受请求处理php页面 ,由php来关联数据库,获取数据。


http(192.168.43.62)-------------

依赖包 其实有些不是必须的 像openssl 不做https就不需要

yum install pcre-devel gcc* apr* openssl-devel -y

cd httpd-2.4.29


./configure --prefix=/usr/local/httpd --enable-rewrite --enable-ssl --enable-proxy --enable-proxy-http && make && make install


安装后修改配置文件--------------------

 vim /usr/local/httpd/conf/httpd.conf 

这一行注释取消掉



找到下面位置添加index.php


稍后把网站目录放/www/wz下所以修改一下http的网站根目录。



删掉注释符 启动代理模块和fcgi模块


LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so



在配置文件中添加下面两行 让http支持php
 AddType application/x-httpd-php .php                 
 AddType application/x-httpd-php-source .phps


然后找到下面这一行取消注释 启动虚拟主机文件
Include /etc/httpd/extra/httpd-vhosts.conf 

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
本来有两个虚拟主机模块 删掉一个另一个留一个就可以 
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/www/wz"  #修改网站目录
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
ProxyRequests Off   #关闭正向代理

ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.43.11:9000/www/wz/$1

#上面这句以php结尾的请求都用fcgi模块转发给php 并在后面指定了php需要处理的网站目录  

</VirtualHost>

修改后保存退出

准备网站目录,php和nginx都要有

 tar zxf wordpress-4.9.4.tar.gz
 mkdir /www

 mv wordpress /www/wz

chown root.root /www/ -R

chmod 777 -R /www/wz/


 关闭防火墙  开启http



PHP(192.168.43.11)-------------------------

yum -y install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel  #依赖包



 ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install &&  make && make install


cp sapi/fpm/init.d.php-fpm /etc/init.d/php    #启动脚本

cp php.ini-production /usr/local/php5.6/php.ini  #参数文件

cd /usr/local/php5.6/etc/

cp php-fpm.conf.default php-fpm.conf #配置文件

 vim /usr/local/php5.6/etc/php-fpm.conf

listen = 127.0.0.1:9000  #找到这一行 127.0.0.1修改为自己的ip

chmod +x /etc/init.d/php

/etc/init.d/php start        #开启服务

---------------------------------------

准备网站目录,php和nginx都要有

 tar zxf wordpress-4.9.4.tar.gz
 mkdir /www

 mv wordpress /www/wz

chown root.root /www/ -R

chmod 777 -R /www/wz/

因为是php调用mysql所以php上面必须有mysql客户端的包

yum install -y mysql 

 ------------------------------------

现在打开浏览器访问http 现在已经可以访问过来了但是还没有弄数据库连接不上数据库。





mysql数据库(192.168.43.22)————————————————————

这里没什么难的了就 编译安装也可以 yum也可以

 yum Iinstall -y mysql-server 


安装好后 进去mysql创建数据库和用户

create database aaa;  #创建数据库

grant all on *.* to aaa@'192.168.43.%' identified by '123456';  #创建用户授权 给192.168.43.0网络的使用。


service mysqld start

保证 PHP MYSQL HTTP 防火墙关闭 SELINUX关闭  并且互相连通








没问题了。希望对你有所帮助,谢谢!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值