手机
当前位置:查字典教程网 >编程开发 >php教程 >php管理nginx虚拟主机shell脚本实例
php管理nginx虚拟主机shell脚本实例
摘要:本文实例讲述了php管理nginx虚拟主机shell脚本,分享给大家供大家参考。具体分析如下:使用php作为shell脚本是一件很方便的事情...

本文实例讲述了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脚本实例】相关文章:

php中smarty模板条件判断用法实例

php遍历CSV类实例

PHP Hash算法:Times33算法代码实例

php生成随机密码的自定义函数

php操作MongoDB类实例

php生成zip文件类实例

Apache设置虚拟WEB

php结合安卓客户端实现查询交互实例

php实现简单的语法高亮函数实例分析

无数据库的详细域名查询程序PHP版(1)

精品推荐
分类导航