PHP源码安装及配置——以fastCGI的方式与httpd整合
在前一篇博文中介绍了LAMP的安装及配置。这里专门介绍PHP以fastCGI的方式与httpd整合的情况下,具体如何编译及配置。而且假定httpd、mysql均如前一篇博文介绍的安装配置完毕。php也采取一样版本的源码包php-5.6.1.tar.bz2。
1. 编译安装php
# tar xf php-5.6.1.tar.bz2
# cd php-5.6.1
# ./configure --prefix=/usr/local/php --enable-sockets --enable-mbstring --enable-xml --enable-fpm --with-bz2 --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-mcrypt --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc/php --with-config-file-scan-dir=/etc/php.d
# make && make install
注:编译时请确保机器的内存大于1G,或者在./configure 的选项中加上“--disable-fileinfo”,否则可能出现编译失败的情况。
2. 为php提供配置文件
# cp php.ini-production /etc/php.ini
3. 配置php-fpm
a) 为php-fpm提供配置文件
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
b) 编辑php-fpm的配置文件,调整相关的运行参数作优化。当然使用默认值也能正常运行。
# vim /usr/local/php/etc/php-fpm.conf
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pidc) 为php-fpm提供SysV init脚本,并将其添加至服务列表
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
4. 启动php-fpm服务,测试运行状态
# service php-fpm start
# netstat -tnlp | grep php-fpm
默认情况下,fpm监听在127.0.0.1的9000端口
5. 修改httpd的主配置文件httpd.conf
a) 启用httpd的相关模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.sob) 在相应的位置添加如下行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
c) 修改DirectoryIndex 的定义为:
DirectoryIndex index.php index.html
6. 配置虚拟主机支持使用fcgi
在相应的虚拟主机中添加类似如下两行:
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1参数选项含义解释
ProxyRequests Off:关闭正向代理
ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。举例:
<VirtualHost *:80>
DocumentRoot "/www/htdocs/test.com"
ServerName www.test.com
ServerAlias test.comProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/htdocs/test.com/$1<Directory "/www/htdocs/test.com">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
转载于:https://blog.51cto.com/deshanrenjian/1561648
PHP源码安装及配置——以fastCGI的方式与httpd整合相关推荐
- CentOS上PHP源码安装和配置
CentOS上PHP源码安装和配置 此文是在CentOS 7上已经部署了Nginx的基础上进行的 关于CentOS7上安装Nginx,可参考我之前的文章: CentOS上Nginx安装记录 我们现在在 ...
- mysql源码启动_Mysql源码安装、配置、初始化及启动
[在此处输入文章标题] 主机环境redhat6.5 64位 实验环境服务端ip 172.25.29.1 mysql 安装包mysql-boost-5.7.11.tar.gz cmake-2.8.12 ...
- php mysql 源码 安装教程_源码安装和配置apache(httpd)和 PHP 和 mysql全过程(一)...
[服务器环境为:CentOS6.5 64位目标:搭建LNMP(Linux + Nginx + MySQL + PHP +SVN),其中svn是用来代替ftp,方便开发中调试同步代码相关目录:所有软件都 ...
- centos7.4下安装配置PHP服务(源码安装)并配置nginx支持php
一.检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过. # yum remove php* -y 二.依赖包安装 Linux软件 ...
- centos7.4配置nginx php,centos7.4下安装配置PHP服务(源码安装)并配置nginx支持php
一.检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过. # yum remove php* -y 二.依赖包安装 Linux软件 ...
- mysql源码安装配置_MySQL源码安装及配置
目录 --cmake下载安装 http://cmake.org/download/ # wgethttp://cmake.org/files/v3.3/cmake-3.3.2.tar.gz # tar ...
- linux samba代码,Linux下Samba服务器源码安装及配置
获取samba源代码 你可以通过执行svn命令svn co svn://svnanon.samba.org/samba/trunk samba.获取最新的samba源文件,也可以直接从http://s ...
- php mysql 论坛 源码_LNMP架构的搭建(linux+nginx+mysql+php源码安装 )+Discuz论坛的搭建...
主机环境 redhat6.5 64位 实验环境 服务端 ip172.25.29.1 nginx+mysql+php 安装包 nginx-1.10.1.tar.gz mysql-boost-5.7 ...
- httpd源码安装-及实现虚拟主机
httpd安装 源码安装 [root@http ~]# wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.bz2 https://dow ...
最新文章
- 用Visio进行数据库建模、设计和实现
- C++ 默认参数和占位符
- 以下哪些是oracle预定义角色,Oracle中预定义角色有哪些?
- windows ping 不通虚拟机
- Matlab数据标准化
- python正则表达式中group
- BackgroundWorker的包装器
- property内存管理策略
- python3.7 keras和tensorflow兼容_解决Keras 与 Tensorflow 版本之间的兼容性问题
- Android服务注册完整过程源码分析
- vuecli+axios的post请求传递参数异常
- 解决VScode中C语言中文乱码问题
- mosquitto无法连接
- 冰河又一MySQL力作出版(文末送书)!!
- android中weight计算方法,详解Android中weight的使用方法
- 世界期货市场竞争格局的变迁
- maven创建eclipse wtp项目
- 信息安全 SEED Lab2 Shellshock Attack
- 关于微软鼠标和键盘中心安装报错1603的解决方法
- 【星球问答精选】我想打造个性化的高效工作流,不会编程怎么办?
热门文章
- matlab数字图像处理课程设计报告,数字图像处理课程设计实验报告.doc
- c语言手游常用代码,c语言源代码【操作流程】
- lua jit java jit_Lua JIT 2.0 发布了,一百五十倍的性能提升!
- 爱尔兰都柏林圣三一大学计算机排名,2021年爱尔兰都柏林圣三一大学世界及专业排名 不愧是最古老的学府!...
- assume用法及意思_词汇精选:assume的用法和辨析
- android 电池高温关机,Android 关机问题分析指南
- 内网击穿之 HTTP 穿透:网站没上线?如何让全世界的人都可以访问你本地的网站?
- xpwifi热点设置android,教你在XP电脑中开启设置WiFi热点使用的步骤
- distinct返回null报错_C#之集合常用扩展方法与Linq
- 安装默认报表服务器虚拟目录,报表服务器虚拟目录(Reporting Services 配置)