php管理nginx虚拟主机shell脚本实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-04-27 15:52:57 浏览: 评论:0
这篇文章主要介绍了php管理nginx虚拟主机shell脚本的实现方法,以实例形式讲述了通过PHP脚本管理nginx虚拟主机的方法,具有不错的借鉴价值,需要的朋友可以参考下
本文实例讲述了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 http://127.0.0.1:81;
- include /etc/nginx/proxy.conf;
- }
- }
希望本文所述对大家的php程序设计有所帮助。
Tags: nginx shell
- 上一篇:PHP 读取和编写 XML
- 下一篇:PHP调用wsdl文件类型的接口代码分享
相关文章
- ·php中file_get_contents()导致nginx出现504(2014-09-13)
- ·Nginx 开启gzip压缩(图片,文件,css)(2016-02-16)
- ·nginx和php执行请求的原理介绍(2020-01-07)
- ·nginx+php如何执行请求?工作原理介绍(2020-01-10)
- ·PHP、Nginx、Apache中禁止网页被iframe引用的方法(2021-02-09)
- ·PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径(2021-03-03)
- ·将PHP从5.3.28升级到5.3.29时Nginx出现502错误(2021-05-25)
- ·PHP脚本监控Nginx 502错误并自动重启php-fpm(2021-05-26)
- ·php nginx 实时输出的简单实现方法(2021-08-31)
- ·php和nginx交互实例讲解(2021-12-22)
- ·解决php接收shell返回的结果中文乱码问题(2020-08-29)
- ·php调用shell的方法(2021-04-24)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)