网站首页 > 技术文章 正文
1、本地化web环境安装
#!/bin/sh
ROOT_DIR="/opt/software/"
DATE=`date +%Y%m%d`
alias cp='cp'
LOG="${ROOT_DIR}${DATE}_log"
[ ! -d /data/ ] && echo -e "\E[1;31m THERE IS NO '/data' \E[0m"| tee -a $LOG && exit 1
[ ! -d /opt/software ] && echo -e "\E[1;31m THERE IS NO '/opt/software' \E[0m" | tee -a $LOG && exit 1
echo "[$DATE --- START INSTALL LOCAL ]" | tee -a $LOG
function install_apache(){
cd ${ROOT_DIR};
tar -zxf httpd-2.2.11.tar.gz ;
cd httpd-2.2.11 ; ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite -with-mpm=prefork --enable-ssl > $ROOT_DIR/apaconfig.log 2>&1 && echo -e "\E[1;32mConfigure HTTP OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mERROR: Configure HTTP ERROR ..... \E[0m" | tee -a $LOG ;
echo -e "\E[1;31m ready to make httpd ................... \E[0m"
sleep 5 ;
make clean > /dev/null 2>&1 && make > $ROOT_DIR/apamake.log 2>&1 && make install >> $ROOT_DIR/apamake.log 2>&1 && echo -e "\E[1;32mInstall HTTP OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mERROR:Install HTTP Error ..... \E[0m" |tee -a $LOG ;
mkdir -p /data/logs
mkdir -p /data/www
cp ${ROOT_DIR}config/index.php /data/www/
cp ${ROOT_DIR}config/httpd.conf /usr/local/apache/conf/
cp ${ROOT_DIR}config/httpd-vhosts.conf /usr/local/apache/conf/extra/
echo -e "\E[1;31m[Function] install_apache OK \n\E[0m" | tee -a $LOG
}
function install_rsync(){
cp -a ${ROOT_DIR}config/rsyncd.conf /etc/rsyncd.conf ;
cp -a ${ROOT_DIR}config/rsync.passwd /etc/rsync.passwd ;
chmod 600 /etc/rsync.passwd ;
rsync --daemon;
count=`ps -efw | grep rsync | grep -v grep | wc -l`
if [ "$count" == "1" ]; then
echo -e "\E[1;32mRsync Start OK ..... \E[0m" | tee -a $LOG
else
echo -e "\E[1;31mERROR: Rsync Start Error ...EXIT.. \E[0m" | tee -a $LOG && exit 1;
fi
echo -e "\E[1;31m[Function] install_rsync OK \n\E[0m" | tee -a $LOG
}
function install_cronolog(){
cd ${ROOT_DIR};
tar xzf cronolog-1.6.2.tar.gz && cd cronolog-1.6.2 && ./configure > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 && echo -e "\E[1;32mCronolog Install Done ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mERROR:Cronolog Install Error ..... \E[0m" | tee -a $LOG;
echo -e "\E[1;31m[Function] install_cronolog OK \n\E[0m" | tee -a $LOG
}
function install_php_depend(){
cd ${ROOT_DIR};
tar xzf gettext-0.17.tar.gz && cd gettext-0.17 && ./configure > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 && echo -e "\E[1;32mInstall GETTEXT OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mInstall GETTEXT ERROR ..... \E[0m" | tee -a $LOG
cd ${ROOT_DIR};
tar xzf gd-2.0.35.tar.gz && cd gd-2.0.35 && ./configure > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 ; ./configure > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 && echo -e "\E[1;32mInstall GD OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mInstall GD ERROR ..... \E[0m" | tee -a $LOG
cd ${ROOT_DIR};
tar xzf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7 && ./configure > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 && echo -e "\E[1;32mInstall libmcrypt OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mInstall libmcrypt ERROR ..... \E[0m" |tee -a $LOG
cd ${ROOT_DIR};
mkdir -p /usr/local/man/man1/
tar xzf jpegsrc.v6b.tar.gz && cd jpeg-6b && ./configure > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 && echo -e "\E[1;32mInstall Jpeg OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mInstall Jpeg ERROR ..... \E[0m"| tee -a $LOG
cd ${ROOT_DIR};
tar xjf libpng-1.2.10.tar.bz2 && cd libpng-1.2.10 ;./configure > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 && echo -e "\E[1;32mInstall Libpng OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mInstall Libpng ERROR ..... \E[0m" | tee -a $LOG ;
ln -s /usr/lib64/libjpeg.so.62.0.0 /usr/lib/libjpeg.so
echo -e "\E[1;31m[Function] install_php_depend OK \n\E[0m" | tee -a $LOG
}
function install_php(){
cd ${ROOT_DIR};
tar -zxf php-5.2.6.tar.gz ; cp -r ${ROOT_DIR}jpeg-6b/* /opt/software/php-5.2.6/ext/gd/libgd/ ; cd php-5.2.6 ; ./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local/apache/bin/apxs --with-openssl --with-curl --enable-xml --with-mcrypt --with-ttf --enable-magic-quotes --enable-fastcgi --enable-mbstring --with-iconv --enable-mbstring --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-sysvsem > ${ROOT_DIR}phpconfig.log 2>&1 && echo -e "\E[1;32mConfigure PHP OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mERROR: Configure PHP ERROR ..... \E[0m" |tee -a $LOG;
sleep 5;
make > $ROOT_DIR/phpmake.log 2>&1 && make install > $ROOT_DIR/phpmake.log 2>&1 && echo -e "\E[1;32mPHP Install OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mERROR:PHP Install ERROR ..... \E[0m" | tee -a $LOG;
mkdir /usr/local/php/ext
cp -a ${ROOT_DIR}config/php.ini /usr/local/php/lib/ ;
echo -e "\E[1;31m[Function] install_php OK \n \E[0m" | tee -a $LOG
}
function install_php_memcached(){
cd ${ROOT_DIR};
[ -d "/usr/local/php" ] && tar xzf memcache-2.2.3.tgz && cd memcache-2.2.3 && /usr/local/php/bin/phpize > /dev/null 2>&1 && ./configure -enable-memcache -with-php-config=/usr/local/php/bin/php-config -with-zlib-dir > /dev/null 2>&1 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 && echo -e "\E[1;32mPHP_memcached Install OK ..... \E[0m" | tee -a $LOG || echo -e "\E[1;31mPHP_memcached Install ERROR ..... \E[0m" | tee -a $LOG;
cp /usr/local/php/lib/php/extensions/no-debug-non-zts/* /usr/local/php/ext/
echo -e "\E[1;31m[Function] install_php_memcached OK \n\E[0m" | tee -a $LOG
}
install_apache
install_rsync
install_cronolog
install_php_depend
install_php
install_php_memcached
2、检查服务器跑的进程情况
#!/bin/sh
for i in `cat iplist`
do
mysql=`ssh -A $i -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no "ps -ef | grep mysql | grep -v grep |wc -l"`
screen=`ssh -A $i -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no "ps -ef | grep -i screen | grep -v grep |wc -l"`
resin=`ssh -A $i -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no "ps -ef | grep resin | grep -v grep |wc -l"`
ruby=`ssh -A $i -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no "ps -ef | grep ruby | grep -v grep |wc -l"`
php=`ssh -A $i -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no "ps -ef | grep php | grep -v grep |wc -l"`
httpd=`ssh -A $i -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no "ps -ef | grep httpd | grep -v grep |wc -l"`
keeplive=`ssh -A $i -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no "ps -ef | grep keep | grep -v grep |wc -l"`
[ "$mysql" == "0" ] && [ "$screen" == "0" ] && [ "$resin" == "0" ] && [ "$ruby" == "0" ] && [ "$php" == "0" ] && [ "$httpd" == "0" ] && [ "$keeplive" == "0" ] && echo $i ok || echo $i bad >> /tmp/check_processlist.txt
done
3、进阶版本
checklist.sh
#!/bin/sh
[ -z $1 ] && echo "usage: sh checklist.sh iplist\" " && exit
for svrlist in `grep "^[^#]" $1`
do
echo -e "\033[35;2m>>Check [$svrlist]\033[0m"
remote=`echo $svrlist | awk -F : '{print $2}'`
ssh -q root@$remote "ps -ef | grep -i resin | grep -v grep" > /dev/null
if [ 0 -eq $? ]; then
echo -e " resin OK"
else
echo -e " resin \033[31;2mNO\033[0m"
fi
ssh -q root@$remote "ps -ef | grep httpd | grep -v grep" > /dev/null
if [ 0 -eq $? ]; then
echo -e " httpd OK"
else
echo -e " httpd \033[31;2mNO\033[0m"
fi
:<<REM
ssh -q root@$remote "ps -ef | grep -i mysql | grep -v grep" > /dev/null
if [ 0 -eq $? ]; then
echo -e " mysql OK"
else
echo -e " mysql \033[31;2mNO\033[0m"
fi
REM
ssh -q root@$remote "ps -ef | grep ruby | grep -v grep" > /dev/null
if [ 0 -eq $? ]; then
echo -e " ruby OK"
else
echo -e " ruby \033[31;2mNO\033[0m"
fi
ssh -q root@$remote "ps -ef|grep -i keeplive|grep -v grep" > /dev/null
if [ 0 -eq $? ]; then
echo -e " keeplive OK"
else
echo -e " keeplive \033[31;2mNO\033[0m"
fi
ssh -q root@$remote "ps -ef|grep -i screen|grep -v grep" > /dev/null
if [ 0 -eq $? ]; then
echo -e " screen OK"
else
echo -e " screen \033[31;2mNO\033[0m"
fi
done
猜你喜欢
- 2024-09-15 linux实战题(linux实验题目)
- 2024-09-15 解决Tomcat catalina.out不断膨胀,导致磁盘占用过大的问题
- 2024-09-15 运维服务篇:Nginx常用配置实例(虚拟主机/防盗链/日志分割)
- 2024-09-15 Apache2.4进阶:优化配置(优化配置的原则)
- 2024-09-15 Tomcat的catalina.out日志分割(二)
- 2024-09-15 如何处理生产环境Tomcat的catalina.out日志?
- 2024-09-15 Tomcat的catalina.out日志分割(一)
- 2024-09-15 Apache服务优化(apache调优和优化)
- 2024-09-15 实用 | 10分钟教你搭建一个嵌入式web服务器
- 2024-09-15 Apache配置文件详解(简述apache配置文件的结构及其关系)
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 556℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 504℃MySQL service启动脚本浅析(r12笔记第59天)
- 482℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 481℃启用MySQL查询缓存(mysql8.0查询缓存)
- 461℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 441℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 438℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)