#!/bin/bash
# Check if user is root
if [ $(id -u) != “0” ]; then
echo “Error: You must be root to run this script, use sudo sh $0”
exit 1
fi
clear
echo “=========================================================================”
echo “Add Virtual Host for LNMP V0.9 , Written by Licess ”
echo “=========================================================================”
echo “LNMP is a tool to auto-compile & install Nginx+MySQL+PHP on Linux ”
echo “This script is a tool to add virtual host for nginx ”
echo “For more information please visit http://www.lnmp.org/”
echo “”
echo “=========================================================================”
if [ “$1” != “–help” ]; then
domain=”www.lnmp.org”
echo “Please input domain:”
read -p “(Default domain: www.lnmp.org):” domain
if [ “$domain” = “” ]; then
domain=”www.lnmp.org”
fi
if [ ! -f “/usr/local/nginx/conf/vhost/$domain.conf” ]; then
echo “===========================”
echo “domain=$domain”
echo “===========================”
else
echo “===========================”
echo “$domain is exist!”
echo “===========================”
fi
echo “Do you want to add more domain name? (y/n)”
read add_more_domainame
if [ “$add_more_domainame” == ‘y’ ]; then
echo “Type domainname,example(bbs.vpser.net forums.vpser.net luntan.vpser.net):”
read moredomain
echo “===========================”
echo domain list=”$moredomain”
echo “===========================”
moredomainame=” $moredomain”
fi
vhostdir=”/home/wwwroot/$domain”
echo “Please input the directory for the domain:$domain :”
read -p “(Default directory: /home/wwwroot/$domain):” vhostdir
if [ “$vhostdir” = “” ]; then
vhostdir=”/home/wwwroot/$domain”
fi
echo “===========================”
echo Virtual Host Directory=”$vhostdir”
echo “===========================”
echo “===========================”
echo “Allow Rewrite rule? (y/n)”
echo “===========================”
read allow_rewrite
if [ “$allow_rewrite” == ‘n’ ]; then
rewrite=”none”
else
rewrite=”other”
echo “Please input the rewrite of programme :”
echo “wordpress,discuz,typecho,sablog,dabr rewrite was exist.”
read -p “(Default rewrite: other):” rewrite
if [ “$rewrite” = “” ]; then
rewrite=”other”
fi
fi
echo “===========================”
echo You choose rewrite=”$rewrite”
echo “===========================”
echo “===========================”
echo “Allow access_log? (y/n)”
echo “===========================”
read access_log
if [ “$access_log” == ‘n’ ]; then
al=”access_log off;”
else
echo “Type access_log name(Default access log file:$domain.log):”
read al_name
if [ “$al_name” = “” ]; then
al_name=”$domain”
fi
alf=”log_format $al_name ‘\$remote_addr – \$remote_user [\$time_local] \”\$request\” ‘
‘\$status \$body_bytes_sent \”\$http_referer\” ‘
‘\”\$http_user_agent\” \$http_x_forwarded_for’;”
al=”access_log /home/wwwlogs/$al_name.log $al_name;”
echo “===========================”
echo You access log file=”$al_name.log”
echo “===========================”
fi
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo “”
echo “Press any key to start create virtul host…”
char=`get_char`
if [ ! -d /usr/local/nginx/conf/vhost ]; then
mkdir /usr/local/nginx/conf/vhost
fi
echo “Create Virtul Host directory……”
mkdir -p $vhostdir
touch /home/wwwlogs/$al_name.log
echo “set permissions of Virtual Host directory……”
chmod -R 755 $vhostdir
chown -R www:www $vhostdir
if [ ! -f /usr/local/nginx/conf/$rewrite.conf ]; then
echo “Create Virtul Host ReWrite file……”
touch /usr/local/nginx/conf/$rewrite.conf
echo “Create rewirte file successful,now you can add rewrite rule into /usr/local/nginx/conf/$rewrite.conf.”
else
echo “You select the exist rewrite rule:/usr/local/nginx/conf/$rewrite.conf”
fi
cat >/usr/local/nginx/conf/vhost/$domain.conf<<eof
$alf
server
{
listen 80;
server_name $domain$moredomainame;
index index.html index.htm index.php default.html default.htm default.php;
root $vhostdir;
include $rewrite.conf;
location ~ .*\.(php|php5)?$
{
try_files \$uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
$al
}
eof
echo “Test Nginx configure file……”
/usr/local/nginx/sbin/nginx -t
echo “”
echo “Restart Nginx……”
/usr/local/nginx/sbin/nginx -s reload
echo “=========================================================================”
echo “Add Virtual Host for LNMP V0.9 , Written by Licess ”
echo “=========================================================================”
echo “For more information please visit http://www.lnmp.org/”
echo “”
echo “Your domain:$domain”
echo “Directory of $domain:$vhostdir”
echo “”
echo “=========================================================================”
fi
时隔那么长时间,大家伙是不是以为阿福又跑路去BBQ了?然也,阿福虽然和不是BBQ总级别的,但是。实在是生活太累了。就连最好的同学的电话都没时间打。好吧,开玩笑。
这个似乎有点长,那么让我们慢慢来看。
首先是最先的一段。
#!/bin/bash
# Check if user is root
if [ $(id -u) != “0” ]; then
echo “Error: You must be root to run this script, use sudo sh $0″
exit 1
fi
这一段,最前面的东东,相比大家通过第一篇也有一定的了解把,那就是声明,这段程序是bash。
下面一句带#的就是解释了,check if user is root 的意思就是检查用户是否是root。嗯,阿福觉得,谷歌翻译一定适合学习脚本的童鞋。
下面就是一个if结构了。
if [$ (id-u)!=”0″]; then
echo”Error:You must be root to run this scripts,use sudu sh $0”
exit 1
fi
其中$这个符号依旧是代表着一个变量。而id则是你的用户id号id -u 如果是root的话,那么id-u就是0如果不是,那么就显示echo后面的双引号里面的东西。echo大家去谷歌翻译一下把,大概就是显示的意思。然后就是退出exit 1了。然后就是结束if。
clear
echo “=========================================================================”
echo “Add Virtual Host for LNMP V0.9 , Written by Licess ”
echo “=========================================================================”
echo “LNMP is a tool to auto-compile & install Nginx+MySQL+PHP on Linux ”
echo “This script is a tool to add virtual host for nginx ”
echo “For more information please visit http://www.lnmp.org/”
echo “”
echo “=========================================================================”
这一段最简单 clear就是清屏,记住就OK了。
echo就是在屏幕上打印。。大家去运行脚本的时候看看具体是什么样子的就知道这个echo的是怎么运行的了。总之上面的这玩意就是一行一行的显示出来而已。
嗯。下面就是大if结构了。。。所以阿福还是下次讲为秒。
未经允许不得转载:啊福主机 » [脚本解读]第二期:军哥的lnmp 添加绑定域名脚本(1)