以下 脚本 文件供各位参考
<?php start: fwrite(STDOUT,"===========Vhost Script===========n"); fwrite(STDOUT,"= Choose an operation n"); fwrite(STDOUT,"= 1.Create 2.Delete 3.Exitn"); 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}. $vn"; } $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!"); }?>
下面是nginx的配置模版
server {
listen 80;
server_name {$domain};
access_log /var/log/nginx/{$domain}_access_log;
error_log /var/log/nginx/{$domain}_error_log;root {$path};
#不记录对站点图标访问
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 http://127.0.0.1:81;
include /etc/nginx/proxy.conf;
}
}