From c74c4244817993642820253363ff7ab44bd63972 Mon Sep 17 00:00:00 2001 From: Christoph Date: Tue, 7 Mar 2017 04:43:33 +0100 Subject: [PATCH] Add non obligatoric configuration file. Add posibility to give project name in order to name website basedirectory. Some minor changes. --- .gitignore | 1 + conf/create_vhost_php.conf.sample | 57 +++ create_vhost_php.sh | 657 ++++++++++++++++++------------ 3 files changed, 450 insertions(+), 265 deletions(-) create mode 100644 conf/create_vhost_php.conf.sample diff --git a/.gitignore b/.gitignore index a149b6f..3fdddbe 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /BAK/* +/conf/*.conf diff --git a/conf/create_vhost_php.conf.sample b/conf/create_vhost_php.conf.sample new file mode 100644 index 0000000..4e8d0b0 --- /dev/null +++ b/conf/create_vhost_php.conf.sample @@ -0,0 +1,57 @@ + +## =================================================================== +## - Configuration File for "create_vhost_php.sh" Script +## =================================================================== + +# ---------- +# - Note: +# - +# - - Presens of this configuration file is not required. +# - +# - - Settings here overwrites the script defaults +# - +# - - Settings here can be overwritten by commandline parameters. +# ---------- + +# - Place phpinfo file into documentroot directory +# - +# - Defaults to 'true' +# - +#CREATE_PHPINFO_FILE= + +# - Use Projectname instead of main-domain.tld as wensites base directory +# - +# - Defaults to 'false' +# - +#USE_PROJECT_NAME= + +# - Where to store apache log files +# - +# - Only usefull, if you all logfiles are stored in a common logfile-directory. +# - +# - Example: +# - COMMON_LOGFILE_DIR="/var/log/apache2" +# - +#COMMON_LOGFILE_DIR="" + +# - Where to store vhost configuration files +# - +# - Example: +#- VHOST_BASE_DIR="/usr/local/apache2/conf/vhosts/0" +# - +#VHOST_BASE_DIR="" + +# - Directory, where all the website's base directoties are stored. +# - +# - If not set, script tries to determine it. +# - +# - Example: +#- WEBSITES_ROOT_DIR="/var/www/html/projekte" +# - +#WEBSITES_ROOT_DIR="" + +# - Create Symlink for Website's Base Directory +# - +# - Defaults to 'false' +# - +#CREATE_SYMLINK_WEB_BASE_DIR= diff --git a/create_vhost_php.sh b/create_vhost_php.sh index 6d870b8..a211fe4 100755 --- a/create_vhost_php.sh +++ b/create_vhost_php.sh @@ -1,10 +1,13 @@ #!/usr/bin/env bash -#_COMMON_FCGID_CONFIG_PATH=/var/www/html/projekte/_FCGI_DEFAULT -__CUSTOM_IPV4_LOG=ipv4_requests.log -__CUSTOM_IPV6_LOG=ipv6_requests.log -function usage() { +log_file="$(mktemp)" + +## --- +## --- Some functions +## --- + +usage() { echo [ -n "$1" ] && echo -e "Error: $1\n" @@ -27,37 +30,130 @@ cat< - Only used if type is fcgi (\"-t FCGID\"). If given, a common + -l + If set, logfiles for the new site will go there. + + -n + If set, project name will be used as name of the websites + base directory. Otherwise . or .. + will be used. + + -p + Only used if type is fcgi ("-t FCGID"). If given, a common existing configuration directory will be used for FCGI configurations. if not given, a site-specific configuration directory will be created. -t - One of \"PHP-FPM\", \"FCGID\" or \"MOD_PHP\" + One of "PHP-FPM", "FCGID" or "MOD_PHP" If not give, the site url will be requested. -S - Only used if type is php-fpm (\"-t PHP-FPM\"). + Only used if type is php-fpm ("-t PHP-FPM"). -q Don't print summary before starting creation the vhost entry is set - -u + -u i.e. www.oopen.de If not give, the site url will be requested. + -V + If set, vhost configuration will be stored there. + + -v + i.e 5.6 + If not give, the PHP version will be requested. + EOF exit 1 } -## - Determine the installed different PHP major versions -## - +# - Check if a given array (parameter 2) contains a given string (parameter 1) +# - +containsElement () { + local e + for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done + return 1 +} + +# - Remove leading/trailling whitespaces +# - +trim() { + local var="$*" + var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters + var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters + echo -n "$var" +} + +echononl(){ + echo X\\c > /tmp/shprompt$$ + if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then + echo "$*\\c" 1>&2 + else + echo -e -n "$*" 1>&2 + fi + rm /tmp/shprompt$$ +} +fatal(){ + echo "" + if [ "X$*" != "X" ]; then + echo -e "\t[ \033[31m\033[1mError\033[m ]: $*" + echo "" + fi + echo -e "\t\033[31m\033[1mExiting installation now..\033[m" + echo "" + rm -f $log_file + exit 1 +} +info (){ + echo "" + echo -e "\t[ \033[32m\033[1mInfo\033[m ]: $*" + echo "" +} +warn (){ + echo "" + echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*" + echo "" +} +error (){ + echo "" + echo -e "\t[ \033[31m\033[1mError\033[m ]: $*" + echo "" +} + +echo_ok() { + echo -e "\033[85G[ \033[32mok\033[m ]" + ## echo -e " [ ok ]" +} +echo_failed(){ + echo -e "\033[85G[ \033[1;31mfailed\033[m ]" + ## echo -e " [ failed ]" +} +echo_skipped() { + echo -e "\033[85G[ \033[30m\033[1mskipped\033[m ]" +} +## --- +## --- END: functions +## --- + + +# --- +# - Try to determin some server settings +# --- + +_base_webserver_info_needed=false +_pass_apache_base_dir=false +_pass_web_user=false +_pass_server_admin=false + +# - Determine the installed different PHP major versions +# - __major_php_verisons="" _php_installation_dirs=`find /usr/local -mindepth 1 -maxdepth 1 -type l -name "*php-*" -print | sort` for dir in $_php_installation_dirs ; do @@ -66,80 +162,14 @@ for dir in $_php_installation_dirs ; do done _major_php_verisons=`echo "$__major_php_verisons" | sed 's/^ *//'` -## - Defaults -## - -_suEXEC=false -_auto="" -create_phpinfo_file=true -site_url="" -_type="" -_COMMON_FCGID_CONFIG_PATH="" -_UNIX_FPM_SOCKET="" -major_php_verison="" -_print_summary=true -_create_symlink_web_base_dir=false -_symlink_web_base_dir="" - -while getopts aChp:sS:t:u:v: opt ; do - case $opt in - a) _auto="auto" ;; - C) create_phpinfo_file="false" ;; - h) usage ;; - p) if [ -n "$OPTARG" -a -d "$OPTARG" ]; then - _COMMON_FCGID_CONFIG_PATH=$OPTARG - fi - ;; - q) _print_summary=false ;; - S) if [ -n "$OPTARG" -a -S "$OPTARG" ]; then - unix_socket=$OPTARG - connection="unix_socket" - _connection_msg="Unix Socket" - fi - ;; - t) if [ "$OPTARG" = "PHP-FPM" -o "$OPTARG" = "FCGID" -o "$OPTARG" = "MOD_PHP" ]; then - _type=$OPTARG - fi - ;; - u) site_url=$OPTARG ;; - v) - for _version in $_major_php_verisons ; do - if [ "$OPTARG" = "$_version" ]; then - major_php_verison=$OPTARG - fi - done - ;; - \?) usage - esac -done - -#echo -#echo "_auto..............: $_auto" -#echo "site_url...........: $site_url" -#echo "_type..............: $_type" -#echo "fcgi_common_path...: $_COMMON_FCGID_CONFIG_PATH" -#echo "unix_socket........: $unix_socket" -#echo "major_php_verison..: $major_php_verison" -#echo "_print_summary.....: $_print_summary" -#echo - - -#__ipv4="83.223.86.164" -#__ipv6="2a01:30:1fff:a::164" +# - Determin IP Addresses +# - __ipv4="`ifconfig | grep -e \"^\s*inet Adresse\" | grep -v \"127.0.0.1\" | awk '{print$2}' | cut -d\":\" -f2 | sort | head -1`" __ipv6="`ifconfig | grep -e \"^\s*inet6-Adresse\" | awk '{print$2}' | grep -v -e \"^::1/\" | grep -v -e \"^fe80\" | cut -d\"/\" -f1 | sort | head -1`" - -## - Needed for PHP-FPM environment -## - -## - Default values -## - -_tcp_host=127.0.0.1 -_tcp_port=9000 - - -## - Determin httpd binary -## - +# - Determin httpd binary +# - _httpd_binary="`which httpd`" if [ -z "$_httpd_binary" ]; then _httpd_binary="`ps -C httpd -f | grep -e \"^root\" | awk '{print$8}'`" @@ -150,10 +180,8 @@ if [ -z "$_httpd_binary" ]; then fi fi -_base_webserver_info_needed=false -## - Determin websever user -## - -_pass_web_user=false +# - Determin websever user/group +# - web_user="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^User" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`" web_group="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^Group" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`" if [ -z "$web_user" -o -z "$web_group" ]; then @@ -162,10 +190,8 @@ else _pass_web_user=true fi - -## - Determin ServerRoot Directory -## - -_pass_apache_base_dir=false +# - Determin ServerRoot Directory +# - apache_base_dir=`$_httpd_binary -t -D DUMP_RUN_CFG | grep ServerRoot | awk '{print$2}' | tr -d '"'` if [ "`realpath /usr/local/apache2`" = "$apache_base_dir" ]; then apache_base_dir="/usr/local/apache2" @@ -184,10 +210,8 @@ else _pass_apache_base_dir=true fi - -## - Determin (default) ServerAdmin E-Mail Address" -## - -_pass_server_admin=false +# - Determin (default) ServerAdmin E-Mail Address" +# - if [ -f "${apache_base_dir}/conf/httpd.conf" ]; then server_admin="`cat ${apache_base_dir}/conf/httpd.conf | grep ServerAdmin | grep -v -e \"^\s*#\" | awk '{print$2}'`" fi @@ -197,82 +221,119 @@ else _pass_server_admin=true fi -## - Determine the installed different PHP major versions -## - -#__major_php_verisons="" -#_php_installation_dirs=`find /usr/local -mindepth 1 -maxdepth 1 -type l -name "*php-*" -print | sort` -#for dir in $_php_installation_dirs ; do -# _major_version="${dir##*-}" -# __major_php_verisons="$__major_php_verisons $_major_version" -#done -#_major_php_verisons=`echo "$__major_php_verisons" | sed 's/^ *//'` + +# --- +# - Set Default Values +# ---- + +# - Needed for PHP-FPM environment +# - + +_tcp_host=127.0.0.1 +_tcp_port=9000 + +__CUSTOM_IPV4_LOG=ipv4_requests.log +__CUSTOM_IPV6_LOG=ipv6_requests.log + +_suEXEC=false +_auto="" +site_url="" +_type="" +_COMMON_FCGID_CONFIG_PATH="" +major_php_verison="" +_print_summary=true +_symlink_web_base_dir="" + +CREATE_PHPINFO_FILE=true +USE_PROJECT_NAME=false +PROJECT_NAME="" +COMMON_LOGFILE_DIR="" +VHOST_DIR="" +WEBSITES_ROOT_DIR="" +CREATE_SYMLINK_WEB_BASE_DIR=false +# --- +# - Read Configuration File (if exists) +# - +# - Note: previously Default Settings will be overwriten +# --- -## --- Some functions -## --- +script_base_dir="$(realpath $(dirname $0))" +conf_file="${script_base_dir}/conf/create_vhost_php.conf" -## Check if a given array (parameter 2) contains a given string (parameter 1) -containsElement () { - local e - for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done - return 1 -} - -echononl(){ - echo X\\c > /tmp/shprompt$$ - if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then - echo "$*\\c" 1>&2 +echo "" +echononl "\tInclude Configuration file.." +if [[ ! -f $conf_file ]]; then + echo_skipped +else + source $conf_file > $log_file 2>&1 + if [[ $? -eq 0 ]]; then + echo_ok else - echo -e -n "$*" 1>&2 + echo_failed + error "$(cat $log_file)" fi - rm /tmp/shprompt$$ -} - -fatal(){ - echo "" - if [ "X$*" != "X" ]; then - echo -e "\t[ \033[31m\033[1mError\033[m ]: $*" - echo "" - fi - echo -e "\t\033[31m\033[1mExiting installation now..\033[m" - echo "" - exit 1 -} - -info (){ - echo "" - echo -e "\t[ \033[32m\033[1mInfo\033[m ]: $*" - echo "" -} - -warn (){ - echo "" - echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*" - echo "" -} +fi -error (){ - echo "" - echo -e "\t[ \033[31m\033[1mError\033[m ]: $*" - echo "" -} +# --- +# - Read in Commandline arguments +# - +# - Note: previously Settings (also those from configuration file) will be overwriten +# --- +while getopts aChl:n:p:sS:t:u:V:v: opt ; do + case $opt in + a) _auto="auto" ;; + C) CREATE_PHPINFO_FILE="false" ;; + h) usage ;; + l) COMMON_LOGFILE_DIR="$OPTARG" + ;; + n) USE_PROJECT_NAME=true + PROJECT_NAME="$OPTARG" + ;; + p) if [ -n "$OPTARG" -a -d "$OPTARG" ]; then + _COMMON_FCGID_CONFIG_PATH=$OPTARG + fi + ;; + q) _print_summary=false ;; + S) if [ -n "$OPTARG" -a -S "$OPTARG" ]; then + unix_socket=$OPTARG + connection="unix_socket" + _connection_msg="Unix Socket" + fi + ;; + t) if [ "$OPTARG" = "PHP-FPM" -o "$OPTARG" = "FCGID" -o "$OPTARG" = "MOD_PHP" ]; then + _type=$OPTARG + fi + ;; + u) site_url=$OPTARG ;; + V) VHOST_BASE_DIR="$OPTARG" + ;; + v) + for _version in $_major_php_verisons ; do + if [ "$OPTARG" = "$_version" ]; then + major_php_verison=$OPTARG + fi + done + ;; + \?) usage + esac +done + +echo +echo "_auto..............: $_auto" +echo "site_url...........: $site_url" +echo "_type..............: $_type" +echo "COMMON_LOGFILE_DIR.: $COMMON_LOGFILE_DIR" +echo "PROJECT_NAME.......: $PROJECT_NAME" +echo "fcgi_common_path...: $_COMMON_FCGID_CONFIG_PATH" +echo "unix_socket........: $unix_socket" +echo "major_php_verison..: $major_php_verison" +echo "_print_summary.....: $_print_summary" +echo -echo_ok() { - echo -e "\033[85G[ \033[32mok\033[m ]" - ## echo -e " [ ok ]" -} -echo_failed(){ - echo -e "\033[85G[ \033[1;31mfailed\033[m ]" - ## echo -e " [ failed ]" -} -echo_skipped() { - echo -e "\033[85G[ \033[33m\033[1mskipped\033[m ]" -} -## --- -## --- END: functions ## -------------------------------------------------- @@ -302,6 +363,23 @@ else echo "Create Configuration for site \"$site_url\".." fi +if $USE_PROJECT_NAME && [[ -z "$PROJECT_NAME" ]]; then + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo "Insert Project Name." + echo "" + echo "" + PROJECT_NAME= + echononl "Project Name: " + read PROJECT_NAME + while [[ -z "$(trim $PROJECT_NAME)" ]] ; do + echo -e "\n\t\033[33m\033[1mEingabe erforderlich.\033[m\n" + echononl "Project Name: " + read PROJECT_NAME + done +fi + echo "" echo -e "\033[32m--\033[m" echo "" @@ -519,13 +597,17 @@ if [ -z "$_existing_vhost_config_file" ]; then _DOMAIN=$_HOST fi - if [ -d "/var/www/html/projekte" ]; then - __server_website_root_dir="/var/www/html/projekte" - elif [ -d "/var/www" ]; then - __server_website_root_dir="/var/www" + if [[ -n "$(trim $WEBSITES_ROOT_DIR)" ]]; then + _server_website_root_dir="$WEBSITES_ROOT_DIR" + else + if [ -d "/var/www/html/projekte" ]; then + __server_website_root_dir="/var/www/html/projekte" + elif [ -d "/var/www" ]; then + __server_website_root_dir="/var/www" + fi fi - #clear + echo "" if [ "$_HOST" = "www" ]; then echo -e "\033[21G\033[32mCreate vhost configuration \"${_DOMAIN}.${_TDL}.conf.$_new_extension\"\033[m" @@ -536,29 +618,35 @@ if [ -z "$_existing_vhost_config_file" ]; then echo -e "\033[21GInsert needed Information for VHost Configuration.." echo "" - echo "" - echo -e "\033[32m--\033[m" - echo "" - echo "Servers root directory for websites (i.e. /var/www).." - echo "" - echo "" - _server_website_root_dir= - while [ "X$_server_website_root_dir" = "X" ] ; do - echononl "Root Directory for websites [$__server_website_root_dir]: " - read _doc_root - if [ "X$_server_website_root_dir" = "X" ]; then - _server_website_root_dir=$__server_website_root_dir - fi - if [ -n "$_server_website_root_dir" -a ! -d "$_server_website_root_dir" ]; then - echo -e "\n\t\033[1;33mDirectory \"$_server_website_root_dir\" does not exist.\n\tTry again..\033[m\n" - _server_website_root_dir="" - fi - done + if [[ -z "$_server_website_root_dir" ]]; then + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo "Servers root directory for websites (i.e. /var/www).." + echo "" + echo "" + _server_website_root_dir= + while [ "X$_server_website_root_dir" = "X" ] ; do + echononl "Root Directory for websites [$__server_website_root_dir]: " + read _doc_root + if [ "X$_server_website_root_dir" = "X" ]; then + _server_website_root_dir=$__server_website_root_dir + fi + if [ -n "$_server_website_root_dir" -a ! -d "$_server_website_root_dir" ]; then + echo -e "\n\t\033[1;33mDirectory \"$_server_website_root_dir\" does not exist.\n\tTry again..\033[m\n" + _server_website_root_dir="" + fi + done + fi - if [ "$_HOST" = "www" ]; then - __web_base_dir=${_server_website_root_dir}/${_DOMAIN}.$_TDL + if $USE_PROJECT_NAME ; then + __web_base_dir=${_server_website_root_dir}/$PROJECT_NAME else - __web_base_dir=${_server_website_root_dir}/${site_url} + if [ "$_HOST" = "www" ]; then + __web_base_dir=${_server_website_root_dir}/${_DOMAIN}.$_TDL + else + __web_base_dir=${_server_website_root_dir}/${site_url} + fi fi _server_name=$site_url @@ -589,37 +677,40 @@ if [ -z "$_existing_vhost_config_file" ]; then __document_root=${_web_base_dir}/htdocs - echo "" - echo -e "\033[32m--\033[m" - echo "" - echo "It is possible to create a symlink for \"`basename $_web_base_dir`\". You can do" - echo "that here bygiving a name for the symlink." - echo "" - echo -e "Type \"\033[33mNone\033[m\" if no symlink is wanted." - echo "" - echo "" + if $CREATE_SYMLINK_WEB_BASE_DIR ; then + __symlink_web_base_dir=`basename $_web_base_dir | cut -d '.' -f 1` + if [[ "$__symlink_web_base_dir" != "$(basename $_web_base_dir)" ]] ; then - __symlink_web_base_dir=`basename $_web_base_dir | cut -d '.' -f 1` - echononl "Create Symlink for `basename $_web_base_dir`? [$__symlink_web_base_dir]: " - read _symlink_web_base_dir - if [ "X$_symlink_web_base_dir" = "Xnone" -o "X$_symlink_web_base_dir" = "XNone" ]; then - _create_symlink_web_base_dir=false - else - _create_symlink_web_base_dir=true - fi - if [ "X$_symlink_web_base_dir" = "X" ]; then - _symlink_web_base_dir=$__symlink_web_base_dir - fi - if [ "$_symlink_web_base_dir" = "`basename $_web_base_dir`" ]; then - warn "Given name for symlink is equal to `basename $_web_base_dir`.\n\t No symlink will be created.." - _create_symlink_web_base_dir=false + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo "It is possible to create a symlink for \"`basename $_web_base_dir`\". You can do" + echo "that here bygiving a name for the symlink." + echo "" + echo -e "Type \"\033[33mNone\033[m\" if no symlink is wanted." + echo "" + echo "" + + echononl "Create Symlink for `basename $_web_base_dir`? [$__symlink_web_base_dir]: " + read _symlink_web_base_dir + if [ "X$_symlink_web_base_dir" = "Xnone" -o "X$_symlink_web_base_dir" = "XNone" ]; then + CREATE_SYMLINK_WEB_BASE_DIR=false + else + CREATE_SYMLINK_WEB_BASE_DIR=true + fi + if [ "X$_symlink_web_base_dir" = "X" ]; then + _symlink_web_base_dir=$__symlink_web_base_dir + fi + if [ "$_symlink_web_base_dir" = "`basename $_web_base_dir`" ]; then + warn "Given name for symlink is equal to `basename $_web_base_dir`.\n\t No symlink will be created.." + CREATE_SYMLINK_WEB_BASE_DIR=false + fi + else + CREATE_SYMLINK_WEB_BASE_DIR=false + fi fi - __log_dir=${_web_base_dir}/logs - - __vhost_base_dir=${apache_base_dir}/conf/vhosts - echo "" echo -e "\033[32m--\033[m" echo "" @@ -640,21 +731,30 @@ if [ -z "$_existing_vhost_config_file" ]; then done - echo "" - echo "" - echo -e "\033[32m--\033[m" - echo "" - echo "Insert Directory where logfiles should stay.." - echo "" - echo "" - _log_dir= - while [ "X$_log_dir" = "X" ] ; do - echononl "Log Directory [$__log_dir]: " - read _log_dir - if [ "X$_log_dir" = "X" ]; then - _log_dir=$__log_dir - fi - done + if [[ -n "$(trim $COMMON_LOGFILE_DIR)" ]]; then + _log_dir="$COMMON_LOGFILE_DIR" + else + __log_dir=${_web_base_dir}/logs + fi + + if [[ -z "$_log_dir" ]]; then + echo "" + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo "Insert Directory where logfiles should stay.." + echo "" + echo "" + _log_dir= + while [ "X$_log_dir" = "X" ] ; do + echononl "Log Directory [$__log_dir]: " + read _log_dir + if [ "X$_log_dir" = "X" ]; then + _log_dir=$__log_dir + fi + done + fi + if [ "$_HOST" = "www" ]; then _combined_custom_log="$_log_dir/${_DOMAIN}-access.log" _error_log="$_log_dir/${_DOMAIN}-error.log" @@ -715,25 +815,34 @@ if [ -z "$_existing_vhost_config_file" ]; then fi - echo "" - echo "" - echo -e "\033[32m--\033[m" - echo "" - echo "Insert Directory where the vhost configuration file should stay.." - echo "" - echo "" - _vhost_base_dir= - while [ "X$_vhost_base_dir" = "X" ] ; do - echononl "VHost Base Directory [$__vhost_base_dir]: " - read _vhost_base_dir - if [ "X$_vhost_base_dir" = "X" ]; then - _vhost_base_dir=$__vhost_base_dir - fi - if [ ! -d "$_vhost_base_dir" ];then - echo -e "\n\t\033[1;33mDirectory \"${_vhost_base_dir}\" not found! Try again..\033[m\n" - _vhost_base_dir="" - fi - done + if [[ -n "$(trim $VHOST_BASE_DIR)" ]]; then + _vhost_base_dir="$VHOST_BASE_DIR" + else + __vhost_base_dir=${apache_base_dir}/conf/vhosts + fi + + if [[ -z "$_vhost_base_dir" ]]; then + echo "" + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo "Insert Directory where the vhost configuration file should stay.." + echo "" + echo "" + _vhost_base_dir= + while [ "X$_vhost_base_dir" = "X" ] ; do + echononl "VHost Base Directory [$__vhost_base_dir]: " + read _vhost_base_dir + if [ "X$_vhost_base_dir" = "X" ]; then + _vhost_base_dir=$__vhost_base_dir + fi + if [ ! -d "$_vhost_base_dir" ];then + echo -e "\n\t\033[1;33mDirectory \"${_vhost_base_dir}\" not found! Try again..\033[m\n" + _vhost_base_dir="" + fi + done + fi + if [ "$_HOST" = "www" ]; then _new_vhost_config_file=${_vhost_base_dir}/${_DOMAIN}.${_TDL}.conf.$_new_extension else @@ -1567,6 +1676,10 @@ if $_print_summary ; then echo -e "\033[21G\033[32mCreate environment for site \033[m$site_url\033[32m :\033[m" echo "" + if [[ -n "$PROJECT_NAME" ]]; then + echo "" + echo -e "Project Name......................: \033[1m$PROJECT_NAME\033[m" + fi echo "" echo -e "PHP environment...................: \033[33m\033[1m${_type_msg}\033[m" if [ "$_type" = "FCGID" ]; then @@ -1622,7 +1735,7 @@ if $_print_summary ; then echo "ServerAlias(es)...................: ${_server_aliases_arr[@]}" echo "" echo "Base Directory for site...........: $_web_base_dir" - if $_create_symlink_web_base_dir ; then + if $CREATE_SYMLINK_WEB_BASE_DIR ; then echo "Symlink for Base Directory........: `dirname $_web_base_dir`/$_symlink_web_base_dir" fi echo "Document Root Directory...........: $_doc_root" @@ -1764,24 +1877,21 @@ else echo_skipped fi - -echononl "\tCreate \"DocumentRoot\" directory.." -if [ ! -d "$_doc_root" ]; then - - mkdir $_doc_root - if [ "$?" = "0" ]; then - echo_ok - - else - echo_failed - error "Cannot create document root directory \"$_doc_root\"." - fatal - fi +echononl "\tChange owner of Web Base directory \"$_web_base_dir\".." +if $_suEXEC ; then + chown -R ${suEXEC_user}:$suEXEC_group $_web_base_dir else - echo_skipped + chown -R ${web_user}:${web_group} $_web_base_dir +fi +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error "Cannot change owner of web base directory \"$_web_base_dir\"" + fatal fi -if $_create_symlink_web_base_dir ; then +if $CREATE_SYMLINK_WEB_BASE_DIR ; then echononl "\tCreate Symlink $_symlink_web_base_dir --> `basename $_web_base_dir`" if [ -h "`dirname $_web_base_dir`/$_symlink_web_base_dir" ]; then echo_skipped @@ -1798,7 +1908,23 @@ if $_create_symlink_web_base_dir ; then fi fi fi - + + +echononl "\tCreate \"DocumentRoot\" directory.." +if [ ! -d "$_doc_root" ]; then + + mkdir $_doc_root + if [ "$?" = "0" ]; then + echo_ok + + else + echo_failed + error "Cannot create document root directory \"$_doc_root\"." + fatal + fi +else + echo_skipped +fi echononl "\tChange owner of \"DocumentRoot\" directory.." if $_suEXEC ; then @@ -2825,7 +2951,7 @@ else fi echononl "\tCreate \"phpinfo.php\" file.." -if $create_phpinfo_file ; then +if $CREATE_PHPINFO_FILE ; then if [ ! -f "${_doc_root}/phpinfo.php" ]; then cat < ${_doc_root}/phpinfo.php @@ -2882,6 +3008,7 @@ if $_syntax_ok ; then fi +rm -f $log_file echo echo exit 0