标题 | 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 ) 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!); }?> 下面是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 include /etc/nginx/proxy.conf; } } |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。