Difference between revisions of "SME Site Maker"

From SME Server
Jump to navigationJump to search
(New page: == SME Site Maker == This script is designed to help you when create a new web site under /opt directory. If you improve or add new functions, please update this wiki page.)
 
Line 1: Line 1:
 
 
== SME Site Maker ==
 
== SME Site Maker ==
  
 
This script is designed to help you when create a new web site under /opt directory.
 
This script is designed to help you when create a new web site under /opt directory.
 +
 
If you improve or add new functions, please update this wiki page.
 
If you improve or add new functions, please update this wiki page.
 +
 +
{{drawBoxNote|content=Please feel free to modify or add info to this howto, and make corrections in typos, because I don't speak english very good.}}
 +
 +
Your can download from here:
 +
 +
Untar and execute.
 +
 +
Enjoy.
 +
 +
----
 +
<nowiki>#!/bin/bash
 +
 +
# Author: Normando Hall (PicsOne)
 +
# Version: 1.0
 +
# 06/06/2007
 +
 +
clear
 +
echo "========================================================"
 +
echo "=                SME Site Maker Script                ="
 +
echo "=                                                      ="
 +
echo "= This script will configure your SME webserver, and  ="
 +
echo "= make the necesary directory to hold your site.      ="
 +
echo "=                                                      ="
 +
echo "= No express or implied warranties are provided and its="
 +
echo "= usage is at your own risk.                          ="
 +
echo "=                                                      ="
 +
echo "= If you feel confortable with the above then press    ="
 +
echo "= enter if not press Ctrl+C to abort the configuration ="
 +
echo "= script.                                              ="
 +
echo "=                                                      ="
 +
echo "========================================================"
 +
read x
 +
custom_httpd_dir=/etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
 +
clear
 +
######################### - Site ROOT - ##################################3
 +
f_root=""
 +
ANSWER=1
 +
while [ $ANSWER = 1 ]
 +
do
 +
        clear
 +
        echo " Please enter a directory name where you put the site files."
 +
echo " The directory is created under /opt dir."
 +
        echo " Example \"mySite\" without \" \". No include end or trailing slash"
 +
        echo ":"
 +
read files_root
 +
if [  "$files_root"  != "" ]
 +
then
 +
f_root=/opt/$files_root
 +
if [ -d $f_root ]
 +
then
 +
clear
 +
echo " This directory already exist. If you want to remove and all contents"
 +
echo " hit Y, or N to continue without change"
 +
echo " (Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
YESNO=1
 +
rm -rf $f_root;;
 +
"N" | "n" )
 +
YESNO=2;;
 +
*)
 +
YESNO=2;;
 +
esac
 +
fi
 +
ANSWER=0
 +
 +
if [ "$YESNO" != "2" ]
 +
then
 +
mkdir -p $f_root
 +
chown root.www $f_root
 +
chmod 644 $f_root
 +
fi
 +
 +
else
 +
clear
 +
        echo
 +
        echo "You have not enter a directory name. Hit enter to try again"
 +
read x
 +
fi
 +
done
 +
#################### -ALIAS - ######################################
 +
clear
 +
a_root=""
 +
ANSWER=1
 +
while [ $ANSWER = 1 ]
 +
do
 +
        clear
 +
        echo
 +
        echo "Please enter an alias name to access your site."
 +
        echo "Example \"wiki\" without \" \". No include end or trailing slash"
 +
        echo ":"
 +
 +
read alias_root
 +
if [  "$alias_root"  != "" ]
 +
then
 +
a_root=/$alias_root
 +
ANSWER=0
 +
else
 +
clear
 +
        echo
 +
        echo "You have not provide an alias name. Hit enter to try again"
 +
read x
 +
fi
 +
done
 +
##################### - SSL - ####################################
 +
clear
 +
f_ssl=""
 +
        clear
 +
        echo
 +
        echo "Do you want to force SSL?"
 +
        echo "This is used to force to secure http (https)"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
f_ssl="1";;
 +
"N" | "n" )
 +
f_ssl="0";;
 +
*)
 +
f_ssl="0";;
 +
esac
 +
############################ - INDEX - ############################################
 +
clear
 +
f_idx=""
 +
        clear
 +
        echo
 +
        echo "Do you want to allow directory index?"
 +
        echo "This is used to index a directory if no index.htm/l or index.php file is available"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
f_idx="1";;
 +
"N" | "n" )
 +
f_idx="0";;
 +
*)
 +
f_idx="0";;
 +
esac
 +
#################### - AllowOverride - ######################################
 +
clear
 +
f_aov=""
 +
        clear
 +
        echo
 +
        echo "Do you want to set AllowOverride All?"
 +
        echo "This is used to allow process .htaccess files in your site dir"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
f_aov="1";;
 +
"N" | "n" )
 +
f_aov="0";;
 +
*)
 +
f_aov="0";;
 +
esac
 +
####################### - Includes - ###################################
 +
clear
 +
f_inc=""
 +
        clear
 +
        echo
 +
        echo "Do you want to allow includes?"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
f_inc="1";;
 +
"N" | "n" )
 +
f_inc="0";;
 +
*)
 +
f_inc="0";;
 +
esac
 +
##################### - PHP - #####################################
 +
clear
 +
php=""
 +
        clear
 +
        echo
 +
        echo "Do you want to execute PHP?"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
php="1";;
 +
"N" | "n" )
 +
php="0";;
 +
*)
 +
php="0";;
 +
esac
 +
 +
if [ "$php" = "1" ]
 +
then
 +
        clear
 +
        echo
 +
        echo "Do you want to allow_url_fopen?"
 +
        echo "This allow open and access remote files in your php scripts"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
f_fop="1";;
 +
"N" | "n" )
 +
f_fop="0";;
 +
*)
 +
f_fop="0";;
 +
esac
 +
        clear
 +
        echo
 +
        echo "If you have eaccelerator, want to enabled?"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
f_eac="1";;
 +
"N" | "n" )
 +
f_eac="0";;
 +
*)
 +
f_eac="0";;
 +
esac
 +
        clear
 +
        echo
 +
        echo "Do you want to allow register globals?"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
f_rgl="1";;
 +
"N" | "n" )
 +
f_rgl="0";;
 +
*)
 +
f_rgl="0";;
 +
esac
 +
fi
 +
###################### - CGI - #######################################
 +
clear
 +
cgi=""
 +
        clear
 +
        echo
 +
        echo "Do you want to execute CGI?"
 +
        echo "(Y/N/Enter)"
 +
        echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
cgi="1";;
 +
"N" | "n" )
 +
cgi="0";;
 +
*)
 +
cgi="0";;
 +
esac
 +
 +
if [ "$cgi" = "1" ]
 +
then
 +
ANSWER=1
 +
while [ $ANSWER = 1 ]
 +
do
 +
        clear
 +
        echo
 +
        echo "Please enter a directory name to hold your cgi scripts."
 +
echo "If you don't enter a directory, assume you want to allow cgi scripts in $f_root root directory."
 +
        echo "If you provide a directory, this is created under $f_root/your_cgi_dir directory"
 +
        echo ":"
 +
read cgi_root
 +
if [  "$cgi_root"  != "" ]
 +
then
 +
c_root=$f_root/$cgi_root
 +
YESNO=1
 +
if [ -d $c_root ]
 +
then
 +
clear
 +
echo "This directory already exist. If you want to remove and all contents"
 +
echo "hit Y, or N to continue without change"
 +
echo "(Y/N/Enter)"
 +
echo ":"
 +
read YESNO
 +
case "$YESNO" in
 +
"Y" | "y" )
 +
YESNO=1
 +
rm -rf $c_root;;
 +
"N" | "n" )
 +
YESNO=2;;
 +
*)
 +
YESNO=2;;
 +
esac
 +
fi
 +
ANSWER=0
 +
 +
if [ "$YESNO" != "2" ]
 +
then
 +
mkdir -p $c_root
 +
chown root.www $c_root
 +
chmod 777 $c_root
 +
fi
 +
else
 +
ANSWER=0
 +
c_root=$f_root
 +
fi
 +
done
 +
 +
if [ "$c_root" = "$f_root" ]
 +
then
 +
ca_root=$a_root
 +
chown root.www $ca_root
 +
chmod 777 $ca_root
 +
else
 +
clear
 +
###################### - CGI ALIAS -#########################################
 +
ca_root=""
 +
ANSWER=1
 +
while [ $ANSWER = 1 ]
 +
do
 +
        clear
 +
        echo
 +
        echo "Please, provide a cgi alias."
 +
        echo ":"
 +
read calias_root
 +
if [  "$calias_root"  != "" ]
 +
then
 +
ca_root=/$calias_root
 +
ANSWER=0
 +
else
 +
clear
 +
        echo
 +
        echo "You have not enter a cgi alias name. Hit enter to try again"
 +
read x
 +
fi
 +
done
 +
fi
 +
fi
 +
#################### - Configuration NAME - ############################################
 +
clear
 +
c_name=""
 +
ANSWER=1
 +
while [ $ANSWER = 1 ]
 +
do
 +
        clear
 +
        echo
 +
        echo "Please enter a name for this configuration."
 +
        echo ":"
 +
read conf_name
 +
if [  "$conf_name"  != "" ]
 +
then
 +
c_name=99SMESiteMaker_$conf_name
 +
ANSWER=0
 +
else
 +
clear
 +
        echo
 +
        echo "You have not provide a configuration name. Hit enter to try again"
 +
read x
 +
fi
 +
done
 +
 +
 +
################ - Final Step - ####################################
 +
c_file=$custom_httpd_dir/$c_name
 +
if [ -d $custom_httpd_dir ]
 +
then
 +
custom_httpd_dir=$custom_httpd_dir
 +
#Anyone know a negate if for check? = if [directory NOT exist $dir]
 +
else
 +
mkdir -p $custom_httpd_dir
 +
fi
 +
fopt=""
 +
touch $c_file
 +
echo ' ' > $c_file
 +
echo "Alias $a_root $f_root" >> $c_file
 +
if [ "$cgi" = "1" ]
 +
then
 +
echo "ScriptAlias $ca_root $c_root" >> $c_file
 +
fi
 +
echo "<Directory $f_root>" >> $c_file
 +
if [ "$f_ssl" = "1" ]
 +
then
 +
echo 'SSLRequireSSL on' >> $c_file
 +
#echo 'RequireSSL on' >> $c_file #for SME6
 +
fi
 +
if [ "$php" = "1" ]
 +
then
 +
echo 'AddType application/x-httpd-php .php .php3 .phtml' >> $c_file
 +
fi
 +
if [ "$f_idx" = "1" ]||[ "$f_inc" = "1" ]||[ "$f_aov" = "1" ]
 +
then
 +
fopt="Options "
 +
if [ "$f_idx" = "1" ]
 +
then
 +
fopt="$fopt Indexes "
 +
fi
 +
if [ "$f_inc" = "1" ]
 +
then
 +
fopt="$fopt +Includes "
 +
fi
 +
if [ "$f_aov" = "1" ]
 +
then
 +
fopt="$fopt FollowSymLinks "
 +
fi
 +
echo "$fopt" >> $c_file
 +
if [ "$f_aov" = "1" ]
 +
then
 +
echo 'AllowOverride all' >> $c_file
 +
fi
 +
fi
 +
echo 'order deny,allow' >> $c_file
 +
echo 'deny from all' >> $c_file
 +
echo 'allow from all' >> $c_file
 +
if [ "$php" = "1" ]
 +
then
 +
 +
if [ "$f_fop" = "1" ]
 +
then
 +
echo 'php_flag register_globals on' >> $c_file
 +
else
 +
echo 'php_flag register_globals off' >> $c_file
 +
fi
 +
 +
if [ "$f_rgl" = "1" ]
 +
then
 +
echo 'php_admin_flag allow_url_fopen on' >> $c_file
 +
else
 +
echo 'php_admin_flag allow_url_fopen off' >> $c_file
 +
fi
 +
 +
if [ "$f_eac" = "1" ]
 +
then
 +
echo 'php_admin_value eaccelerator.enable 1' >> $c_file
 +
fi
 +
 +
fi
 +
echo '</Directory>' >> $c_file
 +
 +
clear
 +
# for debug only
 +
# echo "$files_root"
 +
# echo "$f_root"
 +
# echo "$alias_root"
 +
# echo "$a_root"
 +
# echo "$f_ssl"
 +
# echo "$f_idx"
 +
# echo "$f_aov"
 +
# echo "$f_inc"
 +
# echo "$php"
 +
# echo "$f_fop"
 +
# echo "$f_eac"
 +
# echo "$f_rgl"
 +
# echo "$cgi"
 +
# echo "$cgi_root"
 +
# echo "$c_root"
 +
# echo "$calias_root"
 +
# echo "$ca_root"
 +
# echo "$conf_name"
 +
# echo "$c_name"
 +
# echo "$custom_httpd_dir"
 +
# echo "$c_file"
 +
# echo "$fopt"
 +
 +
expand-template /etc/httpd/conf/httpd.conf
 +
/etc/init.d/httpd-e-smith restart
 +
# /sbin/e-smith/expand-template /etc/httpd/conf/httpd.conf  # For SME6
 +
# service httpd restart         # For SME6
 +
echo "====================================================="
 +
echo "= Installation of you site is complete.            ="
 +
echo "= Now you can copy your site files under $f_root.  ="
 +
echo "= Access your site in http://your_domain/$alias_root="
 +
echo "====================================================="
 +
</nowiki>
 +
Code:

Revision as of 23:50, 6 April 2007

SME Site Maker

This script is designed to help you when create a new web site under /opt directory.

If you improve or add new functions, please update this wiki page.

Template:DrawBoxNote

Your can download from here:

Untar and execute.

Enjoy.


#!/bin/bash # Author: Normando Hall (PicsOne) # Version: 1.0 # 06/06/2007 clear echo "========================================================" echo "= SME Site Maker Script =" echo "= =" echo "= This script will configure your SME webserver, and =" echo "= make the necesary directory to hold your site. =" echo "= =" echo "= No express or implied warranties are provided and its=" echo "= usage is at your own risk. =" echo "= =" echo "= If you feel confortable with the above then press =" echo "= enter if not press Ctrl+C to abort the configuration =" echo "= script. =" echo "= =" echo "========================================================" read x custom_httpd_dir=/etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf clear ######################### - Site ROOT - ##################################3 f_root="" ANSWER=1 while [ $ANSWER = 1 ] do clear echo " Please enter a directory name where you put the site files." echo " The directory is created under /opt dir." echo " Example \"mySite\" without \" \". No include end or trailing slash" echo ":" read files_root if [ "$files_root" != "" ] then f_root=/opt/$files_root if [ -d $f_root ] then clear echo " This directory already exist. If you want to remove and all contents" echo " hit Y, or N to continue without change" echo " (Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) YESNO=1 rm -rf $f_root;; "N" | "n" ) YESNO=2;; *) YESNO=2;; esac fi ANSWER=0 if [ "$YESNO" != "2" ] then mkdir -p $f_root chown root.www $f_root chmod 644 $f_root fi else clear echo echo "You have not enter a directory name. Hit enter to try again" read x fi done #################### -ALIAS - ###################################### clear a_root="" ANSWER=1 while [ $ANSWER = 1 ] do clear echo echo "Please enter an alias name to access your site." echo "Example \"wiki\" without \" \". No include end or trailing slash" echo ":" read alias_root if [ "$alias_root" != "" ] then a_root=/$alias_root ANSWER=0 else clear echo echo "You have not provide an alias name. Hit enter to try again" read x fi done ##################### - SSL - #################################### clear f_ssl="" clear echo echo "Do you want to force SSL?" echo "This is used to force to secure http (https)" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) f_ssl="1";; "N" | "n" ) f_ssl="0";; *) f_ssl="0";; esac ############################ - INDEX - ############################################ clear f_idx="" clear echo echo "Do you want to allow directory index?" echo "This is used to index a directory if no index.htm/l or index.php file is available" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) f_idx="1";; "N" | "n" ) f_idx="0";; *) f_idx="0";; esac #################### - AllowOverride - ###################################### clear f_aov="" clear echo echo "Do you want to set AllowOverride All?" echo "This is used to allow process .htaccess files in your site dir" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) f_aov="1";; "N" | "n" ) f_aov="0";; *) f_aov="0";; esac ####################### - Includes - ################################### clear f_inc="" clear echo echo "Do you want to allow includes?" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) f_inc="1";; "N" | "n" ) f_inc="0";; *) f_inc="0";; esac ##################### - PHP - ##################################### clear php="" clear echo echo "Do you want to execute PHP?" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) php="1";; "N" | "n" ) php="0";; *) php="0";; esac if [ "$php" = "1" ] then clear echo echo "Do you want to allow_url_fopen?" echo "This allow open and access remote files in your php scripts" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) f_fop="1";; "N" | "n" ) f_fop="0";; *) f_fop="0";; esac clear echo echo "If you have eaccelerator, want to enabled?" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) f_eac="1";; "N" | "n" ) f_eac="0";; *) f_eac="0";; esac clear echo echo "Do you want to allow register globals?" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) f_rgl="1";; "N" | "n" ) f_rgl="0";; *) f_rgl="0";; esac fi ###################### - CGI - ####################################### clear cgi="" clear echo echo "Do you want to execute CGI?" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) cgi="1";; "N" | "n" ) cgi="0";; *) cgi="0";; esac if [ "$cgi" = "1" ] then ANSWER=1 while [ $ANSWER = 1 ] do clear echo echo "Please enter a directory name to hold your cgi scripts." echo "If you don't enter a directory, assume you want to allow cgi scripts in $f_root root directory." echo "If you provide a directory, this is created under $f_root/your_cgi_dir directory" echo ":" read cgi_root if [ "$cgi_root" != "" ] then c_root=$f_root/$cgi_root YESNO=1 if [ -d $c_root ] then clear echo "This directory already exist. If you want to remove and all contents" echo "hit Y, or N to continue without change" echo "(Y/N/Enter)" echo ":" read YESNO case "$YESNO" in "Y" | "y" ) YESNO=1 rm -rf $c_root;; "N" | "n" ) YESNO=2;; *) YESNO=2;; esac fi ANSWER=0 if [ "$YESNO" != "2" ] then mkdir -p $c_root chown root.www $c_root chmod 777 $c_root fi else ANSWER=0 c_root=$f_root fi done if [ "$c_root" = "$f_root" ] then ca_root=$a_root chown root.www $ca_root chmod 777 $ca_root else clear ###################### - CGI ALIAS -######################################### ca_root="" ANSWER=1 while [ $ANSWER = 1 ] do clear echo echo "Please, provide a cgi alias." echo ":" read calias_root if [ "$calias_root" != "" ] then ca_root=/$calias_root ANSWER=0 else clear echo echo "You have not enter a cgi alias name. Hit enter to try again" read x fi done fi fi #################### - Configuration NAME - ############################################ clear c_name="" ANSWER=1 while [ $ANSWER = 1 ] do clear echo echo "Please enter a name for this configuration." echo ":" read conf_name if [ "$conf_name" != "" ] then c_name=99SMESiteMaker_$conf_name ANSWER=0 else clear echo echo "You have not provide a configuration name. Hit enter to try again" read x fi done ################ - Final Step - #################################### c_file=$custom_httpd_dir/$c_name if [ -d $custom_httpd_dir ] then custom_httpd_dir=$custom_httpd_dir #Anyone know a negate if for check? = if [directory NOT exist $dir] else mkdir -p $custom_httpd_dir fi fopt="" touch $c_file echo ' ' > $c_file echo "Alias $a_root $f_root" >> $c_file if [ "$cgi" = "1" ] then echo "ScriptAlias $ca_root $c_root" >> $c_file fi echo "<Directory $f_root>" >> $c_file if [ "$f_ssl" = "1" ] then echo 'SSLRequireSSL on' >> $c_file #echo 'RequireSSL on' >> $c_file #for SME6 fi if [ "$php" = "1" ] then echo 'AddType application/x-httpd-php .php .php3 .phtml' >> $c_file fi if [ "$f_idx" = "1" ]||[ "$f_inc" = "1" ]||[ "$f_aov" = "1" ] then fopt="Options " if [ "$f_idx" = "1" ] then fopt="$fopt Indexes " fi if [ "$f_inc" = "1" ] then fopt="$fopt +Includes " fi if [ "$f_aov" = "1" ] then fopt="$fopt FollowSymLinks " fi echo "$fopt" >> $c_file if [ "$f_aov" = "1" ] then echo 'AllowOverride all' >> $c_file fi fi echo 'order deny,allow' >> $c_file echo 'deny from all' >> $c_file echo 'allow from all' >> $c_file if [ "$php" = "1" ] then if [ "$f_fop" = "1" ] then echo 'php_flag register_globals on' >> $c_file else echo 'php_flag register_globals off' >> $c_file fi if [ "$f_rgl" = "1" ] then echo 'php_admin_flag allow_url_fopen on' >> $c_file else echo 'php_admin_flag allow_url_fopen off' >> $c_file fi if [ "$f_eac" = "1" ] then echo 'php_admin_value eaccelerator.enable 1' >> $c_file fi fi echo '</Directory>' >> $c_file clear # for debug only # echo "$files_root" # echo "$f_root" # echo "$alias_root" # echo "$a_root" # echo "$f_ssl" # echo "$f_idx" # echo "$f_aov" # echo "$f_inc" # echo "$php" # echo "$f_fop" # echo "$f_eac" # echo "$f_rgl" # echo "$cgi" # echo "$cgi_root" # echo "$c_root" # echo "$calias_root" # echo "$ca_root" # echo "$conf_name" # echo "$c_name" # echo "$custom_httpd_dir" # echo "$c_file" # echo "$fopt" expand-template /etc/httpd/conf/httpd.conf /etc/init.d/httpd-e-smith restart # /sbin/e-smith/expand-template /etc/httpd/conf/httpd.conf # For SME6 # service httpd restart # For SME6 echo "=====================================================" echo "= Installation of you site is complete. =" echo "= Now you can copy your site files under $f_root. =" echo "= Access your site in http://your_domain/$alias_root=" echo "=====================================================" Code: