首页 > 代码库 > hph-fpm的LAMP平台

hph-fpm的LAMP平台

                建立php-fpm的服务群

wKioL1PrmMLy5QDQAAHT-dRHcoI557.jpg

 

上图是php-fpm的工作原理

一、编译安装php-5.4.26

 php的源代码文件请自行下载,这里以安装php2.4为例

1、解决依赖关系:

 请配置好yum源(可以是本地系统光盘)后执行如下命令:

# yum -y groupinstall "X Software Development" 

 如果想让编译的php支持mcrypt扩展,还需要安装下面两个程序:libmcrypt-devel ;mhash-devel

2、编译安装php-5.4.26

 

# tar xf php-5.4.26.tar.bz2    **解压源文件

# cd php-5.4.26

# ./configure --prefix=/usr/local/php5 --with-mysql --with-openssl --with-mysqli --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2

****--prefix=/usr/local/php5  指定安装的路径,其他详细参数的意义请自行查看官方文档

# make  &&  make intall

 

php提供配置文件:

# cp php.ini-production /etc/php.ini    php解压以后就有

 wKiom1PrlH7zmM3fAANNAC29320775.jpg

3、配置php-fpm

 

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         **php-fpm加入启动列表

# chkconfig php-fpm on           **为服务添加启动级别

 

php-fpm提供配置文件:

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 

 

编辑php-fpm的配置文件:

# vim /usr/local/php5/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   文件在自己的安装路径下

****这里listen必须监听是本机的IP地址

wKiom1PrluPhzH8vAAIy0c0ZVIU640.jpg

 

接下来就可以启动php-fpm了:

# service php-fpm start

#ss -tnl  查看php9000端口是否被监听

 

 wKiom1PrlEzgntIiAAJPfyk__0A324.jpg

 

 

三、配置httpd-2.4.9

 

1、启用httpd的相关模块

 

Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

 

 

2、配置虚拟主机支持使用fcgi

 

在相应的虚拟主机中添加类似如下两行。

  ProxyRequests Off

  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

 

http://www.magedu.com/admin/index.php

 

/web/host1/admin/index.php

fcgi://127.0.0.1:9000/web/hosts/admin/index.php

 wKiom1PrlvmT7m-EAAMvxJvegFE283.jpg

 

 

ProxyRequests Off:关闭正向代理

ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

 

3、编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页

 

 # vim /etc/httpd/httpd.conf

 1、添加如下二行

   AddType application/x-httpd-php  .php

   AddType application/x-httpd-php-source  .phps

 

 2、定位至DirectoryIndex index.html 

   修改为:

    DirectoryIndex  index.php  index.html

 

wKioL1PrmEeRELuSAAGz5dCVtwY841.jpg

wKiom1Prly7TYlvTAAB0NSBhWTk610.jpg

wKioL1PrmEfCBhZuAACp28AtKJo603.jpg

 

 

补充:Apache httpd 2.4以前的版本中,要么把PHP作为Apache的模块运行,要么添加一个第三方模块支持PHP-FPM实现。

 

三、编译安装数据库 mariadb-5.5.36

 

 1.在ip地址为172.16.1.72的主机上安装一个mysql数据库: mariadb-5.5.36-linux-x86_64.tar.gz

2.解压并移动到/usr/local目录中

#tar -xvf mariadb-5.5.36-linux-x86_64.tar.gz    解压文件到当前目录下

#mv mariadb-5.5.36-linux-x86_64 /usr/local/mariadb

 

#cd /usr/local/mariadb/ 进入mysql的安装位置目录

# scripts/mysql_install_db --user=mysql --datadir=/mydata   初始化mysql,并指定运行用户和并指定数据存放的位置
# chown -R root . /*       将mariadb目录下的所有文件的属主该为root用户

为mysql用户提供主配置文件
#cp support-files/my-large.cnf /etc/my.cnf      

# vim /etc/my.cnf       编辑mysql的主配置文件

 

 

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld     将mysql的运行脚本复制到/etc/rc.d/init.d目录下

# chkconfig --add mysqld   添加目录到启动列表

# chkconfig mysqld on      为mysql添加启动级别

      thread_concurrency = 2  将cpu的个数*2

      datadir = /mydata            在配置文件中指定数据存储的位置

# chown -R mysql /mydata  将mydata目录下的所有文件的属主该为mysql

# service mysqld start   启动服务

# cd ..

# ln -sv mariadb/ mysql  将mariadb目录连接到mysql目录

# service mysqld start  启动mysql服务

# ss -ntl      查看mysql是否被端口监听

# vim /etc/profile.d/mysql.sh  添加环境变量

# . /etc/profile.d/mysql.sh       读取修改后的环境变量

#GRANT ALL ON discuz.* TO zhou@172.16.1.71 IDENTIFIED BY ‘123‘; 给用户名周的用户授予discuz目录下所有表的所以权限

 

四、下面以安装discuz为例来检验php-fpm是否搭建成功

1、下载Discuz软件到本地

2、解压到http服务器的/web/zhou.com

wKioL1Prne_i85RpAACQNsAINrc410.jpg

3、解压到php服务器的/web/zhou.com目录下,图中的三个文件复制到http服务器的/web/zhou.com目录,覆盖掉原来的目录

wKioL1PrngzDYruBAACXl2XrXgs396.jpg

4、现在在浏览器输入:http://172.16.1.70/upload/forum.php

 


 

本文出自 “菜鸟前行之路” 博客,谢绝转载!