php处理nginx虚拟主机shell脚本实例

您只怕感兴趣的篇章:

  • Ali云主机一键安装lamp、lnmp情形的shell脚本分享
  • Shell脚本完毕全自动修改IP、主机名等作用分享
  • NTFS权限设置以制止通过webshell遍历主机目录
  • nginx虚拟主机防webshell完美版
  • 虚拟主机封闭扼杀webshell提权!!!!!!!!!!
  • 运用PowerShell获取当前主机内部存款和储蓄器使用量和总量的不二等秘书诀
  • PowerShell脚本达成检查评定互联网内主机项目
  • php管理nginx虚拟主机shell脚本实例
  • Shell交互批量改换主机名的主意

复制代码 代码如下:

#!/usr/bin/php -q
<?php
 
start: fwrite(STDOUT,”===========Vhost Script===========\n”);
fwrite(STDOUT,”= Choose an operation \n”);
fwrite(STDOUT,”= 1.Create 2.Delete 3.Exit\n”);
fwrite(STDOUT,”==================================\n”);
$operate = trim(fgets(STDIN));
if ( $operate == 1  ){
fwrite(STDOUT,”Please Enter a  Domain Name:”);
$domain = trim(fgets(STDIN));
$path = “/home/sites/{$domain}”;
$nginx_conf = “/etc/nginx/sites/{$domain}”;
$nginx_template = “/etc/nginx/template/site_conf”;
$apache_conf = “/etc/httpd/conf/httpd.conf”;
$conf_str = “”;
 
//变量起头化
 
if( file_exists($path ) ) exit (“Domain Existed!\n”);
else mkdir($path,0700);
if(file_exists($nginx_conf)) exit (“Nginx Config file existed!\n”);
else {
    $conf_str = file_get_contents( $nginx_template );
}
 
//目录检查评定及布局文件拷贝
 
eval ( “\$conf_str = \”$conf_str\”;” );
 
$succes = file_put_contents($nginx_conf,$conf_str);
if( !$succes ) exit (“Write Config File Fauile!”);
else echo “Create Vhost success!\n”;
goto start;
//写入配置文件
}
else if ($operate == 2){
    $confs_dir = dir(“/etc/nginx/sites”);
    $confs_list = array();
    $count = 0;
    while ( false !== ( $conf_file = $confs_dir->read() ) ){
        if( $conf_file == “.” ) continue;
        if( $conf_file == “..” ) continue;
        if ( is_file( $confs_dir->path .”/”. $conf_file) ) {
            $confs_list[$count++] =  $conf_file;
        }
    }
    echo “Select a site by number which to delete:\n”;
    if( count( $confs_list ) >0 )
        foreach ( $confs_list as $k=>$v ){
            echo “{$k}. $v\n”;
        }
    $index = trim(fgets(STDIN));
    if( in_array ( $index,array_keys( $confs_list ) ) ){
        copy(  $confs_dir->path .”/”.
$confs_list[$index],”/etc/nginx/backup/{$confs_list[$index]}” );
        unlink ( $confs_dir->path .”/”. $confs_list[$index] );
        exec(“tar -zcf  /home/sites/{$confs_list[$index]}.tar.gz
/home/sites/”.$confs_list[$index] );
        exec(“rm -Rf /home/sites/”.$confs_list[$index]);
    }
    //删除钦定布置,并保存备份
}
else if( $operate == 3 ) {
    exit;
}
else {
 exit (“No Operation Selected!”);
}
?>

复制代码 代码如下:

效果是:主机在线显得银白,主机离线突显土黄结果。

done 

server {
listen 80;
server_name {$domain};
access_log /var/log/nginx/{$domain}_access_log;
error_log /var/log/nginx/{$domain}_error_log;
root {$path};
#不记录对站点Logo访问
location = /favicon.ico {
log_not_found off;
access_log off;
}
#不记录对robots.txt的拜访
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = / {
try_files @proxy;
}
location / {
index index.htm index.html index.php;
try_files \$uri @proxy;
}
#匹配html
location ~* \.(html|htm)$ {
expires 30s;
gzip off;
add_header Content-Encoding gzip;
try_files \$uri \$uri/
/wp-content/cache/supercache/\$http_host/\$request_uri/index.html.gz
@proxy;
}
#非常图片、脚本文件等
location ~*
\.(jpe?g|gif|png|ico|css|js|flv|swf|avi|zip|rar|svg|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mp3)$
{
expires 30d;
}
#传递给apache
location @proxy {
index index.htm index.html index.php;
proxy_pass   ;
include /etc/nginx/proxy.conf;
}
}

apache:2.2.22、2.4.2

由于局域网内主机多,VLAN也多,为常事能分晓在线主机的数量,编写脚本以验证在线主机。

你也许感兴趣的篇章:

  • Ali云主机壹键安装lamp、lnmp情状的shell脚本分享
  • NTFS权限设置以幸免通过webshell遍历主机目录
  • nginx虚拟主机防webshell完美版
  • shell脚本完结批量测试局域网主机是或不是在线
  • 虚拟主机封闭扼杀webshell提权!!!!!!!!!!
  • 行使PowerShell获取当前主机内部存款和储蓄器使用量和总的数量的主意
  • PowerShell脚本实现检查实验网络内主机项目
  • php管理nginx虚拟主机shell脚本实例
  • Shell交互批量改换主机名的方法

复制代码 代码如下:

Ali云主机壹键安装lamp,lnmp,自动安装脚本,由Ali云主机分享

#!/bin/bash
NETWORK=$1
for HOST in $(seq 1 254)
do
        ping -c 1 -w 1 $NETWORK.$HOST &>/dev/null && result=0 ||
result=1
                if [ “$result” == 0 ];then
                        echo -e “\033[32;1m$NETWORK.$HOST is up!
\033[0m”
                else
                        echo -e “\033[;31m$NETWORK.$HOST is
down!\033[0m”
                fi
done

#!/bin/sh 
#auto Change ip netmask gateway scripts 
#wugk 2012-12-17 
cat <<EOF
++++++++自动修改ip和主机名等有关新闻+++++++++
ETHCONF=/etc/sysconfig/network-scripts/ifcfg-eth0 
HOSTS=/etc/hosts 
NETWORK=/etc/sysconfig/network 
DIR=/data/backup/`date +%Y%m%d` 
NETMASK=255.255.255.0 
+++++++++————————-+++++++++++
EOF 
#Define Path  定义变量,能够依照实际景况修改
ETHCONF=/etc/sysconfig/network-scripts/ifcfg-eth0 
HOSTS=/etc/hosts 
NETWORK=/etc/sysconfig/network 
DIR=/data/backup/`date +%Y%m%d` 
NETMASK=255.255.255.0 
echo “================================================”   
echo 
#定义change_ip函数
function Change_ip () 
{  
#看清备份目录是还是不是留存,中括号前后都有空格,!叹号在shell表示相反的情趣# 
if 
   [ ! -d $DIR ];then 
   mkdir -p $DIR 
fi 
  echo “Now Change ip address ,Doing Backup Interface eth0” 
  cp $ETHCONF $DIR 
  grep “dhcp”  $ETHCONF 
#如下$?用来决断上三次操作的情景,为0,表示上2遍操作境况不错只怕成功#   
if 
  [ $? -eq 0 ];then 
#read -p 交互输入变量IPADD凯雷德,注冒号后有空格,sed -i 修改配置文件#
  read -p “Please insert ip Address:” IPADDR 
  sed -i ‘s/dhcp/static/g’ $ETHCONF 
#awk -F. 意思是以.号为分隔域,打字与印刷前叁列#
  echo -e “IPADDR=$IPADDR\nNETMASK=$NETMASK\nGATEWAY=`echo
$IPADDR|awk -F. ‘{print $1″.”$2”.”$3}’`.254″ >>$ETHCONF 
  echo “This IP address Change success !” 
else 
  echo -n  “This $ETHCONF is static exist ,please ensure Change Yes or
NO”: 
  read i 
fi 
if   
  [ “$i” == “y” -o “$i” == “yes” ];then 
  read -p “Please insert ip Address:” IPADDR 
count=(`echo $IPADDR|awk -F. ‘{print $1,$2,$3,$4}’`)  
 #概念数组, ${#count[@]}代表获取变量值总个数#
A=${#count[@]} 
 #while条件语句判定,个数是不是准确,不得法循环提醒输入,也得以用[0-9]来判断ip#
while  
  [ “$A” -ne “4” ] 
do 
  read -p “Please re Inster ip Address,example 192.168.0.11 ip”:
IPADDR 
count=(`echo $IPADDR|awk -F. ‘{print $1,$2,$3,$4}’`)  
A=${#count[@]} 
done 
 #sed -e 能够连接修改五个参数#
  sed -i -e ‘s/^IPADDR/#IPADDR/g’ -e ‘s/^NETMASK/#NETMASK/g’ -e
‘s/^GATEWAY/#GATEWAY/g’ $ETHCONF
 #echo -e \n为连续追加内容,并自动换行#
  echo -e “IPADDR=$IPADDR\nNETMASK=$NETMASK\nGATEWAY=`echo
$IPADDR|awk -F. ‘{print $1″.”$2”.”$3}’`.254″ >>$ETHCONF 
  echo “This IP address Change success !” 
else 
  echo “This $ETHCONF static exist,please exit” 
  exit $? 
fi 

上面是nginx的铺排模版

php:5.3.18、5.4.23、5.5.7

复制代码 代码如下:

#PS三貌似为菜单提醒新闻# 
PS3=”Please Select ip or hosts Menu”: 
#select为菜单选拔命令,格式为select $var in ..command.. do ….
done   
  select i in  “Change_ip” “Change_hosts” “Change_network” 

您可能感兴趣的稿子:

  • Ali云主机一键安装lamp、lnmp境况的shell脚本分享
  • Shell脚本达成自动修改IP、主机名等功能分享
  • NTFS权限设置以免止通过webshell遍历主机目录
  • nginx虚拟主机防webshell完美版
  • shell脚本达成批量测试局域网主机是或不是在线
  • 虚拟主机封杀webshell提权!!!!!!!!!!
  • 接纳PowerShell获取当前主机内存使用量和总的数量的方法
  • PowerShell脚本落成检验互连网内主机项目
  • Shell交互批量更换主机名的法门

四、一键安装包会将软件设置在/alidata目录下。

用法:./ping IP段    例如:./ping 192.168.0

用作一名Linux
SA,平日运转中过多地点都会用到剧本,而服务器的ip一般采取静态ip可能MAC绑定,当然后者相比较操作起来相对繁琐,而前者大家能够设置主机名、ip音信、网关等配置。修改成特定的主机名在保障和处理方面也比较便利。如下脚本用途为:修改ip和主机名等休戚相关新闻,能够依照实际须求修改,举壹反3!

复制代码 代码如下:

ftp:(yum/apt-get安装)

do 
#case 形式,一般用于多样尺码下的判断 
case $i in  
     Change_ip ) 
     Change_ip 
;; 
     Change_hosts ) 
     Change_hosts 
;; 
     Change_network ) 
     Change_network  
;; 
     *) 
     echo 
     echo “Please Insert $0:
Change_ip(1)|Change_hosts(2)|Change_network(3)” 
     echo 
;; 
esac 

仰望本文所述对大家的php程序设计有所协助。

php扩展:memcache、Zend Engine/ OPcache

发表评论

电子邮件地址不会被公开。 必填项已用*标注