Browse Source

Bringing all scatterd scripts at one place.

A lot of refracting will be required :|
old-stable
Rahul Bansal 13 years ago
parent
commit
347297c152
  1. 12
      README.md
  2. 78
      config.php
  3. 153
      create.php
  4. 24
      example.com
  5. 55
      helper.php
  6. 156
      move.php
  7. 84
      remove.php
  8. 11
      test.php
  9. 99
      touch.php
  10. 65
      zzz/make_site.sh
  11. 35
      zzz/make_vhost.sh
  12. 3
      zzz/restart.sh

12
README.md

@ -1,4 +1,14 @@
rtAdmin rtAdmin
======= =======
Web-based Administration for WordPress sites running on Nginx, PHP, MySQL Admin tools for Nginx based wordpress sites management.
This is work in PROGRESS. This will break things on your end most likely!
===
Notes:
1. Folder /zzz contains some shell scripts by Pragati Sureka (a geekiest rtCamper)

78
config.php

@ -0,0 +1,78 @@
<?php
/* This will have configuration */
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
/**
* local environment values
*/
$local_env['host'] = '191.168.1.199'; #ip of machine, this will be added to nginx config
$local_env['webroot'] = '/var/www'; #all websites will go hear
$local_env['htdocs'] = 'htdocs'; #name of directory which will act as document-root for a site
$local_env['logs'] = 'logs'; #name of directory which will store log files for a site
$local_env['nginx_dir'] = '/etc/nginx'; #nginx conf dir
$local_env['nginx_user'] = 'www-data'; #nginx user
$local_env['nginx_group'] = 'www-data'; #nginx group
$local_env['nginx_dir_sites_avilable'] = '/etc/nginx/sites-available'; #sites-avaialble
$local_env['nginx_dir_sites_enabled'] = '/etc/nginx/sites-enabled'; #sites-enable
$local_env['default_conf'] = 'example.com'; #example configuration for wordpress
$local_env['default_domain'] = 'example.com'; #default domain in example.com
$local_env['mysql_host'] = 'localhost'; #mysql host
$local_env['mysql_user'] = 'USER'; #mysql user
$local_env['mysql_pass'] = 'PASS'; #mysql pass
$local_env['wp_latest'] = 'latest.zip'; #latest WordPress zip file
/**
* remote env - in scenario where you want to use move.php
* assumes - (1) remote DB allows remote connection
* (2) nginx & sites directory-structure is same
*/
$remote_env['webroot'] = '/var/www'; //remote webroot - assuming similar directory sturcture
$remote_env['host'] = 'REMOTE_DBHOST'; //this is
$remote_env['ssh_user'] = 'REMOTE_DBUSER';
$remote_env['ssh_pass'] = 'REMOTE_DBPASS';
/*** YOU CAN IGNORE ANYTHING BELOW THIS LINE **/
$hello = <<<EOF
.----------------. .----------------. .----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
| | _______ | || | _________ | || | ______ | || | __ | || | ____ ____ | || | ______ | |
| | |_ __ \ | || | | _ _ | | || | .' ___ | | || | / \ | || ||_ \ / _|| || | |_ __ \ | |
| | | |__) | | || | |_/ | | \_| | || | / .' \_| | || | / /\ \ | || | | \/ | | || | | |__) | | |
| | | __ / | || | | | | || | | | | || | / ____ \ | || | | |\ /| | | || | | ___/ | |
| | _| | \ \_ | || | _| |_ | || | \ `.___.'\ | || | _/ / \ \_ | || | _| |_\/_| |_ | || | _| |_ | |
| | |____| |___| | || | |_____| | || | `._____.' | || ||____| |____|| || ||_____||_____|| || | |_____| | |
| | | || | | || | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------' '----------------' '----------------'
EOF;
echo $hello;
/*** OK enough now. This is second & last time I am reminding YOU CAN IGNORE ANYTHING BELOW THIS LINE **/
/* Useful test to avoid time-wastage */
if($local_env['mysql_user'] == 'USER' || $local_env['mysql_pass'] == 'PASS'){
die("Please enter mysql username & password before running this script.");
}
if(file_exists($local_env['wp_latest'])){
echo "Latest WordPress is not present at " . $local_env['wp_latest'] ;
echo "Let me try downloading it…\n";
$command = "wget http://wordpress.org/latest.zip -O " . $local_env['wp_latest'] ;
if(file_exists($local_env['wp_latest'])){
die ("this is second time I'm checking for WordPress but its missing at path " . $local_env['wp_latest'] .
"\n Please fix it first and then try running scripts here");
}
}
?>

153
create.php

@ -0,0 +1,153 @@
<?php
/*
CREATE A SITE WITH WORDPRESS
*/
include_once('config.pgp');
/**
* prompt user to eneter domain name
*/
echo "Enter a domain name which needs to be migrated...\n";
$usr_domain = (trim(fgets(STDIN)));
echo "You have entered :: $usr_domain \n";
/*
* Set domain environment values
*/
$domain['name'] = $usr_domain;
$domain['conf'] = $local_env['nginx_dir_sites_avilable'] . '/' . $domain['name'] ;
$domain['rootdir'] = $local_env['webroot'] . '/' . $domain['name'] ;
$domain['htdocs'] = $domain['rootdir'] . '/' . $local_env['htdocs'] ;
$domain['logs'] = $domain['rootdir'] . '/' . $local_env['logs'] ;
/**
* Check if domain config file already exists
*/
if (file_exists($domain['conf'])) {
echo "\nConfiguration files for domain '" . $domain['name'] . "'already exists :: " . $domain['conf'];
echo "\nDo you want to overwrite previous configuration? [Y/N] (default=Y)";
if (in_array(strtolower(fgets(STDIN)), array('n', 'no'))) {
die("\nYou choose to terminate this script! Bye-Bye!!! \n");
}
}
/**
* At this point - either domain config file doesn't exist or user showed interest in overwriting it
* In either case...
* Create nginx conf for $domain in /etc/nginx/sites-available/$domain
* TODO :: Provide options to add supercache and/or w3total cache rules
*/
/**
* Create config file
*/
$nginx_conf = file_get_contents($local_env['default_conf']);
$nginx_conf = str_replace($local_env['default_domain'], $domain['name'], $nginx_conf);
file_put_contents($domain['conf'], $nginx_conf);
//Error Check - if config file is created successfully or not
if (!file_exists($domain['conf'])) {
die("\nError encountered while creating " . $domain['conf']);
}
/**
* Linking config file
*/
echo "\nCreating Symbolic Link..\n";
$command = "sudo ln -s " . $domain['conf'] . " " . $local_env['nginx_dir_sites_enabled'];
$result = system($command);
//Error check - if linking config file succeed
if ($result != '') {
die("\nError encountered while creating script. Please check if file '" . $domain['conf'] . "'is created or not!\n");
}
//Go Ahead.
echo "Nginx configuration for '" . $domain['name'] . "' is created successfully";
/**
* Create webroot dirs for new domain
*/
//create dirs
$result = system("mkdir " . $domain['rootdir']);
$result = system("mkdir " . $domain['htdocs']);
$result = system("mkdir " . $domain['logs']);
//create log files
$result = system("touch " . $domain['logs'] . "/access.log");
$result = system("touch " . $domain['logs'] . "/error.log");
//Error check
if ($result != '') {
die("\nError encountered while creating websites directories & files for " . $domain['name'] . "\n");
}
/**
* extract wordpress in new webroot dir
*/
$command = "unzip -q -o " . $local_env['wp_latest'] . " -d " . $domain['htdocs'] . " > /dev/null";
$result = system($command);
//Error check
if ($result != '') {
die("\nError encountered while extracting latest wordpress in directory " . $domain['rootdir'] . "\n");
}
$command = "mv " . $domain['htdocs'] . "/wordpress/* " . $domain['htdocs'] . "/";
echo "\n COMMAND :: $command \n";
$result = system($command);
//Error check
if ($result != '') {
die("\nError encountered while moving latest wordpress in directory " . $domain['rootdir'] . "\n" . $result);
}
/**
* MySQL Creation
*/
$command = "mysql -h " . $local_env['mysql_host'] . " -u " . $local_env['mysql_user'] . " -p" . $local_env['mysql_pass'] . " -e 'create database `'" . $domain['name'] . "'` '";
$result = system($command);
/*
* Create wp-config.php
*/
$wp_config_sample = $domain['htdocs'] . "/wp-config-sample.php";
$command = "sed s/database_name_here/{$domain['name']}/ $wp_config_sample | sed s/username_here/{$local_env['mysql_user']}/ | sed s/password_here/{$local_env['mysql_pass']}/ > {$domain['htdocs']}/wp-config.php";
$result = system($command);
/**
* Chown
*/
$command = "chown -R " . $local_env['nginx_user'] . ":" . $local_env['nginx_group'] . " " . $domain['rootdir'];
echo "\n COMMAND :: $command \n";
$result = system($command);
//Error check
if ($result != '') {
die("\nError encountered while charging owner of " . $domain['rootdir'] . "\n" . $result);
}
/**
* ALL SEENS WELL - Restart nginx
*/
echo "\n Relaoding nginx configuration...\n\n";
system('service nginx reload');
/**
* THE END
*/
//just echo URL for new domain like http://$domain
//user will click it and verify if its working fine! ;-)
echo $domain['name'] . " Successfully created\n\n";
?>

24
example.com

@ -0,0 +1,24 @@
server{
server_name example.com;
listen 80;
access_log /var/www/example.com/logs/access.log main ;
error_log /var/www/example.com/logs/error.log;
root /var/www/example.com/htdocs;
index index.php index.html index.htm;
## PHP with FATSCGI
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
#root dir
location / {
autoindex on;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
}

55
helper.php

@ -0,0 +1,55 @@
<?php
/**
* Helper file contains function to parse a given file and return all DEFINEed values in input file
* @ref - http://stackoverflow.com/questions/645862/regex-to-parse-define-contents-possible
*/
function is_constant($token) {
return $token == T_CONSTANT_ENCAPSED_STRING || $token == T_STRING ||
$token == T_LNUMBER || $token == T_DNUMBER;
}
function strip($value) {
return preg_replace('!^([\'"])(.*)\1$!', '$2', $value);
}
function get_defines($filename) {
$wpconf = file_get_contents($filename);
$tokens = token_get_all($wpconf);
$token = reset($tokens);
while ($token) {
if (is_array($token)) {
if ($token[0] == T_WHITESPACE || $token[0] == T_COMMENT || $token[0] == T_DOC_COMMENT) {
// do nothing
} else if ($token[0] == T_STRING && strtolower($token[1]) == 'define') {
$state = 1;
} else if ($state == 2 && is_constant($token[0])) {
$key = $token[1];
$state = 3;
} else if ($state == 4 && is_constant($token[0])) {
$value = $token[1];
$state = 5;
}
} else {
$symbol = trim($token);
if ($symbol == '(' && $state == 1) {
$state = 2;
} else if ($symbol == ',' && $state == 3) {
$state = 4;
} else if ($symbol == ')' && $state == 5) {
$defines[strip($key)] = strip($value);
$state = 0;
}
}
$token = next($tokens);
}
return $defines;
}
//print_r(get_defines('/var/www/cp.rtcamp.info/htdocs/wp-config.php'));
//foreach ( as $k => $v) {
// echo "'$k' => '$v'\n";
//}
?>

156
move.php

@ -0,0 +1,156 @@
<?php
/*
MOVE A WORDPRESS SITE
THIS SCRIPT IS REALLY BROKEN.
*/
include_once('config.pgp');
echo "\nEnter one or more domain names(s) which needs to be migrated...\n";
echo "You can separate domain names by comma (,)...\n";
echo "Example: google.com, yahoo.com,apple.com\n";
$usr_domain = (trim(fgets(STDIN)));
$domain_arr = explode(",", $usr_domain);
foreach($domain_arr as $domain){
echo "****************************************************************************";
echo "\n\nMoving :: $domain \n\n";
move_domain(trim($domain));
}
/**
* ALL SEENS WELL - Restart nginx
*/
echo "\n Relaoding nginx configuration...\n\n";
system('service nginx reload');
/**
* Function to move a single domain
* @param <type> $domain
*/
function move_domain($usr_domain) {
global $local_env, $remote_env;
if(trim($usr_domain) == ''){
echo "\n CURRENT DOMAIN IS SKIPPED\n";
return;
}
/*
* Set domain environment values
*/
$domain['name'] = $usr_domain;
$domain['conf'] = $local_env['nginx_dir_sites_avilable'] . '/' . $domain['name'];
$domain['rootdir'] = $local_env['webroot'] . '/' . $domain['name'];
$domain['htdocs'] = $domain['rootdir'] . '/' . $local_env['htdocs'] ;
$domain['logs'] = $domain['rootdir'] . '/' . $local_env['logs'] ;
/**
* Check if domain config file already exists
*/
if (file_exists($domain['conf'])) {
echo "\nConfiguration files for domain '" . $domain['name'] . "'already exists :: " . $domain['conf'];
echo "\nDo you want to overwrite previous configuration? [Y/N] (default=Y)";
if (in_array(strtolower(fgets(STDIN)), array('n', 'no'))) {
die("\nYou choose to terminate this script! Bye-Bye!!! \n");
}
}
/**
* At this point - either domain config file doesn't exist or user showed interest in overwriting it
* In either case...
* Create nginx conf for $domain in /etc/nginx/sites-available/$domain
* TODO :: Provide options to add supercache and/or w3total cache rules
*/
/**
* Create config file
*/
$nginx_conf = file_get_contents($local_env['default_conf']);
$nginx_conf = str_replace($local_env['default_domain'], $domain['name'], $nginx_conf);
file_put_contents($domain['conf'], $nginx_conf);
//Error Check - if config file is created successfully or not
if (!file_exists($domain['conf'])) {
die("\nError encounterd while creating " . $domain['conf']);
}
/**
* Linking config file
*/
echo "\nCreating Symbolic Link..\n";
$command = "sudo ln -s " . $domain['conf'] . " " . $local_env['nginx_dir_sites_enabled'];
$result = system($command);
//Error check - if linking config file succeed
if ($result != '') {
die("\nError encountered while creating script. Please check if file '" . $domain['conf'] . "'is created or not!\n");
}
//Go Ahead.
// echo "Nginx configuration for '" . $domain['name'] . "' is created successfully";
/**
* Create webroot dirs for new domain
*/
//create dirs
$result = system("mkdir " . $domain['rootdir']);
$result = system("mkdir " . $domain['htdocs']);
$result = system("mkdir " . $domain['logs']);
//create log files
$result = system("touch " . $domain['logs'] . "/access.log");
$result = system("touch " . $domain['logs'] . "/error.log");
//Error check
if ($result != '') {
die("\nError encountered while creating websites directories & files for " . $domain['name'] . "\n");
}
/**
* moving wordpress in new webroot dir
*/
//export remote db
$command = "rsync --exclude '*.iso' -avz {$remote_env['ssh_user']}@{$remote_env['host']}:{$remote_env['webroot']}/{$domain['name']}/htdocs/* {$domain['htdocs']}/";
$result = system($command);
/**
* MySQL Moving
*/
$wp_config = get_defines($domain['htdocs'] . '/wp-config.php');
$command = "mysqldump -u {$wp_config['DB_USER']} -p{$wp_config['DB_PASSWORD']} -h {$remote_env['host']} --databases '{$wp_config['DB_NAME']}' > {$domain['rootdir']}/{$domain['name']}.sql";
// echo "\n" . $command . "\n";
$result = system($command);
$command = "mysql -h {$local_env['mysql_host']} -u {$local_env['mysql_user']} -p{$local_env['mysql_pass']} < {$domain['rootdir']}/{$domain['name']}.sql";
// echo "\n\n" . $command . "\n";
$result = system($command);
/*
* Create wp-config.php
*/
//this may not be needed as we already have wp-config.php present for remote WordPress
//@TODO we need to replace DB_HOST though
/**
* Chown
*/
$command = "chown -R " . $local_env['nginx_user'] . ":" . $local_env['nginx_group'] . " " . $domain['rootdir'];
echo "\n COMMAND :: $command \n";
$result = system($command);
//Error check
if ($result != '') {
die("\nError encountered while chaging owner of " . $domain['rootdir'] . "\n" . $result);
}
}
?>

84
remove.php

@ -0,0 +1,84 @@
<?php
/**
* prompt user to eneter domain name
*/
echo "Enter a domain name which needs to be removed...\n";
$usr_domain = (trim(fgets(STDIN)));
echo "You have entered :: $usr_domain \n";
if(strlen($usr_domain) == 0 ){
die("input cannot be empty!\n");
}
if(strpos($usr_domain,"..") !== false ){
die("directory traversal is not allowed\n");
}
if(strpos($usr_domain,"\\") !== false ){
die("domain cannot contain \\ !");
}
/*
* Set domain environment values
*/
$domain['name'] = $usr_domain;
$domain['conf'] = $local_env['nginx_dir_sites_avilable'] . '/' . $domain['name'];
$domain['rootdir'] = $local_env['webroot'] . '/' . $domain['name'];
$domain['htdocs'] = $domain['rootdir'] . '/' . $local_env['htdocs'] ;
$domain['logs'] = $domain['rootdir'] . '/' . $local_env['logs'] ;
/**
* Check if domain config file already exists
*/
echo "\n Domain Name - " . $domain['name'] .
"\n Webroot Dir - " . realpath($domain['rootdir']) .
"\n Database Name - " . $domain['name'] ;
echo "\nDo you want to remove this domain, related files and databases for sure? [Y/N] (default=N): ";
if ( strtolower(trim(fgets(STDIN))) != "y" ) {
die("\nYou choose to terminate this script! The domain is NOT removed! \n");
}
/**
* At this point - user has confirmed domain removal
//Drop Database
/**
* MySQL Database Deletion
*/
$command = "mysql -h " . $local_env['mysql_host'] . " -u " . $local_env['mysql_user'] . " -p" . $local_env['mysql_pass'] . " -e 'drop database `'" . $domain['name'] . "'` '";
$result = system($command);
//remove htdocs
if(file_exists(realpath($domain['rootdir']))){
if(dirname(realpath($domain['rootdir']))=="/var/www")
system("rm -rf ". realpath($domain['rootdir']));
else
die("Try something else!");
}else{
echo "\n Directory " . $domain['rootdir'] . " doesn't exists\n";
}
//delete database
$command = "mysql -h " . $local_env['mysql_host'] . " -u " . $local_env['mysql_user'] . " -p" . $local_env['mysql_pass'] . " -e 'create database `'" . $domain['name'] . "'` '";
$result = system($command);
/**
* Remove config file
*/
if(file_exists($local_env['nginx_dir_sites_enabled']."/".$domain['name']) OR file_exists($local_env['nginx_dir_sites_avilable']."/".$domain['name'])){
unlink($local_env['nginx_dir_sites_enabled']."/".$domain['name']);
unlink($local_env['nginx_dir_sites_avilable']."/".$domain['name']);
/**
* ALL SEENS WELL - Restart nginx
*/
echo "\n Issuing nginx reboot command...\n\n";
system('service nginx restart');
}else{
echo "\nNginx config files for this domain do not exist\n";
}
?>

11
test.php

@ -0,0 +1,11 @@
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
fwrite(STDOUT, "Enter your name\n"); // Output - prompt user
$name = fgets(STDIN); // Read the input
fwrite(STDOUT, "Hello $name"); // Output - Some text
exit(0); // Script ran OK
?>

99
touch.php

@ -0,0 +1,99 @@
<?php
/**
* prompt user to eneter domain name
*/
echo "Enter a domain name which needs to be migrated...\n";
$usr_domain = (trim(fgets(STDIN)));
echo "You have entered :: $usr_domain \n";
/*
* Set domain environment values
*/
$domain['name'] = $usr_domain;
$domain['conf'] = $local_env['nginx_dir_sites_avilable'] . '/' . $domain['name'];
$domain['rootdir'] = $local_env['webroot'] . '/' . $domain['name'];
$domain['htdocs'] = $domain['rootdir'] . '/' . $local_env['htdocs'] ;
$domain['logs'] = $domain['rootdir'] . '/' . $local_env['logs'] ;
/**
* Check if domain config file already exists
*/
if (file_exists($domain['conf'])) {
echo "\nConfiguration files for domain '" . $domain['name'] . "'already exists :: " . $domain['conf'];
echo "\nDo you want to overwrite previous configuration? [Y/N] (default=Y)";
if (in_array(strtolower(fgets(STDIN)), array('n', 'no'))) {
die("\nYou choose to terminate this script! Poor you! :D \n");
}
}
/**
* At this point - either domain config file doesn't exist or user showed interest in overwriting it
* In either case...
* Create nginx conf for $domain in /etc/nginx/sites-available/$domain
* TODO :: Provide options to add supercache and/or w3total cache rules
*/
/**
* Create config file
*/
$nginx_conf = file_get_contents($local_env['default_conf']);
$nginx_conf = str_replace($local_env['default_domain'], $domain['name'], $nginx_conf);
file_put_contents($domain['conf'], $nginx_conf);
//Error Check - if config file is created successfully or not
if (!file_exists($domain['conf'])) {
die("\nError encounterd while creating " . $domain['conf']);
}
/**
* Linking config file
*/
echo "\nCreating Symbolic Link..\n";
$command = "sudo ln -s " . $domain['conf'] . " " . $local_env['nginx_dir_sites_enabled'];
$result = system($command);
//Error check - if linking config file succeed
if ($result != '') {
die("\nError encounterd whie creating script. Please check if file '" . $domain['conf'] . "'is created or not!\n");
}
//Go Ahead.
echo "Nginx configuration for '" . $domain['name'] . "' is created successfully";
/**
* Create webroot dirs for new domain
*/
//create dirs
$result = system("mkdir " . $domain['rootdir']);
$result = system("mkdir " . $domain['htdocs']);
$result = system("mkdir " . $domain['logs']);
//create log files
$result = system("touch " . $domain['logs'] . "/access.log");
$result = system("touch " . $domain['logs'] . "/error.log");
//Error check
if ($result != '') {
die("\nError encountered while creating websites directories & files for " . $domain['name'] . "\n");
}
/**
* Chown
*/
$command = "chown -R " . $local_env['nginx_user'] . ":" . $local_env['nginx_group'] . " " . $domain['rootdir'];
echo "\n COMMAND :: $command \n";
$result = system($command);
//Error check
if ($result != '') {
die("\nError encountered while chaging owner of " . $domain['rootdir'] . "\n" . $result);
}
/**
* ALL SEENS WELL - Restart nginx
*/
echo "\n Issuing nginx reboot command...\n\n";
system('service nginx restart');
?>

65
zzz/make_site.sh

@ -0,0 +1,65 @@
#!/bin/bash
#This script makes virtual host, site directories and log files
#Author : Pragati Sureka
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "make_vsite:You need to run this script as root(or use sudo)"
exit
fi
# Check for proper number of command line args.
if [ $# -ne 1 ]
then
echo "Usage: `basename $0` example.com"
echo " <example.com should be replaced by actual domain name>"
exit
fi
sed s/[[:blank:]]*//g $1 > $1
#Script Variables
WEBROOT="/var/www"
SKELFILE="/etc/nginx/sites-available/example.com"
VSITEDIR="/etc/nginx/sites-available"
ESITEDIR="/etc/nginx/sites-enabled"
USER="www-data"
GROUP="www-data"
SERVER_RELOAD="service nginx restart"
WP_ZIP="/home/rtcamp/wordpress/latest.zip" #wordpress 3.0
#make directories and touch log files
mkdir $WEBROOT/$1
mkdir $WEBROOT/$1/htdocs
mkdir $WEBROOT/$1/logs
touch $WEBROOT/$1/logs/error.log
touch $WEBROOT/$1/logs/access.log
#download latest wordpress and extract it to proper location
cd $WEBROOT/$1
#wget www.wordpress.org/latest.zip
unzip -q -o $WP_ZIP
mv wordpress/* htdocs/
rm -rf $WEBROOT/$1/wordpress
#rm $WEBROOT/$1/latest.zip
chown -R $USER:$GROUP $WEBROOT/$1
#chmod g+rw -R $WEBROOT/$1
#create database
mysql -u USER -pPASS -e 'create database `'$1'` '
#create wp-config.php file
CONFIGSAMPLE=$WEBROOT/$1/htdocs/wp-config-sample.php
sed s/database_name_here/$1/ $CONFIGSAMPLE | sed s/username_here/USER/ | sed s/password_here/PASS/ > $WEBROOT/$1/htdocs/wp-config.php
#copy skeleton file and enable site
sed s/example.com/$1/ $SKELFILE > $VSITEDIR/$1
ln -s $VSITEDIR/$1 $ESITEDIR/
echo "127.0.0.1 $1" >> /etc/hosts
$SERVER_RELOAD
if [ $? -ne 0 ]; then
#rm -rf $WEBROOT/$1
unlink $ESITEDIR/$1
$SERVER_RELOAD
sed -i".bak" '$d' /etc/hosts
echo "ERROR CREATING PLEASE CONTACT pragati.sureka@rtcamp.com FOR ASSISTANCE!"
fi

35
zzz/make_vhost.sh

@ -0,0 +1,35 @@
#!/bin/bash
#This script makes virtual host, site directories and log files
#Author : Pragati Sureka, rahul286
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "make_vsite:You need to this script as root(or use sudo)"
exit
fi
#Script Variables
WEBROOT="/var/www"
SKELFILE="/etc/apache2/sites-available/skeleton"
VSITEDIR="/etc/apache2/sites-available"
USER="www-data"
GROUP="www-data"
SERVER_RELOAD="/etc/init.d/apache2 reload"
#make directories and touch log files
mkdir $WEBROOT/$1
mkdir $WEBROOT/$1/htdocs
mkdir $WEBROOT/$1/logs
touch $WEBROOT/$1/logs/error.log
touch $WEBROOT/$1/logs/custom.log
#copy skeleton file and enable site
sed s/site/$1/ $SKELFILE > $VSITEDIR/$1
a2ensite $1 &> /dev/null
echo "127.0.0.1 $1" >> /etc/hosts
$SERVER_RELOAD &> /dev/null
if [ $? -ne 0 ]; then
rm -rf $WEBROOT/$1
a2dissite $1
sed -i".bak" '$d' /etc/hosts
echo "ERROR CREATING PLEASE CONTACT pragati.sureka@rtcamp.com FOR ASSISTANCE!"
fi

3
zzz/restart.sh

@ -0,0 +1,3 @@
service mysql stop
service php5-fpm restart
service mysql start
Loading…
Cancel
Save