php管理nginx虚拟主机shell脚本实例
发布时间:2020-12-13 02:10:56 所属栏目:PHP教程 来源:网络整理
导读:《:php管理nginx虚拟主机shell脚本实例》要点: 本文介绍了:php管理nginx虚拟主机shell脚本实例,希望对您有用。如果有疑问,可以联系我们。 PHP学习 本篇章节讲解php管理nginx虚拟主机shell脚本,供大家参考研究.具体分析如下: 使用php作为shell
《:php管理nginx虚拟主机shell脚本实例》要点: PHP学习本篇章节讲解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.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; } } 希望本文所述对大家的php程序设计有所帮助. 欢迎参与《:php管理nginx虚拟主机shell脚本实例》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |