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