diff --git a/action.sh b/action.sh index c99ca73..0c3b297 100755 --- a/action.sh +++ b/action.sh @@ -37,7 +37,7 @@ PASS=$(cat "$3") ## FUNCTIONS function checkaction { - REGEX="^adduser$|^changepw$|^listusers$|^userdetail$|^deluser$|^sizeall$|^sizeuser$|^viewdata$|^addalias$|^quota$" + REGEX="^adduser$|^changepw$|^listusers$|^userdetail$|^deluser$|^sizeall$|^sizeuser$|^viewdata$|^addalias$|^quota$|^installwp$" if [[ $1 =~ $REGEX ]]; then echo "true" else @@ -222,6 +222,11 @@ if [ "$ACTION" == "addalias" ]; then DEST=$PASS + if ! $(checkuser "$USER"); then + echo "Username \"$USER\" invalid" + exit 1 + fi + if $(userexists "$USER"); then echo "User \"$USER\" does already exist!" exit 1 @@ -382,3 +387,69 @@ if [ "$ACTION" == "deluser" ]; then fi fi # /deluser + +# # # # # +# INSTALL WORDPRESS +# # # # # +if [ "$ACTION" == "installwp" ]; then + echo "Installing WordPress..." + echo + + # $USER: Username for Wordpress + # $PASS: Email address for Wordpress user + + if ! $(checkuser "$USER"); then + echo "Username \"$USER\" invalid" + exit 1 + fi + + WEBDIR=$HOME/html + WPUSER=$USER + WPPASS=$(apg -n 1 -M NCL -m 14) + WPMAIL=$PASS + WPDOMAIN=http://$DOMAIN + + # Get MySQL password + LEAD='## > MYSQL' + TAIL='## < MYSQL' + MYSQLUSER=$SYSUSER + MYSQLDB=${MYSQLUSER}_wp + MYSQLPASS=$(sed -n "/$LEAD/,/$TAIL/ p" $NOTES | grep "^Pass:" | awk -F" " '{ print $2 }') + + # Check if ready for install: WEBDIR empty, Database available + if [ $(ls -a $WEBDIR | wc -l) -gt 2 ]; then + echo "The website directory \"$WEBDIR\" doesn't seem to be empty." + exit 1 + fi + if [ $(mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database | grep "^$$WPDB$" ; echo $?) = 0 ]; then + echo "The default database \"${USER}_wp\" already exists." + exit 1 + fi + + # Downloading wordpress + wget https://wordpress.org/latest.tar.gz + tar xfz latest.tar.gz + mv wordpress/* $WEBDIR + rm -r wordpress latest.tar.gz + + # Downloading wp-cli + curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar + chmod +x wp-cli.phar + mv wp-cli.phar $HOME/bin/ + + # Create database + mysql -e "CREATE DATABASE $WPDB;" + + # Use wp-cli to create config.php and install WP + wp core config --dbname=${MYSQLDB} --dbpass=${MYSQLPASS} --dbuser=${MYSQLUSER} --path=${WEBDIR} + wp core install --url="$WPDOMAIN" --title="CHANGE THIS TITLE" --admin_user=${WPUSER} --admin_password=${WPPASS} --admin_email=${WPMAIL} --path=${WEBDIR} + + # Update datasheet + TAIL='## < WORDPRESS' + sed -i "/$TAIL/i User: $WPUSER\nPass: $WPPASS\n" $NOTES + + echo "Wordpress successfully installed to $WPDOMAIN" + echo "You can login on $WPDOMAIN/wp-login.php" + echo "Please take a look into your data sheet for the login data." + +fi # /installwp diff --git a/index.php b/index.php index 1e14e7d..f6aa016 100644 --- a/index.php +++ b/index.php @@ -164,6 +164,29 @@ + + + +
Web Applications
+ + »« Install WordPress automatically +This install WordPress for your automatically. It only works if + your website directory is still empty and you didn't create a + database called #<yourusername#>_wp.
+ +