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: |