ホームページ >バックエンド開発 >PHPチュートリアル >PHP 管理 nginx 仮想ホスト シェル スクリプト_PHP チュートリアル

PHP 管理 nginx 仮想ホスト シェル スクリプト_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:16:09895ブラウズ

phpはnginxの仮想ホストのシェルスクリプトを管理します

phpをシェルスクリプトとして使うととても便利です。もちろん、php スクリプトを使用して nginx 仮想ホストを管理することもできます。参考までに、作者のスクリプト ファイルを以下に示します。

代码如下

#!/usr/bin/php -q
 
start: fwrite(STDOUT,"===========Vhost Script===========\n");
fwrite(STDOUT,"= 操作を選択 \n");
fwrite(STDOUT,"= 1.作成 2.削除 3.終了\n");
fwrite(STDOUT,"==================================\n");
$operate = トリム(fgets(STDIN));
if ( $operate == 1 ){
fwrite(STDOUT,"ドメイン名を入力してください:");
$domain = トリム(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 ("ドメインが存在しました!\n");
else mkdir($path,0700);
if(file_exists($nginx_conf)) exit ("Nginx 構成ファイルが存在しました!\n");
他に{
    $conf_str = file_get_contents( $nginx_template );
}
 
//目录检测及構成文件贝
 
eval ( "\$conf_str = \"$conf_str\";" );
 
$succes = file_put_contents($nginx_conf,$conf_str);
if( !$succes ) exit ("構成ファイルの書き込みエラー!");
else echo "Vhost の作成が成功しました!\n";
スタートに移動;
//写入構成文集
}
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 == "." ) 続行;
        if( $conf_file == ".." ) 続行;
        if ( is_file( $confs_dir->path ."/". $conf_file) ) {
            $confs_list[$count++] = $conf_file;
        }
    }
    echo "削除するサイトを番号で選択してください:\n";
    if( count( $confs_list ) >0 )
        foreach ( $confs_list as $k=>$v ){
            echo "{$k}. $v\n";
        }
    $index = トリム(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 (「操作が選択されていません!」);
}?>

以下はnginxの設定テンプレートです

コードは次のとおりです

サーバー{
聞いてください80;
サーバー名 {$ドメイン};
access_log /var/log/nginx/{$domain}_access_log;
error_log /var/log/nginx/{$domain}_error_log;

ルート{$パス};

#サイトアイコンへの訪問を記録しないでください
場所 = /favicon.ico {
ログが見つかりませんでした;
access_log off;
}

#robots.txt への訪問を記録しないでください
場所 = /robots.txt {
すべてを許可します;
ログが見つかりませんでした;
access_log off;
}

場所 = / {
try_files @proxy;
}

場所 / {
インデックスindex.htmインデックス.htmlインデックス.php;
try_files \$uri @proxy;
}

#matchhtml
場所 ~* \.(html|htm)$ {
有効期限は 30 秒です;
gzip オフ;
add_header コンテンツ エンコーディング 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)$ {
有効期限は 30 日です;
}

#Apacheに渡す
場所 @proxy {
インデックスindex.htmインデックス.htmlインデックス.php;
proxy_pass http://127.0.0.1:81;
/etc/nginx/proxy.conf を含めます;
}
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/898889.html技術記事 PHP管理 nginx 仮想ホスト シェルスクリプト PHPをシェルスクリプトとして使用すると非常に便利です。もちろん、php スクリプトを使用して nginx 仮想ホストを管理することもできます。以下は著者の...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。