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 ~]#
發佈了57 篇原創文章 · 獲贊 21 · 訪問量 6821
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章