• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php管理nginx虚拟主机shell脚本实例_PHP

php 搞代码 4年前 (2022-01-25) 11次浏览 已收录 0个评论

本文实例讲述了php管理nginx虚拟主机shell脚本,分享给大家供大家参考。具体分析如下:

使用php作为shell脚本是一件很方便的事情。理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考:

#!/usr/bin/php -q<br /><?php<br /> <br />start: fwrite(STDOUT,"===========Vhost Script===========\n");<br />fwrite(STDOUT,"= Choose an operation \n");<br />fwrite(STDOUT,"= 1.Create 2.Delete 3.Exit\n");<br />fwrite(STDOUT,"====<a>2本文来源gao*daima.com搞@代#码&网6</a><pre>搞gaodaima代码

==============================\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 {<br />listen 80;<br />server_name {$domain};<br />access_log /var/log/nginx/{$domain}_access_log;<br />error_log /var/log/nginx/{$domain}_error_log;<br />root {$path};<br />#不记录对站点图标访问<br />location = /favicon.ico {<br />log_not_found off;<br />access_log off;<br />}<br />#不记录对robots.txt的访问<br />location = /robots.txt {<br />allow all;<br />log_not_found off;<br />access_log off;<br />}<br />location = / {<br />try_files @proxy;<br />}<br />location / {<br />index index.htm index.html index.php;<br />try_files \$uri @proxy;<br />}<br />#匹配html<br />location ~* \.(html|htm)$ {<br />expires 30s;<br />gzip off;<br />add_header Content-Encoding gzip;<br />try_files \$uri \$uri/ /wp-content/cache/supercache/\$http_host/\$request_uri/index.html.gz @proxy;<br />}<br />#匹配图片、脚本文件等<br />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)$ {<br />expires 30d;<br />}<br />#传递给apache<br />location @proxy {<br />index index.htm index.html index.php;<br />proxy_pass   http://127.0.0.1:81;<br />include /etc/nginx/proxy.conf;<br />}<br />}

希望本文所述对大家的php程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php管理nginx虚拟主机shell脚本实例_PHP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址