Linux Shell实战之一 脚本安装Discuz

#!/bin/bash
#
#Target: Auto install Discuz!
#Date: 2015-05-02
#Author: Jacken
#QQ:654001593
#Version: 1.0
#You should check apr-devel,apr-util-devel,gcc,ncurses-devel,gcc-c++,libxml2,libxml2-devel...before exec script
#You can use yum to install!
#
#
#Httpd define path variable
H_FILES=httpd-2.2.29.tar.gz
H_FILES_DIR=httpd-2.2.29
H_URL=‘http://mirror.bit.edu.cn/apache/httpd/‘
H_PREFIX=‘/usr/local/apache‘
#
#
#Mysql define path variable
M_FILES=‘mysql-5.1.63.tar.gz‘
M_FILES_DIR=‘mysql-5.1.63‘
M_URL=‘http://downloads.mysql.com/archives/mysql-5.1/‘
M_PREFIX=‘/usr/local/mysql‘
#
#
#Php define path variable
P_FILES=‘php-5.3.28.tar.bz2‘
P_FILES_DIR=‘php-5.3.28‘
P_URL=‘http://mirrors.sohu.com/php/‘
P_PREFIX=‘/usr/local/php5‘
#
#
#Discuz define path variable
D_FILES=‘Discuz_X3.2_SC_UTF8.zip‘
D_URL=‘http://download.comsenz.com/DiscuzX/3.2/‘
D_DIR=‘/var/www/html‘
#
#
#Only for super user to execute!
if [ $UID -ne 0 ];then
echo ‘Error,Just for Super user.‘
exit 2
fi
#
#
#Only one arguement
if [ $# -ne 1 ];then
echo -e "\e[31mPlease exec $0 --help\e[0m"
exit 2
fi
#
#
#Must have arguement!
if [ -z "$1"  ];then
echo -e "\e[31mPlease exec $0 --help\e[0m"
exit 2
fi
#
#
#Help and Menu
if [[ "$1" == ‘--help‘ ]];then
echo -e ‘\e[31mPlease Select Install Menu follow:\e[0m‘
echo -e ‘\e[32m1  Install Apache\e[0m‘
echo -e‘\e[33m2  Install Mysql\e[0m‘
echo -e ‘\e[34m3  Configure Mysql\e[0m‘
echo -e ‘\e[35m4  Install Php\e[0m‘
echo -e‘\e[36m5  Integrate Php and Mysql\e[0m‘
echo -e ‘\e[37m6  Configure Discuz\e[0m‘
echo -e "\e[31mThe Usage: $0 1 or 2 or 3 or 4 or 5 or 6,Only one number\e[0m"
exit
fi
#
#
#Must correct option!
if [[ "$1" -lt 1 || "$1" -gt 6 ]];then
echo -e "\e[31mPlease exec $0 --help\e[0m"
exit 2
fi
##################################################################################################################
##################################################################################################################
#Install Apache
if [[ "$1" -eq "1" ]];then
  wget -c $H_URL$H_FILES && tar -zxf $H_FILES && cd $H_FILES_DIR && ./configure --prefix=$H_PREFIX && make && make install 
if [ "$?" -eq "0" ];then
echo -e ‘\e[32mApache Server Install Success!\e[0m‘
else
echo -e ‘\e[31mApache Server Install Failure!\e[0m‘
fi
exit
fi
######################
######################
#Install Mysql DB
if [[ "$1" -eq "2" ]];then
  wget -c $M_URL$M_FILES && tar -zxf $M_FILES && cd $M_FILES_DIR && ./configure --prefix=$M_PREFIX --enable-assembler && make && make install
if [ "$?" -eq "0" ];then
echo -e  ‘\e[32mMysql Server Install Success!\e[0m‘
else
echo -e ‘\e[31mMysql Server Install Failure!\e[0m‘
fi
exit
fi
######################
######################
#Configure Mysql
if [[ "$1" -eq "3" ]];then
\cp ${M_PREFIX}/share/mysql/my-medium.cnf  /etc/my.cnf && \cp ${M_PREFIX}/share/mysql/mysql.server /etc/init.d/mysqld &&  chkconfig --add mysqld && chkconfig --level 345 mysqld on
#Useradd mysql user
id mysql>/dev/null 2>&1 || useradd mysql
cd $M_PREFIX 
chown -R mysql.mysql $M_PREFIX && ${M_PREFIX}/bin/mysql_install_db --user=mysql > /dev/null 2>&1 &&
chown -R mysql var && /usr/local/mysql/bin/mysqld_safe --user=mysql& > /dev/null 2>&1 &&
if [ $? -eq 0 ];then
echo -e ‘\e[32mMysql Server Configure Success!\e[0m‘
else
echo -e ‘\e[31mMysql Server Configuue Failure!\e[0m‘
fi
exit
fi
######################
######################
#Install Php
if [[ "$1" -eq "4" ]];then
wget -c $P_URL$P_FILES && tar -jxf $P_FILES && cd $P_FILES_DIR && ./configure  --prefix=$P_PREFIX  --with-config-file-path=${P_PREFIX}/etc  --with-apxs2=${H_PREFIX}/bin/apxs --with-mysql=$M_PREFIX && make && make install 
if [ $? -eq 0 ];then
echo -e ‘\e[32mPhp Install Success!\e[0m‘
else
echo -e ‘\e[31mPhp Install Failure!\e[0m‘
fi
exit
fi
######################
######################
# Integrate Php and Mysql
if [[ "$1" -eq "5" ]];then
sed -i ‘311a AddType     application/x-httpd-php .php‘ $H_PREFIX/conf/httpd.conf &&
sed -i ‘s/index.html/index.php index.html/‘ $H_PREFIX/conf/httpd.conf
if [ $? -eq 0 ];then
echo -e ‘\e[32mIntegrate is Success!\e[0m‘
else
echo -e ‘\e[31mIntegrate is Failure!\e[0m‘
fi
$H_PREFIX/bin/apachectl start >/dev/null 2>&1
exit
fi
######################
######################
#Configure Discuz
if [[ "$1" -eq "6" ]];then
wget -c $D_URL$D_FILES && unzip $D_FILES -d $H_PREFIX/htdocs/ && cd $H_PREFIX/htdocs/ && \mv upload/* . && chmod -R o+w data/ config/ uc_server/ uc_client/
if [ $? -eq 0 ];then
echo -e ‘\e[32mConfigure Discuz Success!\e[0m‘ &&

#Create discuz database
$M_PREFIX/bin/mysql -uroot -e ‘create database discuz‘ &&

#Grant user password
$M_PREFIX/bin/mysql -uroot -e "grant all on *.* to [email protected]‘localhost‘ identified by ‘discuz‘" &&

#Flush privileges
$M_PREFIX/bin/mysql -uroot -e ‘flush privileges‘ 
if [ $? -eq 0 ];then
echo -e ‘\e[32mDiscuz Mysql Configure Success!\e[0m‘
else
echo -e ‘\e[31mDiscuz Mysql configure Failure!\e[0m‘
fi
######################
######################
#Start Apache Server
$H_PREFIX/bin/apachectl start>/dev/null 2>&1 && 
#Start Mysql Server
$M_PREFIX/bin/mysqld_safe --user=mysql&>/dev/null 2>&1
if [ $? -eq 0 ];then
echo -e ‘\e[32mApache and Mysql Start Success!\e[0m‘
else
echo -e ‘\e[31mApache and Mysql Start Failure!\e[0m‘
fi
else
echo -e ‘\e[31mConfigure Discuz Failure!\e[0m‘
fi
exit
fi

提醒:

运行脚本请先 #./Auto_Install_Discuz --help

如果要安装Discuz!尽量按编号顺序执行!

Server上的Selinux与Iptables是关闭的,并且环境包都已经yum安装完毕,包含但不限于以下软件

apr-devel,apr-util-devel,gcc,ncurses-devel,gcc-c++,libxml2,libxml2-devel..

当安装完成后便可以直接输入Server的IP直接安装Discuz论坛,如下:

注意这里要和脚本中定义的数据库名、授权的用户名、密码一致

执行安装!

安装完毕!

Done!

时间: 2024-10-08 09:57:15

Linux Shell实战之一 脚本安装Discuz的相关文章

Linux Shell 运维脚本功底积累

1.删除Linux远程用户连接会话 [[email protected] logs]# w 10:45:28 up 15 days, 16:23, 4 users, load average: 0.00, 0.00, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 - Sun21 4days 0.00s 0.00s -bash root pts/0 192.168.1.2 09:11 0.00s 0.07s 0

脚本安装Discuz论坛(shell + Python 实现自动化安装)

实验环境 1.shell 脚本:linux centos 7 系统2.Python shell 脚本:window 系统 3.其他:python selenium 模块,谷歌浏览器, 谷歌浏览器驱动.4.discuz 链接:https://pan.baidu.com/s/1vOwN_f56wJlIzauGrFoR1Q 提取码:mijf 实验步骤 1.上传discuz包到Linux系统/opt目录下 方法一:挂载 方法二:通过Xftp软件上传 2.编写脚本package.sh (可查看上一篇博客,

Linux Shell实战之二 一键安装Discuz_v2

#!/bin/bash # #Target: Auto install Discuz! #Date: 2015-05-07 #Author: Jacken #QQ:654001593 #Version: 2.0 #Note  #Define Function ,Add Select View,Auto Install ALL,More Stronger # # ####################################################################

linux shell每天一阅 -- 安装nginx

当然这个博客原代码是转载大神的... 自动安装Nginx脚本,采用case方式,选择方式,也可以根据实际需求改成自己想要的脚本mynginx.sh #!/bin/sh ###nginx install shell ###wugk 2012-07-14 ###PATH DEFINE SOFT_PATH=/data/soft/ NGINX_FILE=nginx-1.2.0.tar.gz DOWN_PATH=http://nginx.org/download/ if[ $UID -ne 0 ];the

Linux shell编写系统服务脚本

1 事先准备工作:源码安装apache .安装目录为/usr/local/httpd 2 3 任务需求: 4 1.可通过 service httpd start|stop|status|restart 命令对服务进行控制 5 6 2.httpd服务可开机自启动 7 8 思路: 9 1.start.stop操作可直接调用源码安装的httpd的控制程序apachectl 10 2.在启动服务时,建立httpd.lock文件:停止服务时删除 11 3.status操作检测httpd.lock文件是否存

Linux Shell之init脚本与activemq init脚本设计亮点分析

上一篇博文<Linux下Apache ActiveMQ5.9的安装配置与测试>中详细叙述了activemq的安装配置和如何利用java小程序测试activemq是否正常工作.此篇文章将继续剖解activemq中的一些精华内容,从activemq的init脚本说起.init(initialization)脚本又叫服务控制脚本,可以利用此脚本启动.停止.重新启动.重新载入配置.查看运行状态等等,通常init脚本的写法遵循System V init script的写法,能够用service命令对服务

Linux Shell 网络层监控脚本(监控包括:连接数、句柄数及根据监控反馈结果分析)

脚本监控: 获取最大句柄数的进程: 链接分析: 脚本片段: case "$handle" in 2) echo "The handle of the process : " echo " " handle | awk '{print $3 "\n" $5 "\n" $7 "\n" $9 "\n" $11 "\n"}' > temp for i

Linux Shell实战之三 自动修改为静态IP

本脚本主要用于修改IP地址为静态! #!/bin/bash # #Target: Auto Chmod IP Information! #Date: 2015-05-10 #Author: Jacken #QQ:654001593 #QQ Group:170544180 #Version: 1.0 #Only allow define variable shopt -s -o nounset #Define Variable ETHCONFIG='/etc/sysconfig/network-s

Linux shell实战(ipcs工具)

#!/bin/bash WHOAMI=`whoami` if [ $# -lt "1" ] then echo '[程序名] [操作对象]' exit 0 fi #需要两个参数,参数一:起始行,参数二:结束行,参数三:操作对象 function seddata { for numx in `ipcs | sed -n ${1},${2}p | sed -n /${WHOAMI}/p | awk '{print $2}'` do ipcrm ${3} ${numx} done } fun