LAMP编译安装(fpm方式连接PHP和HTTPD)

这篇文章主要做一下PHP以fpm的方式连接httpd来工作的实验。php的fpm模式,简单点说就是php可以作为一台独立的服务器来提供服务,而不是像上一篇文章一样以httpd程序模块的方式工作。这次我将把每个服务单独安装在一台服务器上来工作。

一、拓扑图:图片遮挡了,mysql(10.0.0.105)

                

二、平台及软件

    系统:centos6.4 2.6.32-358.el6.x86_64;要装上开发库Development tools

   

 yum groupinstall “Development tools”

    软件包版本:mysql-5.6.17-linux-glibc2.5-x86_64

                         httpd-2.4.6

                    php-5.5.10

三、安装 &配置

    1、httpd:这个部分的安装基本没什么区别,可以看我的上一遍文章即可。简单编译LAMP

# vim /etc/httpd24/httpd.conf 
//编辑主配置文件
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
//启用代理和反向代理模块
# vim /etc/httpd24/extra/httpd-vhosts.conf 
//编辑网站部分
<VirtualHost *:80>
    DocumentRoot "/web"
    ServerName client.test.local

    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://10.0.0.103:9000/web/$1
    //主要就是配置上面这两条,第一条是将正向代理关闭,第二条,是将以根开头.php结尾的文件
    传送该给10.0.0.103的服务器处理。有一个需要提醒的,就是在php服务器上要有和httpd服务器上相同的网站文件,目录不需要相同,只要在这条里指定就可以了(就是这个/web/)。$1是引用前边的/(.*\.php)$表达式。话有点多,不知道解释到位了没有。

    <Directory "/web">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
# mkdir /web
# cd /web
# cat > index.php << EOF
> <?php
>     phpinfo();
>     $link=mysql_connect(localhost,root,‘‘);  
>        if ($link)        
>             echo "Sueccess...";  
>         else        
>             echo "Failure..."   
> ?>
> EOF
//创建一个测试网页文件,可以测试PHP工作和PHP与mysql的连接。

    httpd服务器就这些需要修改的。

    2、mysql:同上

    3、php:这部分有少许不同,主要是在编译选择的参数

    

# yum install openssl-devel  libxml2-devel
# rpm -ivh libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm
//这两个安装包官方源里没有,要自己下载下。
#tar xf php-5.4.13.tar.bz2
# cd php-5.4.13
# ./configure --prefix=/usr/local/php --with-mysql --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  
//和上一篇文章比较起来不同在于,因为是独立运行不需要变成httpd的模块,所以不再需要这个参数 --enable-maintainer-zts,还有为了和mysql通信需要--with-mysql。如果为了使用phpmyadmin不报mysqli的错,可以加上--with-mysqli
# make
# make test
# make intall
# cp php-5.4.13/php.ini-production /etc/php.ini
# cp php-5.4.13/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
//开启开机自动启动
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
//更改php-fpm模式配置文件名,参数基本都在此处修改
# vim /usr/local/php/etc/php-fpm.conf
//主要的几个参数
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
//pid文件大家知道的,就不多解释了。
error_log = log/php-fpm.log
//错误日志存放位置,(呵呵,起码我从名字上看是这个意思,不过里面都是php-fpm服务器本身信息,比如启动啦)
access.log = /usr/local/php/var/log/$pool.access.log
//这个是关于访问php服务器的日志,错误的也在里面
listen = 10.0.0.103:9000
//这个比较重要因为要给网络上其他应用提供服务,所以要监听在你的网卡地址上。这个。。。103是我的网卡地址,改成你自己就可以。
//当然也可以监听任意地址,只要写9000这个端口即可。
listen.allowed_clients = 10.0.0.101
//看名字就知道是限制能给那个地址提供服务
user = nobody
group = nobody
//php-fpm服务的用户和组,嘿嘿,我没改动。
# mkdir /web
# cd /web
# chmod 660 -R /web && chown .nobody -R /web
# scp [email protected]:/web/* .
//把httpd服务器上创建的那个测试网页复制过来,并给这个/web文件夹赋予权限。我没有修改php-fpm服务的用户,默认是nobody,所以我也就给成nobody了。
# service php-fpm start
Starting php-fpm  done
//启动成功
# netstat -tunlp |grep 9000
tcp        0      10.0.0.103:9000                0.0.0.0:*                   LISTEN      22583/php-fpm
//查看网络监听接口,9000处于监听状态

      四、测试

        随便找个浏览器访问下,出来一大堆php信息说明php工作正常,最后一行出来success...说明php和mysql

连接正常。

    后记    

        懒得截图了,大家将就下吧。如果有兴趣一起研究,可以给我发信308906813@qq,.com。

    

本文出自 “心静自然通达” 博客,请务必保留此出处http://bluezombie.blog.51cto.com/1444792/1440302

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。