Created
September 17, 2012 11:57
Revisions
-
jun9 revised this gist
Sep 17, 2012 . 1 changed file with 8 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -61,8 +61,14 @@ cp $CURRENT_DIR/nginx.vhost.conf.template $CONFIG $SED -i "s/@@HOSTNAME@@/$DOMAIN/g" $CONFIG $SED -i "s#@@PATH@@#\/home\/"$USERNAME$PUBLIC_HTML_DIR"#g" $CONFIG $SED -i "s/@@LOG_PATH@@/\/home\/$USERNAME\/_logs/g" $CONFIG #Modified by Yong: instead of create pid file in /var/run/php-fpm/”$USERNAME”_fpm.sock, #just put it in /var/run/”$USERNAME”_fpm.sock or other place that is not ephemeral by design, #otherwise it will cause fpm startup problem ([ERROR] bind() for address #‘/var/run/php-fpm/**_fpm.sock’ failed: No such file or directory) every time the server reboots. #mkdir -p /var/run/php-fpm/ $SED -i "s#@@SOCKET@@#/var/run/"$USERNAME"_fpm.sock#g" $CONFIG echo "How many FPM servers would you like by default:" read FPM_SERVERS -
jun9 created this gist
Sep 17, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,105 @@ #!/bin/bash # @author: Seb Dangerfield # http://www.sebdangerfield.me.uk/?p=513 # Created: 11/08/2011 # Modified: 07/01/2012 # Modified: 17/05/2012 # Modify the following to match your system NGINX_CONFIG='/etc/nginx/sites-available' NGINX_SITES_ENABLED='/etc/nginx/sites-enabled' PHP_INI_DIR='/etc/php5/fpm/pool.d' WEB_SERVER_GROUP='www-data' NGINX_INIT='/etc/init.d/nginx' PHP_FPM_INIT='/etc/init.d/php5-fpm' # --------------END SED=`which sed` CURRENT_DIR=`dirname $0` if [ -z $1 ]; then echo "No domain name given" exit 1 fi DOMAIN=$1 # check the domain is valid! PATTERN="^(([a-zA-Z]|[a-zA-Z][-a-zA-Z0-9]*[a-zA-Z0-9])\.)+([A-Za-z]|[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9])$"; if [[ "$DOMAIN" =~ $PATTERN ]]; then DOMAIN=`echo $DOMAIN | tr '[A-Z]' '[a-z]'` echo "Creating hosting for:" $DOMAIN else echo "invalid domain name" exit 1 fi # Create a new user! echo "Please specify the username for this site?" read USERNAME HOME_DIR=$USERNAME adduser $USERNAME # ------- # CentOS: # If you're using CentOS you will need to uncomment the next 3 lines! # ------- #echo "Please enter a password for the user: $USERNAME" #read -s PASS #echo $PASS | passwd --stdin $USERNAME echo "Would you like to change to web root directory (y/n)?" read CHANGEROOT if [ $CHANGEROOT == "y" ]; then echo "Enter the new web root dir (after the public_html/)" read DIR PUBLIC_HTML_DIR='/public_html/'$DIR else PUBLIC_HTML_DIR='/public_html' fi # Now we need to copy the virtual host template CONFIG=$NGINX_CONFIG/$DOMAIN.conf cp $CURRENT_DIR/nginx.vhost.conf.template $CONFIG $SED -i "s/@@HOSTNAME@@/$DOMAIN/g" $CONFIG $SED -i "s#@@PATH@@#\/home\/"$USERNAME$PUBLIC_HTML_DIR"#g" $CONFIG $SED -i "s/@@LOG_PATH@@/\/home\/$USERNAME\/_logs/g" $CONFIG mkdir -p /var/run/php-fpm/ $SED -i "s#@@SOCKET@@#/var/run/php-fpm/"$USERNAME"_fpm.sock#g" $CONFIG echo "How many FPM servers would you like by default:" read FPM_SERVERS echo "Min number of FPM servers would you like:" read MIN_SERVERS echo "Max number of FPM servers would you like:" read MAX_SERVERS # Now we need to create a new php fpm pool config FPMCONF="$PHP_INI_DIR/$DOMAIN.pool.conf" cp $CURRENT_DIR/pool.conf.template $FPMCONF $SED -i "s/@@USER@@/$USERNAME/g" $FPMCONF $SED -i "s/@@HOME_DIR@@/\/home\/$USERNAME/g" $FPMCONF $SED -i "s/@@START_SERVERS@@/$FPM_SERVERS/g" $FPMCONF $SED -i "s/@@MIN_SERVERS@@/$MIN_SERVERS/g" $FPMCONF $SED -i "s/@@MAX_SERVERS@@/$MAX_SERVERS/g" $FPMCONF MAX_CHILDS=$((MAX_SERVERS+START_SERVERS)) $SED -i "s/@@MAX_CHILDS@@/$MAX_CHILDS/g" $FPMCONF usermod -aG $USERNAME $WEB_SERVER_GROUP chmod g+rx /home/$HOME_DIR chmod 600 $CONFIG ln -s $CONFIG $NGINX_SITES_ENABLED/$DOMAIN.conf # set file perms and create required dirs! mkdir -p /home/$HOME_DIR$PUBLIC_HTML_DIR mkdir /home/$HOME_DIR/_logs mkdir /home/$HOME_DIR/_sessions chmod 750 /home/$HOME_DIR -R chmod 700 /home/$HOME_DIR/_sessions chmod 770 /home/$HOME_DIR/_logs chmod 750 /home/$HOME_DIR$PUBLIC_HTML_DIR chown $USERNAME:$USERNAME /home/$HOME_DIR/ -R $NGINX_INIT reload $PHP_FPM_INIT restart echo -e "\nSite Created for $DOMAIN with PHP support"