12. 为LAMP的网站增加项目

一台运行LAMP环境的服务器,上面有几十个网站,每一个网站都分配了单独的虚拟主机和MySQL库。目前网站的数量还在持续增加,每增加一个网站需要做的操作如下:

1)新增一个Apache虚拟主机;

2)新增一个ftp账号对该网站目录有管理权限;

3)新增一个库;

4)新增一个数据库用户管理新增的库。

由于这些操作具有非常高的重复度,所以适合用shell脚本实现。

参考脚本如下:

#!/bin/bash
#在LAMP环境下新增站点,包括Apache配置、FTP增加用户、MySQL增加库及用户

#网站目录
webdir=/data/wwwroot

#FTP的虚拟用户配置文件目录
ftpuserdir=/etc/vsftpd/vuuser

#FTP虚拟用户密码文件
ftpuserfile=/root/login

#mysql命令行登陆root
mysqlc="/usr/local/mysql/bin/mysql -uroot -pjk1hYUcnt6"

#Apache虚拟主机配置文件
httpd_config_f="/usr/local/apache/conf/extra/httpd-vhosts.conf"

#定义增加MySQL库和用户的函数
add_mysql_user()
{
    mysql_p=`mkpasswd -s 0 -l 12`       #生成随机密码
    
    #将密码保存到临时文件里,这里的 $pro 为自定义的项目名字
    echo "$pro $mysql_p" >/tmp/$pro.txt
    
    #将创建用户并授权的命令传递给mysql
    $mysqlc << EOF
create database $pro;
grant all on $pro.* to "$pro"@'127.0.0.1' identified by "$mysql_p";
EOF
}

#定义增加FTP用户的函数
add_ftp_user()
{
    ftp_p=`mkpasswd -s 0 -l 12`
    echo "$pro" >> $ftpuserfile
    echo "$ftp_p" >> $ftpuserfile
    
    #将用户、密码文件转换成密码db文件
    db_load -T -t hash -f $ftpuserfile /etc/vsftpd/vsftpd_login.db
    cd $ftpuserdir
    
    #这里的aaa表示之前的项目文件,作为配置模板
    cp aaa $pro
    sed -i "s/aaa/$pro/" $pro
    
    /etc/init.d/vsftpd restart      #重启vsftpd服务
}

#定义增加Apache虚拟主机的函数
config_httpd()
{
    mkdir $webdir/$dom          #增加网站根目录,$dom为自定义的域名
    chown vsftpd:vsftpd $webdir/$dom
    
    cat >> $httpd_config_f << EOF
<VirtualHost *:80>
    DocumentRoot $webdir/$dom
    ServerName $dom
    <Directory $webdir/$dom>
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
EOF
    
    /usr/local/apache/bin/apachectl graceful       #重载apache服务
}

read -p "input the project name: " pro       #自定义项目名
read -p "input the domain: " dom         #自定义域名

add_mysql_user
add_ftp_user
config_httpd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值