设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php管理nginx虚拟主机shell脚本

发布时间:2022-02-23 14:38 所属栏目:121 来源:互联网
导读:下文整理了一段php管理nginx虚拟主机shell脚本,希望这段脚本能帮助到各位同学,使用php作为shell脚本是一件很方便的事情,理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考,代码如下: #!/usr/bin/php -q ?php start: fwrit
  下文整理了一段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]);
      } //开源软件:Cuoxin.com
      //删除指定配置,并保存备份
  }
  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;
  }
  }

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读