安基网 首页 IT技术 网络管理 查看内容

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

2018-9-23 09:13| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 导读FCGI全称Fast Common Gateway Interface(快速通用网关协议),是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本,FastCGI致力于减少网页服务器与CGI程序之间交互的开销,从 ...

导读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这个模块前面的#注释符并添加如下内容:


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

然后重启apache测试,完工。

总结

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

Tag标签:

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6604054533523898894/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部