SHELL wordpress.sh

echo -e "33[5;32m 主人一起开始愉快的安装lamp和wordpress吧 33[0m"
echo -e "33[32m ------------------请先关闭防火墙-------------------- 33[0m"
echo -e "33[32m 1 修改源为阿里云 33[0m"
echo -e "33[32m 2 一键安装lamp 33[0m"
echo -e "33[32m 3 一键安装wordpress 33[0m"
echo -e "33[32m 4 一键卸载lamp 33[0m"
echo -e "33[32m 5 一键卸载wordpress 33[0m"
echo -e "33[32m ---------------------------------------------------- 33[0m"
read a

YUM_INSTALL=" yum install -y "
YUM_REMOVE=" yum remove -y "
MYSQL_SHELL=" mysql -uroot -proot -e " # 不进入mysql执行命令的方式
A_apache="httpd"
M_mysql="mysql-server"
P_php="php php-mysql php-gd php-yingimap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath"

# ############################ 工具函数 ############################
source_aliyun(){
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
is_install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache
}

# 判断命令是否安装,未安装则安装
is_install (){
$1
if [ $? -ne 0 ]
then
echo -e "33[32m $1命令未安装,正在安装 33[0m"
$YUM_INSTALL $1
fi
}

# ############################ 1.安装lamp ############################

# 安装apache
install_apache(){
$YUM_INSTALL ${A_apache}
service httpd start
echo -e "33[5;32m 主人您好,apache安装完毕 33[0m"
}

# 安装mysql
install_mysql(){
$YUM_INSTALL ${M_mysql}
service mysqld start
echo -e "33[5;32m 主人您好,mysql安装完毕 33[0m"
}

# 安装php
install_php(){
$YUM_INSTALL ${P_php}
echo -e "33[5;32m 主人您好,php安装完毕 33[0m"
}

# 安装lamp
install_lamp(){
# mysql未卸载则安装
isremove_mysql=` ps -ef | grep mysql | wc -l `
if [ $isremove_mysql -eq 1 ];then
echo -e "33[5;32m 主人您好,lamp不存在,开始安装 33[0m"
install_apache
install_mysql
install_php
echo -e "33[5;32m 主人您好lamp安装完毕,如果apache启动失败请记得手动重启apache哦 33[0m"
service httpd restart

else
echo -e "33[5;32m lamp已存在,无需安装 33[0m"
fi


}

# 测试lamp是否搭建成功
test_parse_php(){
cd /var/www/html/
cat <<EOF >info.php
<?php
phpinfo();
?>
EOF
}

# 卸载lamp
uninstall_lamp(){
# mysql未卸载则安装
isremove_mysql=` ps -ef | grep mysql | wc -l `
if [ $isremove_mysql -eq 1 ];then
echo -e "33[5;32m 主人您好,lamp不存在,无需卸载 33[0m"
else
$YUM_REMOVE httpd mysql php*
echo -e "33[5;32m 主人你不玩我了吗 33[0m"
fi


}

# ############################ 2.搭建wordpress ############################

# 安装wordpress
set_wordpress(){
cd /var/www/html/

which wget
if [ $? -ne 0 ] # 判断wget是否安装
then
$YUM_INSTALL wget
fi

wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.zip # 源码下载地址可能会随着版本的变化发生改变
is_install unzip
unzip wordpress-4.9.4-zh_CN.zip

# 配置wordpress权限
chown -R apache:apache wordpress # 把wordpres目录的全部权限给apaceh用户
chmod -R 755 wordpress

# 修改源码文件
cd wordpress
cp wp-config-sample.php wp-config.php
sed -i 's#database_name_here#wp_db#g' wp-config.php
sed -i 's#username_here#wp_root#g' wp-config.php
sed -i 's#password_here#wp_root#g' wp-config.php
}

# 配置mysql
set_mysql(){
# 设置root用户密码
${MYSQL_SHELL} "create database wp_db";
${MYSQL_SHELL} "grant all on wp_db.* to 'wp_root'@'localhost' identified by 'wp_root'";
}

# 配置apache
set_apache(){
cat <<EOF > .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
EOF
chmod 664 .htaccess # 修改文件权限

sed -i '555,555s#None#All#g' /etc/httpd/conf/httpd.conf
/etc/init.d/httpd restart
}

# 搭建wordpress
install_wordpress(){
cd /var/www/html/
isremove_mysql=` ps -ef | grep mysql | wc -l `

if [ $isremove_mysql -ne 1 ];then

if test -d wordpress*;then
echo -e "33[5;32m 主人您好,wordpress 已存在,无需安装 33[0m"
else
set_wordpress
set_mysql
set_apache
echo -e "33[5;32m 浏览器访问 http://ip/wordpress/
会跳出一个安装界面
界面的数据库名:wp_db,数据库账号: wp_root、密码: wp_root
网站后台账号:用户名,密码,需要额外设置
33[0m"
fi

else
echo -e "33[32m 主人您好,请先搭建lamp 33[0m"
fi
}


# 卸载wordpress
uninstall_wordpress (){
cd /var/www/html/
if test -d wordpress*;then
rm -rf wordpress*

# mysql未卸载则安装
isremove_mysql=` ps -ef | grep mysql | wc -l `
if [ $isremove_mysql -ne 1 ];then
${MYSQL_SHELL} drop database wp_db;
fi

echo -e "33[5;32m 主人您好,wordpress 卸载完毕 33[0m"
else
echo -e "33[5;32m 主人您好,wordpress 不存在,无需卸载 33[0m"
fi


}

# ############################ 主逻辑 ############################
case $a in

1)
source_aliyun
;;
2)
install_lamp
test_parse_php
;;
3)
install_wordpress
;;
4)
uninstall_lamp
;;

5)
uninstall_wordpress
;;
*)
echo -e "33[5;32m 请输入正确的数字[1-5]: 33[0m"
exit 1
;;
esac


</code></pre>

原文地址:https://www.cnblogs.com/herosyuan/p/9958968.html