Advertisement
Guest User

Untitled

a guest
Nov 27th, 2016
553
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.10 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Prep Work
  4.  
  5. domain_name="$1"
  6. admin_name="$2"
  7. admin_pass="$3"
  8. admin_email="$4"
  9. flarum_title="$5"
  10. mysql_pass=Pei9eiheigh5Co1
  11. domain_named=$( echo "$domain_name" | tr -d . )
  12. flarum_install="/data/web/$domain_name"
  13. webuser_group='www-data'
  14. sudo gpasswd -a $USER www-data > /dev/null 2>&1
  15.  
  16. # Download Flarum
  17.  
  18. cp -rp /data/flarum_red/skeleton "$flarum_install" > /dev/null 2>&1
  19.  
  20. # Change Permissions
  21. addgroup "$domain_named"
  22. useradd -g "$domain_named" "$domain_named"
  23. ssh root@192.168.3.2 -C groupadd "$domain_named"
  24. ssh root@192.168.3.2 -C useradd -g "$domain_named" "$domain_named"
  25. chown "$domain_named": "$flarum_install" -R
  26. #find "$flarum_install" -type d -exec chmod 711 {} \;
  27. #find "$flarum_install" -type f -exec chmod 644 {} \;
  28.  
  29. chmod 775 "$flarum_install" > /dev/null 2>&1
  30. chmod -R 775 "$flarum_install/assets" "$flarum_install/storage" > /dev/null 2>&1
  31. sudo chgrp "$webuser_group" "$flarum_install" > /dev/null 2>&1
  32. sudo chgrp -R "$webuser_group" "$flarum_install/assets" "$flarum_install/storage" > /dev/null 2>&1
  33.  
  34. # Write Php7-fpm Config
  35.  
  36. echo "
  37. [$domain_name]
  38. listen = /run/php/php7-fpm.$domain_named.sock
  39. listen.allowed_clients = 127.0.0.1
  40. user = $domain_named
  41. group = $domain_named
  42. listen.owner = www-data
  43. listen.group = www-data
  44. pm = ondemand
  45. pm.max_children = 5
  46. pm.max_requests = 5000
  47. pm.process_idle_timeout = 15s
  48. chdir = /
  49. " > /etc/php/7.0/fpm/pool.d/$domain_name.conf
  50.  
  51.  
  52. # Write Nginx Config
  53.  
  54. echo "
  55. server {
  56. listen 80;
  57.  
  58. root $flarum_install;
  59. index index.php index.html index.htm;
  60. error_log /var/log/nginx/error.log error;
  61.  
  62. server_name $domain_name;
  63.  
  64. " > /etc/nginx/sites-available/$domain_name
  65.  
  66. sudo tee --append << 'EOF' /etc/nginx/sites-available/$domain_name &> /dev/null
  67.  
  68.  
  69. location / { try_files $uri $uri/ /index.php?$query_string; }
  70. location /api { try_files $uri $uri/ /api.php?$query_string; }
  71. location /admin { try_files $uri $uri/ /admin.php?$query_string; }
  72. EOF
  73.  
  74. echo "
  75. location /flarum {
  76. deny all;
  77. return 404;
  78. }
  79.  
  80. location ~ .php$ {
  81. fastcgi_split_path_info ^(.+.php)(/.+)$;
  82. fastcgi_pass unix://run/php/php7-fpm.$domain_named.sock;
  83. fastcgi_index index.php;
  84. include fastcgi_params;
  85.  
  86. " >> /etc/nginx/sites-available/$domain_name
  87.  
  88. sudo tee --append << 'EOF' /etc/nginx/sites-available/$domain_name &> /dev/null
  89.  
  90. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  91. }
  92.  
  93. location ~* \.html$ {
  94. expires -1;
  95. }
  96.  
  97. location ~* \.(css|js|gif|jpe?g|png)$ {
  98. expires 1M;
  99. add_header Pragma public;
  100. add_header Cache-Control "public, must-revalidate, proxy-revalidate";
  101. }
  102.  
  103. gzip on;
  104. gzip_http_version 1.1;
  105. gzip_vary on;
  106. gzip_comp_level 6;
  107. gzip_proxied any;
  108. gzip_types application/atom+xml
  109. application/javascript
  110. application/json
  111. application/vnd.ms-fontobject
  112. application/x-font-ttf
  113. application/x-web-app-manifest+json
  114. application/xhtml+xml
  115. application/xml
  116. font/opentype
  117. image/svg+xml
  118. image/x-icon
  119. text/css
  120. text/plain
  121. text/xml;
  122. gzip_buffers 16 8k;
  123. gzip_disable "MSIE [1-6]\.(?!.*SV1)";
  124.  
  125.  
  126. }
  127. EOF
  128.  
  129. # Enable Flarum
  130.  
  131. sudo ln -s /etc/nginx/sites-available/$domain_name /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
  132.  
  133. { error=$(sudo crm resource restart php_fpm_res 2>&1 1>&$out); } {out}>&1
  134. erode=$(echo "$error" | sed '/INFO/d;/waiting/d')
  135. if [ -n "$erode" ]; then
  136. rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
  137. rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
  138. rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
  139. sudo crm resource cleanup php_fpm_res > /dev/null 2>&1
  140. rm -rf "$flarum_install"
  141. echo {"success": "false", "data": {"error": "php-fpm", "text": "$erode"}}
  142. unset mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
  143. exit
  144. fi
  145.  
  146. { error=$(sudo nginx -t 2>&1 1>&$out); } {out}>&1
  147. erode=$(echo "$error" | sed '/ok/d;/success/d')
  148. if [ -n "$erode" ]; then
  149. rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
  150. rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
  151. rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
  152. crm resource cleanup nginx_res > /dev/null 2>&1
  153. rm -rf "$flarum_install"
  154. echo {"success": "false", "data": {"error": "nginx", "text": "$erode"}}
  155. unset mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
  156. exit
  157. else
  158. crm resource restart nginx_res > /dev/null 2>&1
  159. fi
  160.  
  161. # Generate Password
  162.  
  163. generated_mysql_pass=$(pwgen 20 1)
  164.  
  165. # Database Creation
  166.  
  167. { error=$(MYSQL_PWD=$mysql_pass mysql -u root -e "CREATE DATABASE IF NOT EXISTS flarum_$domain_named ;" 2>&1 1>&$out); } {out}>&1
  168. if [ -n "$error" ]; then
  169. MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
  170. rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
  171. rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
  172. rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
  173. rm -rf "$flarum_install"
  174. echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
  175. unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
  176. exit
  177. fi
  178.  
  179. { error=$(MYSQL_PWD=$mysql_pass mysql -u root -e "CREATE USER flarum_$domain_named@localhost IDENTIFIED BY '$generated_mysql_pass';" 2>&1 1>&$out); } {out}>&1
  180. if [ -n "$error" ]; then
  181. MYSQL_PWD=$mysql_pass mysql -u root -e "DROP USER flarum_$domain_named@localhost ;" > /dev/null 2>&1
  182. MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
  183. rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
  184. rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
  185. rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
  186. rm -rf "$flarum_install"
  187. echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
  188. unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
  189. exit
  190. fi
  191.  
  192. { error=$(MYSQL_PWD=$mysql_pass mysql -u root -e "GRANT USAGE ON flarum_$domain_named.* TO flarum_$domain_named@localhost IDENTIFIED BY '$generated_mysql_pass' \
  193. WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;" 2>&1 1>&$out); } {out}>&1
  194. if [ -n "$error" ]; then
  195. MYSQL_PWD=$mysql_pass mysql -u root -e "DROP USER flarum_$domain_named@localhost ;" > /dev/null 2>&1
  196. MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
  197. rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
  198. rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
  199. rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
  200. rm -rf "$flarum_install"
  201. echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
  202. unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
  203. exit
  204. fi
  205.  
  206. { error=$(MYSQL_PWD=$mysql_pass mysql -u root -e "GRANT ALL PRIVILEGES ON flarum_$domain_named.* TO flarum_$domain_named@localhost;" 2>&1 1>&$out); } {out}>&1
  207. if [ -n "$error" ]; then
  208. MYSQL_PWD=$mysql_pass mysql -u root -e "DROP USER flarum_$domain_named@localhost ;" > /dev/null 2>&1
  209. MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
  210. rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
  211. rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
  212. rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
  213. rm -rf "$flarum_install"
  214. echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
  215. unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
  216. exit
  217. fi
  218.  
  219. # Configure Yaml
  220.  
  221. sed -i "s/flarum.dev/$domain_name/g" "$flarum_install"/config.yml
  222. sed -i "s/flarum_db/flarum_$domain_named/g" "$flarum_install"/config.yml
  223. sed -i "s/uname/flarum_$domain_named/g" "$flarum_install"/config.yml
  224. sed -i "s/upass/$generated_mysql_pass/g" "$flarum_install"/config.yml
  225. sed -i "s/adname/$admin_name/g" "$flarum_install"/config.yml
  226. sed -i "s/adpass/$admin_pass/g" "$flarum_install"/config.yml
  227. sed -i "s/admin@domain.com/$admin_email/g" "$flarum_install"/config.yml
  228. sed -i "s/ChangeTitle/$flarum_title/g" "$flarum_install"/config.yml
  229. sleep 1
  230.  
  231. # Install Flarum
  232.  
  233. cd "$flarum_install"
  234. php flarum install -f ./config.yml > /dev/null 2>&1
  235. rm "$flarum_install"/config.yml
  236. cat config.php | sed -i '/debug/ s=true=false=' config.php
  237. chown "$domain_named": "$flarum_install"/config.php
  238. chmod 400 "$flarum_install"/config.php
  239.  
  240. # Cleanup
  241.  
  242. unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
  243. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement