阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

apache使用fcgi配置PHP环境的步骤

59次阅读
没有评论

共计 1932 个字符,预计需要花费 5 分钟才能阅读完成。

导读 FCGI 全称 Fast Common Gateway Interface(快速通用网关协议),是一种让交互程序与 Web 服务器通信的协议。FastCGI 是早期通用网关接口(CGI)的增强版本,FastCGI 致力于减少网页服务器与 CGI 程序之间交互的开销,从而使服务器可以同时处理更多的网页请求。

早期的 CGI 技术使外部程序与 Web 服务器之间交互成为可能,但 CGI 程序运行在独立的进程中,并对每个 Web 请求创建一个进程,这种方法非常容易实现,但效率很差,难以扩展。面对大量请求,进程的大量创建和消亡使操作系统性能大大下降,此外由于地址空间无法共享,也限制了资源重用。

FastCGI 使用持续的(守护)进程来处理一连串的请求,这些进程由 FastCGI 服务器管理,而不是 web 服务器。当进来一个请求时,web 服务器把环境变量和这个页面请求通过一个 socket 比如 FastCGI 进程与 web 服务器 (都位于本地)或者一个 TCP connection(FastCGI 进程在远端的 server farm)传递给 FastCGI 进程。

FPM 介绍

FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。

具体特性和安装方式可以参照官方网站:FastCGI 进程管理器(FPM)

开始吧,GOGOGO
1. 下载解压及准备编译环境不再赘述
2. 创建 FPM 使用的用户和组
[root@rhel6-1 php-5.6.31]# groupadd -r php
[root@rhel6-1 php-5.6.31]# useradd -r php -s /sbin/nologin -g php
3. 配置编译选项
./configure --prefix /usr/local/php56 --with-config-file-path=/etc/ --with-config-file-scan-dir=/etc/php.d --with-libxml-dir --with-openssl --with-zlib --enable-mbstring --with-mysql --enable-fpm --with-fpm-user=php --with-fpm-group=php
4. 编译安装
make -j 2 & make install
5. 更改相关文件的所属组和所属用户
chown :php php56/ -R
配置 FPM 和 Apache
1. 复制相关配置文件
cp php.ini-production /etc/php.ini
chown :php /etc/php.ini
mkdir /etc/php.d;chown :php /etc/php.d
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
2. 编辑 fpm 配置文件
cd  /usr/local/php56/etc/
cp -p php-fpm.conf.default php-fpm.conf
vim php-fpm.conf   // 此配置文件的路径定义在启动脚本中 
3. 启用 fpm
service php-fpm start

看到如下输出并使用 netstat -tnl 验证

Starting php-fpm done
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN  //netstat -tnl 看到已经监听了 9000 端口 
4. 配置 apche

这里使用 PROXYPASSMATCH 的方式,目前应该是有 4 种方式可以配置的,图个简单就它了。
先填个坑,好像之前编译 httpd 的时候没有编译 fcgi 模块…. 我的天啊…怎么那么多坑…

/root/httpd-2.4.27/modules/proxy
/usr/local/httpd24/bin/apxs -c -i -a mod_proxy_fcgi.c

编辑 httpd 配置文件,取消 proxy_module 这个模块前面的 #注释符并添加如下内容:

<IfModule mpm_prefork_module>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/webroot/$1 // 根据自己的网站目录修改路径
</IfModule>

然后重启 apache 测试,完工。

总结

总算给 FCGI 形式的 php 玩了一下,基本上还是能理解这种操作方式的,FCGI 主要是可以将 php 安装到单独的主机,然后将网站使用 NFS 的方式进行存储。嗯,大概就是这样,唉,又快 11 点了,睡觉吧。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1932字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中