设为首页 收藏本站
查看: 1191|回复: 0

[经验分享] LAMP编译安装(fpm方式连接PHP和HTTPD)

[复制链接]

尚未签到

发表于 2018-12-24 10:17:36 | 显示全部楼层 |阅读模式
这篇文章主要做一下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
//编辑网站部分

    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)$表达式。话有点多,不知道解释到位了没有。
   
        Options none
        AllowOverride none
        Require all granted
   

# mkdir /web
# cd /web
# cat > index.php  
> EOF
//创建一个测试网页文件,可以测试PHP工作和PHP与mysql的连接。
    httpd服务器就这些需要修改的。

    2、mysql:与前一个篇文件写的安装方法相同,只是需要添加一个远程链接的root用户即可。

#mysql    #进入数据库中
mysql> grant all on *.* to 'root'@'%' identified by '1234';
#添加一个以root用户,密码为1234
mysql的用户基于两个部分名字和主机,中间用@链接。root@%则表示从任意地址访问的root用户,%是通配符,不过不能代表localhost和127.0.0.1的本机地址。




    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 root@10.0.0.101:/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。

   





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655174-1-1.html 上篇帖子: linux下的PHP编码问题 下篇帖子: PHP中测试程序执行时间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表