日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

源码安装的php如何启动脚本,PHP源码编译安装管理常用脚本

發布時間:2023/12/10 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 源码安装的php如何启动脚本,PHP源码编译安装管理常用脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#!/bin/sh

#?編譯安裝管理PHP

App=php

AppName=PHP

AppBase=/App

AppDir=$AppBase/$App

AppProg=$AppDir/sbin/php-fpm

AppIni=$AppDir/etc/php.ini

AppConf=$AppDir/etc/php-fpm.conf

ExtensionDir=$($AppDir/bin/php-config?--extension-dir)

AppSrcBase=/App/src

AppSrcFile=$App-*.tar.*

AppSrcDir=$(find?$AppSrcBase?-maxdepth?1?-name?"$AppSrcFile"?-type?f?2>?/dev/null?|?sed?-e?'s/.tar.*$//'?-e?'s/^.\///')

AppUser=$(grep?"^[[:space:]]*user"?$AppConf?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")

AppGroup=$(grep?"^[[:space:]]*group"?$AppConf?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")

AppPidDir=$(dirname?$(grep?"^[[:space:]]*pid"?$AppConf?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")?2>?/dev/null)

AppErrorLogDir=$(dirname?$(grep?"^[[:space:]]*error_log"?$AppConf?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")?2>?/dev/null)

AppSlowLogDir=$(dirname?$(grep?"^[[:space:]]*slowlog"?$AppConf?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")?2>?/dev/null)

UploadTmpDir=$(grep?"^[[:space:]]*upload_tmp_dir"?$AppIni?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")

grep?"^session.save_handler"?$AppIni?2>?/dev/null?|?grep?-q?"files"

[?$??-eq?0?]?&&?SessionDir=$(grep?"^[[:space:]]*session.save_path"?$AppIni?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")

CacheDir=$(grep?"^[[:space:]]*eaccelerator.cache_dir"?$AppIni?2>?/dev/null?|?awk?-F=?'{print?$2}'?|?sed?-e?'s/[[:space:]]//g'?-e?'s/"//g'?-e?"s/'//g")

AppUser=${AppUser:-nobody}

AppGroup=${AppGroup:-nobody}

AppPidDir=${AppPidDir:=$AppDir/var/run}

AppErrorLogDir=${AppErrorLogDir:-$AppDir/var/log}

AppSlowLogDir=${AppSlowLogDir:-$AppDir/var/log}

RemoveFlag=0

InstallFlag=0

#?獲取PID

fpid()

{

AppMasterPid=$(ps?ax?|?grep?"php-fpm:?master?process"?|?grep?-v?"grep"?|?awk?'{print?$1}'?2>?/dev/null)

AppWorkerPid=$(ps?ax?|?grep?"php-fpm:?pool"?|?grep?-v?"grep"?|?awk?'{print?$1}'?2>?/dev/null)

}

#?查詢狀態

fstatus()

{

fpid

if?[?!?-f?"$AppProg"?];?then

echo?"$AppName?未安裝"

else

echo?"$AppName?已安裝"

if?[?-z?"$AppMasterPid"?];?then

echo?"$AppName?未啟動"

else

echo?"$AppName?正在運行"

fi

fi

}

#?刪除

fremove()

{

fpid

RemoveFlag=1

if?[?-z?"$AppMasterPid"?];?then

if?[?-d?"$AppDir"?];?then

rm?-rf?$AppDir?&&?echo?"刪除?$AppName"

else

echo?"$AppName?未安裝"

fi

else

echo?"$AppName?正在運行"?&&?exit

fi

}

#?備份

fbackup()

{

Day=$(date?+%Y-%m-%d)

BackupFile=$App.$Day.tgz

if?[?-f?"$AppProg"?];?then

cd?$AppBase

tar?zcvf?$BackupFile?--exclude=var/log/*?--exclude=var/run/*?$App?--backup=numbered

[?$??-eq?0?]?&&?echo?"$AppName?備份成功"?||?echo?"$AppName?備份失敗"

else

echo?"$AppName?未安裝"

fi

}

#?安裝

finstall()

{

fpid

InstallFlag=1

if?[?-z?"$AppMasterPid"?];?then

test?-f?"$AppProg"?&&?echo?"$AppName?已安裝"

[?$??-ne?0?]?&&?fupdate?&&?fcpconf

else

echo?"$AppName?正在運行"

fi

}

#?拷貝配置

fcpconf()

{

cp?-vf?--backup=numbered?$ScriptDir/php.ini?$AppIni

cp?-vf?--backup=numbered?$ScriptDir/php-fpm.conf?$AppConf

}

#?更新

fupdate()

{

Operate="更新"

[?$InstallFlag?-eq?1?]?&&?Operate="安裝"

[?$RemoveFlag?-ne?1?]?&&?fbackup

cd?$AppSrcBase

test?-d?"$AppSrcDir"?&&?rm?-rf?$AppSrcDir

tar?Jxf?$AppSrcFile?||?tar?jxf?$AppSrcFile?||?tar?zxf?$AppSrcFile

cd?$AppSrcDir

./configure?\

"--prefix=$AppDir"?\

"--disable-all"?\

"--enable-fpm"?\

"--enable-opcache"?\

"--enable-pdo"?\

"--enable-session"?\

"--with-pcre-dir"?\

"--with-pdo-mysql=mysqlnd"

[?$??-eq?0?]?&&?make?&&?make?install

if?[?$??-eq?0?];then

echo?"$AppName?$Operate成功"

else

echo?"$AppName?$Operate失敗"

exit?1

fi

}

#?初始化

finit()

{

echo?"初始化?$AppName"

id?-gn?$AppGroup?&>?/dev/null

if?[?$??-ne?0?];?then

groupadd?$AppGroup?&&?echo?"新建?$AppName?運行組:$AppGroup"

else

echo?"$AppName?運行組:$AppGroup?已存在"

fi

id?-un?$AppUser?&>?/dev/null

if?[?$??-ne?0?];?then

useradd?-s?/bin/false?-g?$AppGroup?-M?$AppUser

if?[?$??-eq?0?];?then

echo?"新建?$AppName?運行用戶:$AppUser"

echo?"S0nGPhb693$"?|?passwd?--stdin?$AppUser?&>?/dev/null

fi

else

echo?"$AppName?運行用戶:$AppUser?已存在"

fi

echo?$AppPidDir?|?grep?-q?"^/"

if?[?$??-eq?1?];?then

AppPidDir=$AppDir/var/$AppPidDir

fi

if?[?!?-e?"$AppPidDir"?];?then

mkdir?-p?$AppPidDir?&&?echo?"新建?$AppName?PID文件存放目錄:$AppPidDir"

else

echo?"$AppName?PID文件存放目錄:$AppPidDir?已存在"

fi

echo?$AppErrorLogDir?|?grep?-q?"^/"

if?[?$??-eq?1?];?then

AppErrorLogDir=$AppDir/var/$AppErrorLogDir

fi

if?[?!?-e?"$AppErrorLogDir"?];?then

mkdir?-p?$AppErrorLogDir?&&?echo?"新建?$AppName?錯誤日志目錄:$AppErrorLogDir"

else

echo?"$AppErrorLogDir?錯誤日志目錄:$AppErrorLogDir?已存在"

fi

echo?$AppSlowLogDir?|?grep?-q?"^/"

if?[?$??-eq?1?];?then

AppSlowLogDir=$AppDir/$AppSlowLogDir

fi

if?[?!?-e?"$AppSlowLogDir"?];?then

mkdir?-p?$AppSlowLogDir?&&?echo?"新建?$AppName?慢日志目錄:$AppSlowLogDir"

else

echo?"$AppSlowLogDir?慢日志目錄:$AppSlowLogDir?已存在"

fi

printf?"\n"

if?[?-n?"$UploadTmpDir"?];?then

echo?$UploadTmpDir?|?grep?-q?"^/"

if?[?$??-eq?0?];?then

if?[?!?-e?"$UploadTmpDir"?];?then

mkdir?-p?$UploadTmpDir?&&?echo?"新建?$AppName?文件上傳臨時存儲目錄:$UploadTmpDir"

else

echo?"$AppName?文件上傳臨時存儲目錄:$UploadTmpDir?已存在"

fi

chown?-R?$AppUser:$AppGroup?$UploadTmpDir?&&?echo?"修改?$AppName?文件上傳臨時存儲目錄擁有者為?$AppUser,屬組為?$AppGroup"

printf?"\n"

fi

fi

if?[?-n?"$SessionDir"?];?then

echo?$SessionDir?|?grep?-q?"^/"

if?[?$??-eq?0?];?then

if?[?!?-e?"$SessionDir"?];?then

mkdir?-p?$SessionDir?&&?echo?"新建?$AppName?會話存儲目錄:$SessionDir"

else

echo?"$AppName?會話存儲目錄:$SessionDir?已存在"

fi

chown?-R?$AppUser:$AppGroup?$SessionDir?&&?echo?"修改?$AppName?會話存儲目錄擁有者為?$AppUser,屬組為?$AppGroup"

printf?"\n"

fi

fi

if?[?-n?"$CacheDir"?];?then

echo?$CacheDir?|?grep?-q?"^/"

if?[?$??-eq?0?];?then

if?[?!?-e?"$CacheDir"?];?then

mkdir?-p?$CacheDir?&&?echo?"新建?eAccelerator?緩存目錄:$CacheDir"

else

echo?"eAccelerator?緩存目錄:$CacheDir?已存在"

fi

chown?-R?$AppUser:$AppGroup?$CacheDir?&&?echo?"修改?eAccelerator?緩存目錄擁有者為?$AppUser,屬組為?$AppGroup"

fi

fi

sed?-i?"s|extension_dir.*$|extension_dir?=?\"$ExtensionDir\"|"?$AppIni

}

#?檢查配置

ftest()

{

$AppProg?-t?&&?echo?"$AppName?配置正確"?||?echo?"$AppName?配置錯誤"

}

#?啟動

fstart()

{

fpid

if?[?-n?"$AppMasterPid"?];?then

echo?"$AppName?正在運行"

else

$AppProg?-c?$AppIni?&&?echo?"啟動?$AppName"?||?echo?"$AppName?啟動失敗"

fi

}

#?停止

fstop()

{

fpid

if?[?-n?"$AppMasterPid"?];?then

kill?-INT?$AppMasterPid?&&?echo?"停止?$AppName"?||?echo?"$AppName?停止失敗"

else

echo?"$AppName?未啟動"

fi

}

#?重載配置

freload()

{

fpid

if?[?-n?"$AppMasterPid"?];?then

kill?-USR2?$AppMasterPid?&&?echo?"重載?$AppName?配置"?||?echo?"$AppName?重載配置失敗"

else

echo?"$AppName?未啟動"

fi

}

#?重啟

frestart()

{

fpid

[?-n?"$AppMasterPid"?]?&&?fstop?&&?sleep?1

fstart

}

#?終止進程

fkill()

{

fpid

if?[?-n?"$AppMasterPid"?];?then

echo?"$AppMasterPid"?|?xargs?kill?-9

if?[?$??-eq?0?];?then

echo?"終止?$AppName?主進程"

else

echo?"終止?$AppName?主進程失敗"

fi

else

echo?"$AppName?主進程未運行"

fi

if?[?-n?"$AppWorkerPid"?];?then

echo?"$AppWorkerPid"?|?xargs?kill?-9

if?[?$??-eq?0?];?then

echo?"終止?$AppName?工作進程"

else

echo?"終止?$AppName?工作進程失敗"

fi

else

echo?"$AppName?工作進程未運行"

fi

}

ScriptDir=$(cd?$(dirname?$0);?pwd)

ScriptFile=$(basename?$0)

case?"$1"?in

"install"???)?finstall;;

"update"????)?fupdate;;

"reinstall"?)?fremove?&&?finstall;;

"remove"????)?fremove;;

"backup"????)?fbackup;;

"init"??????)?finit;;

"start"?????)?fstart;;

"stop"??????)?fstop;;

"restart"???)?frestart;;

"status"????)?fstatus;;

"cpconf"????)?fcpconf;;

"test"??????)?ftest;;

"reload"????)?freload;;

"kill"??????)?fkill;;

*???????????)

echo?"$ScriptFile?install??????????????安裝?$AppName"

echo?"$ScriptFile?update???????????????更新?$AppName"

echo?"$ScriptFile?reinstall????????????重裝?$AppName"

echo?"$ScriptFile?remove???????????????刪除?$AppName"

echo?"$ScriptFile?backup???????????????備份?$AppName"

echo?"$ScriptFile?init?????????????????初始化?$AppName"

echo?"$ScriptFile?start????????????????啟動?$AppName"

echo?"$ScriptFile?stop?????????????????停止?$AppName"

echo?"$ScriptFile?restart??????????????重啟?$AppName"

echo?"$ScriptFile?status???????????????查詢?$AppName?狀態"

echo?"$ScriptFile?cpconf???????????????拷貝?$AppName?配置"

echo?"$ScriptFile?test?????????????????檢查?$AppName?配置"

echo?"$ScriptFile?reload???????????????重載?$AppName?配置"

echo?"$ScriptFile?kill?????????????????終止?$AppName?進程"

;;

esac

總結

以上是生活随笔為你收集整理的源码安装的php如何启动脚本,PHP源码编译安装管理常用脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。