shell 脚本 centos 7 实现编译安装http+php并使用socket与fpm通信

要求

centos 7 编译安装 httpd和 php 的 fpm 模式,实现 httpd 通过 socket 与 fpm 通信, 响应 phpinfo 信息页面请求。

前言
  1. php两种工作模式,一种是cgi,一种是fastcgi,fpm模式就是实现来实现fastcgi的。
  2. fpm模式,可以通过监听ip的端口,来处理PHP请求,也可以通过socket来通信
  3. 编译安装http的时候需要注意 apr和apr-util的编译。
  4. 脚本需求:需要把四个安装包,放在与脚本同一目录下
    • apr-util-1.6.1.tar.gz
    • apr-1.7.0.tar.gz
    • httpd-2.4.25.tar.bz2
    • php-7.3.12.tar.xz
    • 可惜我还不知道以何种方式把 软件安装包也共享给你们,有需要联系我好了。或许以后可能搞个网盘啥的。
代码
[root@localhost ~]#cat hp.sh 
#!/bin/bash
#
#********************************************************************
#Author:		liuhao
#QQ: 			1921160095
#Date: 			2019-12-26
#FileName:		hp.sh
#Description:		The test script
#Copyright (C): 	2019 All rights reserved
#********************************************************************
# 判断包是否在当前目录
[ -e apr-1.7.0.tar.gz ] || { echo apr-1.7.0.tar.gz is no exists;exit 2; }
[ -e apr-util-1.6.1.tar.gz ] || { echo apr-util-1.6.1.tar.gz is no exists;exit 2; }
[ -e httpd-2.4.25.tar.bz2 ]  || { echo httpd-2.4.25.tar.bz2 is no exists;exit 2; }
[ -e php-7.3.12.tar.xz ] || { echo php-7.3.12.tar.xz is no exists;exit 2; }
# 编译安装http
yum install gcc make pcre-devel openssl-devel expat-devel lbzip2 -y
mkdir /app/ -p
tar xf apr-1.7.0.tar.gz -C /app/
tar xf apr-util-1.6.1.tar.gz -C /app/
tar xf httpd-2.4.25.tar.bz2 -C /app/
mv /app/apr-1.7.0/ /app/httpd-2.4.25/srclib/apr
mv /app/apr-util-1.6.1/ /app/httpd-2.4.25/srclib/apr-util
cd /app/httpd-2.4.25/
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make
make install
useradd -s /sbin/nologin -r apache
sed -i '/User daemon/c User apache' /app/httpd24/conf/httpd.conf 
sed -i '/Group daemon/c Group apache' /app/httpd24/conf/httpd.conf
# 编译安装php 7.3
yum install gcc libxml2-devel bzip2-devel libmcrypt-devel -y
cd -
tar xf php-7.3.12.tar.xz -C /app
cd /app/php-7.3.12
./configure --prefix=/app/php73 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --enable-xml --enable-sockets --enable-fpm --enable-maintainer-zts --disable-fileinfo
make
make install
# 修改环境变量
echo 'PATH=/app/php73/bin:/app/httpd24/bin:$PATH' > /etc/profile.d/hp.sh
# 配置php配置文件
cp /app/php-7.3.12/php.ini-production /app/php73/etc/php.ini
cp /app/php-7.3.12/sapi/fpm/php-fpm.service /usr/lib/systemd/system/
cd /app/php73/etc/
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
sed -i '/^user /c user = apache' /app/php73/etc/php-fpm.d/www.conf
sed -i '/^group /c group = apache' /app/php73/etc/php-fpm.d/www.conf
sed -i '/^listen /c listen = /run/php-fpm.sock' /app/php73/etc/php-fpm.d/www.conf
sed -i '/^;listen.owner /c listen.owner = apache ' /app/php73/etc/php-fpm.d/www.conf
sed -i '/^;listen.group /c listen.group = apache ' /app/php73/etc/php-fpm.d/www.conf
sed -i '/^;listen.mode /c listen.mode = 0660 ' /app/php73/etc/php-fpm.d/www.conf
# 配置http与php联动
sed -i 's/index.html/index.php index.html/' /app/httpd24/conf/httpd.conf
sed -i '/proxy_module/c LoadModule proxy_module modules/mod_proxy.so' /app/httpd24/conf/httpd.conf
sed -i '/proxy_fcgi/c LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so' /app/httpd24/conf/httpd.conf
echo "ProxyRequests Off" >> /app/httpd24/conf/httpd.conf
echo "ProxyPassMatch ^/(.*.php)$ unix:/run/php-fpm.sock|fcgi://localhost/app/httpd24/htdocs/" >> /app/httpd24/conf/httpd.conf
sed -i '/mime_module>/a AddType application/x-httpd-php .php' /app/httpd24/conf/httpd.conf
sed -i '/mime_module>/a AddType application/x-httpd-php-source .phps' /app/httpd24/conf/httpd.conf
# 加入index.php 设置phpinfo 内容页
cat << ceshi > /app/httpd24/htdocs/index.php
<?php
        phpinfo();                                                                               
?>
ceshi
# 启动php和http
systemctl daemon-reload
systemctl enable --now php-fpm.service
/app/httpd24/bin/apachectl start
[root@localhost ~]#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值