|
|
Line 7: |
Line 7: |
| {{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.}} | | {{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: [http://www.unixlan.com.ar/SMESM/SMESiteMaker_v1.1.tar.gz SMESiteMaker] (It's possible to upload non image files to wiki?) | + | Current version: 1.5 |
| + | |
| + | '''Now with full MySQL support!!''' |
| + | |
| + | Your can download from here: [http://www.unixlan.com.ar/SMESM/SMESiteMaker_v1.5.tar.gz SMESiteMaker] (It's possible to upload non image files to wiki?) |
| | | |
| Please, use this thread in the forum to any dude or comments: | | Please, use this thread in the forum to any dude or comments: |
Line 15: |
Line 19: |
| Untar and execute. | | Untar and execute. |
| | | |
− | | + | Code removed because is too long |
− | | |
− | ----
| |
− | | |
− | Code: | |
− | | |
− | #!/bin/bash
| |
− |
| |
− | # Author: Normando Hall (PicsOne)
| |
− | # Version: 1.1
| |
− | # 07/06/2007 (d/m/Y)
| |
− | #
| |
− | #
| |
− | # Changelog
| |
− | #
| |
− | # 1.1 (by Normando Hall)
| |
− | # Added php open_basedir restriction
| |
− | # Set debug variable
| |
− | #
| |
− | # 1.0 (by Normando Hall)
| |
− | # Initial release
| |
− |
| |
− | 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
| |
− | f_dbg=0 #Set to 1 to view the variabls content at the end.
| |
− | 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
| |
− |
| |
− | obd="$f_root"
| |
− | clear
| |
− | echo
| |
− | echo "Do you want to modify open_basedir restriction?"
| |
− | echo "Default give php access only to local siteroot ($f_root)"
| |
− | echo "Use with care, this is a security risk"
| |
− | echo "(Y/N/Enter)"
| |
− | echo ":"
| |
− | read YESNO
| |
− | case "$YESNO" in
| |
− | "Y" | "y" )
| |
− | f_obd="1";;
| |
− | "N" | "n" )
| |
− | f_obd="0";;
| |
− | *)
| |
− | f_obd="0";;
| |
− | esac
| |
− |
| |
− | if [ "$f_obd" = "1" ]
| |
− | then
| |
− | clear
| |
− |
| |
− | ANSWER=1
| |
− | while [ $ANSWER = 1 ]
| |
− | do
| |
− | clear
| |
− | echo
| |
− | echo "Please enter the directory you want to allow PHP can access."
| |
− | echo "If you specify more than one, separate with \":\""
| |
− | echo "Example: /dir_one:/dir_two"
| |
− | echo ":"
| |
− |
| |
− | read open_bd
| |
− | if [ "$open_bd" != "" ]
| |
− | then
| |
− | obd=$open_bd
| |
− | ANSWER=0
| |
− | else
| |
− | clear
| |
− | echo
| |
− | echo "You have not provide a directory name. Hit enter to try again"
| |
− | read x
| |
− | fi
| |
− | done
| |
− | fi
| |
− | 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
| |
− | 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
| |
− |
| |
− | echo "php_admin_value open_basedir $obd" >> $c_file
| |
− |
| |
− | fi
| |
− | echo '</Directory>' >> $c_file
| |
− |
| |
− | clear
| |
− | #################- DEBUG -############################
| |
− | if [ "$dbg" = "1" ]
| |
− | then
| |
− | 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"
| |
− | echo "$f_obd"
| |
− | echo "$open_bd"
| |
− | echo "$obd"
| |
− | fi
| |
− | 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 "====================================================="
| |
| | | |
| ---- | | ---- |
| | | |
| [[Category: Howto]] | | [[Category: Howto]] |