Home >Backend Development >PHP Tutorial >PHP management nginx virtual host shell script, nginxshell_PHP tutorial
It is very convenient to use php as a shell script. Of course, we can use php scripts to manage nginx virtual hosts. Below is the author’s script file for your reference
Copy the code as follows
#!/usr/bin/php -q
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 = "";
//Variable initialization
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 );
}
//Directory detection and configuration File copy
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;
//Write configuration file
}
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 )
for(www.111cn.net)each ( $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]);
}
//Delete the specified configuration and save the backup
}
else if( $operate == 3 ) {
exit;
}
else {
exit ("No Operation Selected!");
}?> ;
The following is the configuration template of nginx
Copy the code as follows
server {
listen 80;
server_name {$domain};
access_log /var/log/nginx/{$domain}_access_log;
error_log /var /log/nginx/{$domain}_error_log;
root {$path};
#Do not log access to site icons
location = /favicon.ico {
log_not_found off;
access_log off;
}
#Do not log access to 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;
}
#Match 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;
}
#Match images, script files, etc.
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;
}
#Passed to apache
location @proxy {
index index.htm index.html index.php;
proxy_pass http://127.0.0.1:81;
include /etc/nginx /proxy.conf;
}
}
from:http://www.111cn.net/phper/php-cy/68199.htm
This is your default virtual host.
For example, if your server IP address is 10.10.10.10, then you add
server {
server_name 10.10.10.10;
listen 80;
location / {
in the nginx configuration rewrite (.*) http://domain name you want to redirect;
}
}
Just restart your nginx.
This can be used to install DreamWeaver.... If you want to configure lnmp locally, just install phphow, it's one-click. Just write down the data during the installation process. After reading the documentation, you will be able to use it...as long as you have the basics.
You can also install Dreamweaver directly on the virtual host... The premise is that you do not need to debug locally. You must know that Dreamweaver is just a CMS. You have to design templates and web pages.