Virtual web hosting (in one script)

dodije čovjeku nakucavati… pa legne skriptica :slight_smile:

http://aldin.linux.org.ba/hosting.html

ako ima neko da je radio sa skriptama (argumenati + uslovi + help) itd dobrodošao je :slight_smile:

mogao bi možda uskoro da legne jedan fin howto na temu: apache + mod_fcgid + suexec + php

credits:
Adis - inspired :), google, man…

Cool, svojim sam se očima uvjerio da radi :wink:

Nekada davno pokušavao sam napraviti nešto slično, code snippet je ispod…

Anyway, tu gomilu echo linija možeš zamijeniti sa “heredoc” stringovima (kao HELP_MSG);
BASH inače ima pravo solidnu getopts implementaciju,
napraviš getopts string (opcije sa : ispred imena primaju argument), te u switch izrazu hvataš vrijednost argumenta sa OPTARG

[code]…
HELP_MSG=$(cat <<-EOD
Apache virtual host management tool
Usage: apache-vhost [options] {action} [vhost] …

Note: You must specify an action.
Example: $PROGNAME add example.net


Actions:	
  add
  remove
  suspend
  show
  list-all

Short options:
  -h                     Display this help screen
  -d <dir>               Output directory
  -v                     Display version

EOD)

if [ “$#” -eq 0 ];then
echo "$HELP_MSG"
exit $E_OPTERR
fi

while getopts “:d:f:g:n:u:sv” options; do
case $options in
"d" )
echo “CONF DIR”
;;

	"s" )
		ENABLE_SUEXEC=1
	;;

	"v" )
		echo -e "$PROGNAME, version $VERSION\n$COPYRIGHT"
		exit 0
	;;

	"u" )
		SUEXEC_USER="$OPTARG"
	;;
	
	"g" )
		SUEXEC_GROUP="$OPTARG"
	;;

	* )
		echo "$HELP_MSG"
		exit $E_OPTERR
	;;
esac

done
shift $(($OPTIND - 1))
…[/code]

danke :slight_smile:

btw ovdje se još može napraaviti ‘path’ varijabla da se malo razbistri :slight_smile:

npr

path=/srv/www/vhosts

i koristiti u kodu npr:

useradd -d $path/$domain itd.