·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> php管理nginx虚拟主机shell脚本

php管理nginx虚拟主机shell脚本

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php管理nginx虚拟主机shell脚本

使用php作为shell脚本是一件很方便的事情。理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考

代码如下 复制代码 #!/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 ) for(www.111cn.net)each ( $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!");}?>

下面是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;}

#匹配htmllocation ~* \.(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;}

#传递给apachelocation @proxy {index index.htm index.html index.php;proxy_pass http://127.0.0.1:81;include /etc/nginx/proxy.conf;}} from:http://www.111cn.net/phper/php-cy/68199.htm