Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- mage2install()
- {
- if [ $(echo mysql --version | grep 5.6 | wc -l) == 0 ]; then
- echo "Insufficient MySQL Version"
- return 1
- fi
- if [ $(stat /etc/php-fpm.d/ | wc -l) == 0 ]; then
- echo "Non php-fpm server!"
- return 1
- fi
- #help dialog
- HELP='mage2_install \n
- Usage: \n
- mage2_install [opts] PATH : Install with default values. \n
- Supported Flags -- \n
- -n "..." Admin username (default: admin) \n
- -p "..." Admin password (default: random len12) \n
- -d "..." Database name (default: mage2) \n
- -o "..." Database user name (default: mage2) \n
- -P "..." Database user pass (default: random 12) \n
- -b "..." Base URL (grabbed from PWD) \n
- -B "..." Backend URL (default random 6_admin) \n
- -F "..." Admin user first name (default: SW Email) \n
- -L "..." Admin user last name (default: NULL) \n
- -E "..." Admin user email (default: grabbed from SW) \n '
- #check for help flag
- if [ getopts h storage ]; then
- echo $HELP
- fi
- #parse flags
- usr=pass=dbn=dbu=dbp=burl=aurl=fn=ln=email=0;
- while getopts "n:p:d:o:b:B:F:L:E:" storage; do
- case "$storage" in
- "n")
- name=1
- ADMIN_USR=$OPTARG
- ;;
- "p")
- pass=1
- ADMIN_PASS=$OPTARG
- ;;
- "d")
- dbn=1
- DB_NAME=$OPTARG
- ;;
- "o")
- dbu=1
- DB_USR=$OPTARG
- ;;
- "P")
- dbp=1
- DB_PASS=$OPTARG
- ;;
- "b")
- burl=1
- BASE_URL=$OPTARG
- ;;
- "s")
- sample=1
- ;;
- "B")
- aurl=1
- ADMIN_URL=$OPTARG
- ;;
- "F")
- fname=1
- FNAME=$OPTARG
- ;;
- "L")
- lname=1
- LNAME=$OPTARG
- ;;
- "E")
- email=1
- EMAIL=$OPTARG
- ;;
- *)
- return -1
- esac
- done
- #check if user can access dir...
- UNIXUSR=` echo $PWD | awk -F"/chroot/home/|/home/" '{ print $2 }' | awk -F"/" '{ print $1 }' `
- if [ `whichphp $UNIXUSR | grep -E "55|56" | wc -l` == 0 ]; then
- echo "Invalid PHP version!"
- return 1
- fi
- #has to be 55 or 56...
- if [ `whichphp $UNIXUSR | grep "55"` != 0 ]; then
- phpv=php55
- else
- phpv=php56
- fi
- sw_email=`sudo -u $UNIXUSR siteworx -u --controller Overview --action listAccountDetails | grep email | awk '{print $2}'`
- primary=`sudo -u $UNIXUSR siteworx -u --controller Overview --action listAccountDetails | grep master | awk '{print $2}'`
- #working directory
- work_dir="${@: -1}"
- if [ `sudo -u $UNIXUSR touch $work_dir` != 1 ]; then
- echo "Invalid installation directory!"
- return 1
- fi
- #password
- if [ $pass==0 ]; then
- ADMIN_PWD=`mkpasswd -l 12 -C 4 -c 2 -d 4 -s 0`
- fi
- #admin user
- if [ $usr==0 ]; then
- ADMIN_USR="admin"
- fi
- #base url
- if [ $burl==0 ]; then
- tempurl=`echo $PWD | awk -F"/chroot/home/|/home/" '{ print $2 }' | awk -F"/" '{ print $2 }' `
- BASE_URL="http://$tempurl/"
- fi
- #db user, name and user_pass
- if [ dbu==0 ]; then
- DB_USR=$UNIXUSR"_mage2"
- fi
- if [ dbn==0 ]; then
- DB_NAME=$UNIXUSR"_mage2"
- fi
- if [ dbp==0 ]; then
- DB_PASS=`mkpasswd -l 12 -C 2 -c 2 -d 2 -s 0`
- fi
- #user info
- if [ fname==0 ]; then
- FNAME=$sw_email
- fi
- if [ lname==0 ]; then
- LNAME="NULL"
- fi
- if [ email==0 ]; then
- EMAIL=$sw_email
- fi
- #backend name
- if [ aurl==0 ]; then
- BACKEND=`mkpasswd -l 6 -C 2 -c 2 -d 2 -s 0`"_admin"
- fi
- #make the db
- sudo -u "$UNIXUSR" siteworx -u -n --login_domain="$primary" --controller MysqlDb --action add --name="$DB_NAME"
- #check because interworx returns 0 always :(
- ret=`sudo -u "$UNIXUSR" siteworx -u -n --login_domain="$primary" --controller MysqlDB --action list | grep "$DB_NAME" | wc -l`
- if [ ret==0 ]; then
- echo "Failed to create database!"
- return 1
- fi
- #do it again for the user
- return=`sudo -u "$UNIXUSR" siteworx -u -n --login_domain="$primary" --controller MysqlUser --action add --name="$DB_NAME" --password="$DB_PASS" --confirm_password="$DB_PASS" `
- ret=`sudo -u "$UNIXUSR" siteworx -u -n --login_domain="$primary" --controller MysqlUser --action list | grep "$DB_USR" | wc -l`
- if [ ret==0 ]; then
- echo "Failed to add db user!"
- return 1
- fi
- #permissions
- sudo -u $UNIXUSR -u -n --login_domain=$primary --controller MysqlPerms --action add --name $DB_NAME --user $DB_USR
- ret=`sudo -u "$UNIXUSR" siteworx -u -n --login_domain="$primary" --controller MysqlPerms --action queryDatabaseUserPerms --name "$DB_NAME" | grep "$DB_USR" | wc -l`
- if [ ret==0 ]; then
- echo "Failed to assign user permissions!"
- return 1
- fi
- echo -e "Installation details -- \n
- Working Directory: $work_dir \n
- Frontend URL: $BASE_URL \n
- Backend URL: $ADMIN_URL \n
- Backend User: $ADMIN_USR \n
- Backend Password: $ADMIN_PASS \n
- Database: $DB_NAME \n
- DB User: $DB_USER \n
- DB Pass: $DB_PASS \n
- Version: Latest"
- echo "Proceed with installation? [Y/n]"
- read user_in
- if [ "$user_in" != "y" ] && [ "$user_in" != "Y" ] && ![ -z "$user_in" ]; then
- echo "Terminating install process. Database information may have been created and needs to removed before attempting again."
- return 1
- fi
- echo "Downloading Magento installation package..."
- if [ sample==1 ]; then
- wget http://pubfiles.nexcess.net/magento/ce-packages/magento2-latest-with-samples.tar.gz -o "$work_dir/magento2.tar.gz"
- else
- curl http://pubfiles.nexcess.net/magento/ce-packages/magento2-latest.tar.gz -o "$work_dir/magento2.tar.gz"
- fi
- tar zxf "$work_dir/magento2.tar.gz"
- echo "Finished acquiring installation package."
- echo "Running installer now."
- if [ "$phpv"=="php55" ]; then
- /opt/nexcess/php55u/root/usr/bin/php -d memory_limit=1024M bin/magento setup:install \
- --base-url=$BASE_URL \
- --db-host=127.0.0.1 \
- --db-name=$DB_NAME \
- --db-user=$DB_USR \
- --db-password=$DB_PWD \
- --admin-firstname=$FNAME \
- --admin-lastname=$LNAME \
- --admin-email=$EMAIL \
- --admin-user=$ADMIN_USR \
- --admin-password=$ADMIN_PWD \
- --use-rewrites=1 \
- --language=en_US \
- --currency=USD \
- --timezone=America/New_York \
- --backend-front-name=$ADMIN_URL ; \
- else
- /opt/nexcess/php56u/root/usr/bin/php -d memory_limit=1024M bin/magento setup:install \
- --base-url=$BASE_URL \
- --db-host=127.0.0.1 \
- --db-name=$DB_NAME \
- --db-user=$DB_USR \
- --db-password=$DB_PWD \
- --admin-firstname=$FNAME \
- --admin-lastname=$LNAME \
- --admin-email=$EMAIL \
- --admin-user=$ADMIN_USR \
- --admin-password=$ADMIN_PWD \
- --use-rewrites=1 \
- --language=en_US \
- --currency=USD \
- --timezone=America/New_York \
- --backend-front-name=$ADMIN_URL ; \
- fi
- echo "Applying permissions fix..."
- sed -i 's/0770/0775/' $work_dir"vendor/magento/framework/Filesystem/DriverInterface.php"
- echo "Installation completed!"
- echo "Frontend: $BASE_URL"
- echo "Backend: $BASE_URL$BACKEND"
- echo "User: $ADMIN_USR"
- echo "Password: $ADMIN_PWD"
- return 0;
- }
- #corlando's whichphp script
- whichphp ()
- {
- phpregex="php[0-9][0-9]";
- if [[ -z "$1" ]]; then
- printf "No argument given; 1st argument must be a shell user\n";
- else
- if ! id -u "$1" > /dev/null 2>&1; then
- printf "User $1 doesn't exist.\n";
- else
- shelluser="$1";
- if [[ ! -e "/var/spool/cron/${shelluser}" ]]; then
- printf "%s - %s\n" "cron: php53" "No crontab found.";
- else
- if ! grep -qoP "$phpregex" "/var/spool/cron/${shelluser}"; then
- printf "%s - %s\n" "cron: php53" "No php entry found in crontab.";
- else
- phpcronversion=$(grep -oP "$phpregex" "/var/spool/cron/${shelluser}" | head -n1);
- printf "%s %s\n" "cron:" "$phpcronversion";
- fi;
- fi;
- if [[ ! -e "/home/${shelluser}/.bashrc" ]]; then
- printf "%s - %s\n" "cli: php53" "No bashrc found.";
- else
- if ! grep -qoP "$phpregex" "/home/${shelluser}/.bashrc"; then
- printf "%s - %s\n" "cli: php53" "No PHP entry in bashrc found.";
- else
- phpcliversion=$(grep -oP "$phpregex" "/home/${shelluser}/.bashrc");
- printf "%s %s\n" "cli:" "$phpcliversion";
- fi;
- fi;
- for i in /opt/nexcess/php*u/root/etc/php-fpm.d/${shelluser}.conf;
- do
- if [[ -e $i ]] && [[ -s $i ]] && grep -qvP "^;" $i; then
- phpwebversion=$(echo "$i" | grep -oP "$phpregex");
- printf "%s %s\n" "web:" "$phpwebversion";
- else
- continue;
- fi;
- done;
- if [[ -z "$phpwebversion" ]]; then
- printf "%s - %s\n" "web: php53" "No fpm pool files in /opt.";
- fi;
- fi;
- fi;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement