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.pid

c) 为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.so

b) 在相应的位置添加如下行

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.com

ProxyRequests 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>

时间: 2024-11-14 09:50:10

PHP源码安装及配置——以fastCGI的方式与httpd整合的相关文章

Mysql源码安装、配置、初始化及启动

[在此处输入文章标题] 主机环境redhat6.5 实验环境服务端 ip 172.25.29.1  mysql 安装包  mysql-boost-5.7.11.tar.gz   cmake-2.8.12.2-4.el6.x86_64.rpm 1.mysql的源码安装 1.解压压缩包 [[email protected] mnt]# tar zxfmysql-boost-5.7.11.tar.gz  #解压gz包 [[email protected] mnt]# yum installcmake-

mysql-proxy源码安装及配置mysql读写分离

安装Mysql-proxy关联系统包 libevent libevent-devel glib2 glib2-devel lua 5.1.x lua-devel-5.1.x pkg-config mysql-devel openssl openssl-devel gcc* 2安装MySQL-proxy 0.8.5 下载源码包并解压 在源码包路径下安装 ./configure –prefix=/u01/mysql-proxy make make install 3.配置mysql-proxy.cn

Memcached 源码安装 与 配置

主机环境: CentOS 6.6 x86_64 一,安装memcached 1,由于memcached依赖libevent 库,用它做Socket的处理,因此,我们需要安装libevent库,我这里就用yum来安装了. yum install libevent 2,到官网下载memcached 的源码包.   http://memcached.org 最新版是 v1.4.24 #wget  #tar xf   memcached-1.4.24.tar.gz  #cd memcached-1.4.

Linux下源码安装并配置Nginx

实验环境 一台最小化安装的CentOS 7.3 虚拟机 安装nginx 安装nginx依赖包 yum install -y pcre-devel zlib-devel openssl-devel wget gcc tree vim Nginx依赖于pcre.zlib.openssl,在编译前配置时如果有问题 可以使用yum方式安装三个包(pcre-devel.zlib-devel.openssl-devel) 从Nginx官网下载Nginx源码包 wget http://nginx.org/do

Centos下Nginx源码安装与配置并附shell编程实现自动化安装

一.首先安装必要的库 nginx 中gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库.选定/usr/local为安装目录,以下具体版本号根据实际改变. 1.安装PCRE库 $ cd /usr/local/ $ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz $ tar -zxvf pcre-8.36.tar.gz $ cd pcre-8.3

php源码安装常用配置参数和说明

常用的配置参数1. --prefix=/usr/local/php 指定 php 安装目录 install architecture-independent files in PREFIX 默认/usr/local2.--with-config-file-path=PATH php.ini的存放位置 Set the path in which to look for php.ini [PREFIX/lib] --with-config-file-scan-dir=PATH php.ini的扩展目

PHP 源码安装常用配置参数和说明

常用的配置参数1. --prefix=/usr/local/php指定 php 安装目录install architecture-independent files in PREFIX 默认/usr/local2.--with-config-file-path=PATHphp.ini的存放位置Set the path in which to look for php.ini [PREFIX/lib]--with-config-file-scan-dir=PATHphp.ini的扩展目录Set t

《一个操作系统的实现》学习笔记(一) bochs源码安装及配置

前言:本机环境ubuntu 14.04 bochs 2.4.5 一.下载 官网 http://bochs.sourceforge.net/ 二.安装 1.将下载好的压缩包解压并进入该目录 tar vxzf bochs-2.4.5.tar.gz cd bochs-2.4.5 2.安装编译程序依赖的包 sudo apt-get install build-essential 3.检测环境,打开调试功能的开关 ./configure --enable-debugger --enable-disasm

LNMP架构的搭建(nginx+mysql+php源码安装 )+Discuz论坛的搭建

主机环境 redhat6.5 64位 实验环境 服务端 ip172.25.29.1  nginx+mysql+php 安装包   nginx-1.10.1.tar.gz         mysql-boost-5.7.11.tar.gz    cmake-2.8.12.2-4.el6.x86_64.rpm php-5.6.20.tar.bz2         re2c-0.13.5-1.el6.x86_64.rpm         libmcrypt-2.5.8-9.el6.x86_64.rpm