php管理nginx虛擬主機(jī)shell腳本
來(lái)源:易賢網(wǎng) 閱讀:771 次 日期:2014-12-09 11:07:50
溫馨提示:易賢網(wǎng)小編為您整理了“php管理nginx虛擬主機(jī)shell腳本”,方便廣大網(wǎng)友查閱!

使用php作為shell腳本是一件很方便的事情。理所當(dāng)然,我們可以使用php腳本來(lái)管理 nginx虛擬主機(jī),下面是筆者的 腳本 文件供各位參考

代碼如下:

#!/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 );

}


//目錄檢測(cè)及配置文件拷貝


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]);

}

//刪除指定配置,并保存?zhèn)浞?/P>

}

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};

#不記錄對(duì)站點(diǎn)圖標(biāo)訪問(wèn)

location = /favicon.ico {

log_not_found off;

access_log off;

}

#不記錄對(duì)robots.txt的訪問(wèn)

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;

}

}

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:php管理nginx虛擬主機(jī)shell腳本
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)