Advertisement
Guest User

Untitled

a guest
Apr 1st, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.87 KB | None | 0 0
  1. mage2_install{
  2.  
  3. if [ $(echo mysql --version | grep 5.6 | wc -l) == 0 ]; then
  4. echo "Insufficient MySQL Version"
  5. exit 1
  6. fi
  7. if [ $(stat /etc/php-fpm.d/ | wc -l) == 0 ]; then
  8. echo "Non php-fpm server!"
  9. exit 1
  10. if
  11.  
  12. #help dialog
  13. HELP='mage2_install \n
  14. Usage: \n
  15. mage2_install [opts] PATH : Install with default values. \n
  16. Supported Flags -- \n
  17. -n "..." Admin username (default: admin) \n
  18. -p "..." Admin password (default: random len12) \n
  19. -d "..." Database name (default: mage2) \n
  20. -o "..." Database user name (default: mage2) \n
  21. -P "..." Database user pass (default: random 12) \n
  22. -b "..." Base URL (grabbed from PWD) \n
  23. -B "..." Backend URL (default random 6_admin) \n
  24. -F "..." Admin user first name (default: SW Email) \n
  25. -L "..." Admin user last name (default: NULL) \n
  26. -E "..." Admin user email (default: grabbed from SW) \n ';
  27.  
  28. #check for help flag
  29. if [ getopts h storage ]; then
  30. echo $HELP;
  31. fi
  32.  
  33. #parse flags
  34. usr=pass=dbn=dbu=dbp=burl=aurl=fn=ln=email=0;
  35. while getopts "n:p:d:o:b:B:F:L:E:" storage; do
  36. case "$storage" in
  37. case n)
  38. name=1
  39. ADMIN_USR=$OPTARG
  40. ;;
  41. case p)
  42. pass=1
  43. ADMIN_PASS=$OPTARG
  44. ;;
  45. case d)
  46. dbn=1
  47. DB_NAME=$OPTARG
  48. ;;
  49. case o)
  50. dbu=1
  51. DB_USR=$OPTARG
  52. ;;
  53. case P)
  54. dbp=1
  55. DB_PASS=$OPTARG
  56. ;;
  57. case b)
  58. burl=1
  59. BASE_URL=$OPTARG
  60. ;;
  61. case B)
  62. aurl=1
  63. ADMIN_URL=$OPTARG
  64. ;;
  65. case F)
  66. fname=1
  67. FNAME=$OPTARG
  68. ;;
  69. case L)
  70. lname=1
  71. LNAME=$OPTARG
  72. ;;
  73. case E)
  74. email=1
  75. EMAIL=$OPTARG
  76. ;;
  77. *)
  78. exit -1
  79. esac
  80. done
  81.  
  82. #check if user can access dir...
  83. UNIXUSR=$( echo $PWD | awk -F"/chroot/home/|/home/" '{ print $2 }' | awk -F"/" '{ print $1 }' )
  84. if [ $(whichphp $UNIXUSR | grep -E "55|56" | wc -l) == 0 ]; then
  85. echo "Invalid PHP version!"
  86. exit 1
  87. fi
  88.  
  89. #has to be 55 or 56...
  90. if [ $(whichphp $UNIXUSR | grep "55") != 0 ]; then
  91. phpv=php55
  92. else
  93. phpv=php56
  94. fi
  95.  
  96. sw_email=$(sudo -u $UNIXUSR siteworx -u --controller Overview --action listAccountDetails | grep email | awk '{print $2}')
  97. primary=$(sudo -u $UNIXUSR siteworx -u --controller Overview --action listAccountDetails | grep master | awk '{print $2}')
  98.  
  99. #working directory
  100. work_dir="${@: -1}"
  101. if [ $(sudo -u $UNIXUSR touch $work_dir)!=1 ]; then
  102. echo "Invalid installation directory!"
  103. exit 1
  104. fi
  105.  
  106. #password
  107. if [ $pass==0 ]; then
  108. ADMIN_PWD=$(mkpasswd -l 12 -C 4 -c 2 -d 4 -s 0)
  109. fi
  110.  
  111. #admin user
  112. if [ $usr==0 ]; then
  113. ADMIN_USR="admin"
  114. fi
  115.  
  116. #base url
  117. if [ $burl==0 ]; then
  118. tempurl=$(echo $PWD | awk -F"/chroot/home/|/home/" '{ print $2 }' | awk -F"/" '{ print $2 }' ); \
  119. BASE_URL="http://$tempurl/"
  120. fi
  121.  
  122. #db user, name and user_pass
  123. if [ dbu==0 ]; then
  124. DB_USR=$UNIXUSR"_mage2"
  125. fi
  126. if [ dbn==0 ]; then
  127. DB_NAME=$UNIXUSR"_mage2"
  128. fi
  129. if [ dbp==0 ]; then
  130. DB_PASS=$(mkpasswd -l 12 -C 2 -c 2 -d 2 -s 0)
  131. fi
  132.  
  133. #user info
  134. if [ fname==0 ]; then
  135. FNAME=$sw_email
  136. fi
  137. if [ lname==0 ]; then
  138. LNAME="NULL"
  139. fi
  140. if [ email==0 ]; then
  141. EMAIL=$sw_email
  142. fi
  143.  
  144. #backend name
  145. if [ aurl==0 ]; then
  146. BACKEND=$(mkpasswd -l 6 -C 2 -c 2 -d 2 -s 0)"_admin"
  147. fi
  148.  
  149. #make the db
  150. sudo -u $UNIXUSR siteworx -u -n --login_domain=$primary --controller MysqlDb --action add --name=$DB_NAME
  151.  
  152. #check because interworx returns 0 always :(
  153. ret=$( sudo -u $UNIXUSR siteworx -u -n --login_domain=$primary --controller MysqlDB --action list | grep $DB_NAME | wc -l )
  154. if [ ret==0 ]; then
  155. echo "Failed to create database!"
  156. exit 1
  157. fi
  158.  
  159. #do it again for the user
  160. return=$( sudo -u $UNIXUSR siteworx -u -n --login_domain=$primary --controller MysqlUser --action add --name=$DB_NAME --password=$DB_PASS --confirm_password=$DB_PASS )
  161. ret=$( sudo -u $UNIXUSR siteworx -u -n --login_domain=$primary --controller MysqlUser --action list | grep $DB_USR | wc -l )
  162. if [ ret==0 ]; then
  163. echo "Failed to add db user!"
  164. exit 1
  165. fi
  166.  
  167. #permissions
  168. sudo -u $UNIXUSR -u -n --login_domain=$primary --controller MysqlPerms --action add --name $DB_NAME --user $DB_USR
  169. ret=$( sudo -u $UNIXUSR siteworx -u -n --login_domain=$primary --controller MysqlPerms --action queryDatabaseUserPerms --name $DB_NAME | grep $DB_USR | wc -l )
  170. if[ ret==0 ]; then
  171. echo "Failed to assign user permissions!"
  172. exit 1
  173. fi
  174.  
  175. echo -e "Installation details -- \n
  176. Working Directory: $work_dir \n
  177. Frontend URL: $BASE_URL \n
  178. Backend URL: $ADMIN_URL \n
  179. Backend User: $ADMIN_USR \n
  180. Backend Password: $ADMIN_PASS \n
  181. Database: $DB_NAME \n
  182. DB User: $DB_USER \n
  183. DB Pass: $DB_PASS \n
  184. Version: Latest"
  185. echo "Proceed with installation? [Y/n]"
  186. read user_in
  187.  
  188. if [ "$user_in" != "y" ] && [ "$user_in" != "Y" ] && ![ -z "$user_in" ]; then
  189. echo "Terminating install process. Database information may have been created and needs to removed before attempting again."
  190. exit 1
  191. fi
  192.  
  193. if [ "$phpv"=="php55" ]; then
  194. /opt/nexcess/php55u/root/usr/bin/php -d memory_limit=1024M bin/magento setup:install \
  195. --base-url=$BASE_URL \
  196. --db-host=127.0.0.1 \
  197. --db-name=$DB_NAME \
  198. --db-user=$DB_USR \
  199. --db-password=$DB_PWD \
  200. --admin-firstname=$FNAME \
  201. --admin-lastname=$LNAME \
  202. --admin-email=$EMAIL \
  203. --admin-user=$ADMIN_USR \
  204. --admin-password=$ADMIN_PWD \
  205. --use-rewrites=1 \
  206. --language=en_US \
  207. --currency=USD \
  208. --timezone=America/New_York \
  209. --backend-front-name=$ADMIN_URL ; \
  210. else
  211. /opt/nexcess/php56u/root/usr/bin/php -d memory_limit=1024M bin/magento setup:install \
  212. --base-url=$BASE_URL \
  213. --db-host=127.0.0.1 \
  214. --db-name=$DB_NAME \
  215. --db-user=$DB_USR \
  216. --db-password=$DB_PWD \
  217. --admin-firstname=$FNAME \
  218. --admin-lastname=$LNAME \
  219. --admin-email=$EMAIL \
  220. --admin-user=$ADMIN_USR \
  221. --admin-password=$ADMIN_PWD \
  222. --use-rewrites=1 \
  223. --language=en_US \
  224. --currency=USD \
  225. --timezone=America/New_York \
  226. --backend-front-name=$ADMIN_URL ; \
  227. fi
  228.  
  229. echo "Applying permissions fix..."
  230. sed -i 's/0770/0775/' $work_dir"vendor/magento/framework/Filesystem/DriverInterface.php"
  231.  
  232. echo "Installation completed!"
  233. echo "Frontend: "$BASE_URL
  234. echo "Backend: "$BASE_URL$BACKEND
  235. echo "User: "$ADMIN_USR
  236. echo "Password: "$ADMIN_PWD
  237.  
  238. exit 0
  239.  
  240. }
  241.  
  242. #corlando's whichphp script
  243. whichphp ()
  244. {
  245. phpregex="php[0-9][0-9]";
  246. if [[ -z "$1" ]]; then
  247. printf "No argument given; 1st argument must be a shell user\n";
  248. else
  249. if ! id -u "$1" > /dev/null 2>&1; then
  250. printf "User $1 doesn't exist.\n";
  251. else
  252. shelluser="$1";
  253. if [[ ! -e "/var/spool/cron/${shelluser}" ]]; then
  254. printf "%s - %s\n" "cron: php53" "No crontab found.";
  255. else
  256. if ! grep -qoP "$phpregex" "/var/spool/cron/${shelluser}"; then
  257. printf "%s - %s\n" "cron: php53" "No php entry found in crontab.";
  258. else
  259. phpcronversion=$(grep -oP "$phpregex" "/var/spool/cron/${shelluser}" | head -n1);
  260. printf "%s %s\n" "cron:" "$phpcronversion";
  261. fi;
  262. fi;
  263. if [[ ! -e "/home/${shelluser}/.bashrc" ]]; then
  264. printf "%s - %s\n" "cli: php53" "No bashrc found.";
  265. else
  266. if ! grep -qoP "$phpregex" "/home/${shelluser}/.bashrc"; then
  267. printf "%s - %s\n" "cli: php53" "No PHP entry in bashrc found.";
  268. else
  269. phpcliversion=$(grep -oP "$phpregex" "/home/${shelluser}/.bashrc");
  270. printf "%s %s\n" "cli:" "$phpcliversion";
  271. fi;
  272. fi;
  273. for i in /opt/nexcess/php*u/root/etc/php-fpm.d/${shelluser}.conf;
  274. do
  275. if [[ -e $i ]] && [[ -s $i ]] && grep -qvP "^;" $i; then
  276. phpwebversion=$(echo "$i" | grep -oP "$phpregex");
  277. printf "%s %s\n" "web:" "$phpwebversion";
  278. else
  279. continue;
  280. fi;
  281. done;
  282. if [[ -z "$phpwebversion" ]]; then
  283. printf "%s - %s\n" "web: php53" "No fpm pool files in /opt.";
  284. fi;
  285. fi;
  286. fi
  287. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement