Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Prep Work
- domain_name="$1"
- admin_name="$2"
- admin_pass="$3"
- admin_email="$4"
- flarum_title="$5"
- mysql_pass=Pei9eiheigh5Co1
- domain_named=$( echo "$domain_name" | tr -d . )
- flarum_install="/data/web/$domain_name"
- webuser_group='www-data'
- sudo gpasswd -a $USER www-data > /dev/null 2>&1
- # Download Flarum
- cp -rp /data/flarum_red/skeleton "$flarum_install" > /dev/null 2>&1
- # Change Permissions
- addgroup "$domain_named"
- useradd -g "$domain_named" "$domain_named"
- ssh root@192.168.3.2 -C groupadd "$domain_named"
- ssh root@192.168.3.2 -C useradd -g "$domain_named" "$domain_named"
- chown "$domain_named": "$flarum_install" -R
- #find "$flarum_install" -type d -exec chmod 711 {} \;
- #find "$flarum_install" -type f -exec chmod 644 {} \;
- chmod 775 "$flarum_install" > /dev/null 2>&1
- chmod -R 775 "$flarum_install/assets" "$flarum_install/storage" > /dev/null 2>&1
- sudo chgrp "$webuser_group" "$flarum_install" > /dev/null 2>&1
- sudo chgrp -R "$webuser_group" "$flarum_install/assets" "$flarum_install/storage" > /dev/null 2>&1
- # Write Php7-fpm Config
- echo "
- [$domain_name]
- listen = /run/php/php7-fpm.$domain_named.sock
- listen.allowed_clients = 127.0.0.1
- user = $domain_named
- group = $domain_named
- listen.owner = www-data
- listen.group = www-data
- pm = ondemand
- pm.max_children = 5
- pm.max_requests = 5000
- pm.process_idle_timeout = 15s
- chdir = /
- " > /etc/php/7.0/fpm/pool.d/$domain_name.conf
- # Write Nginx Config
- echo "
- server {
- listen 80;
- root $flarum_install;
- index index.php index.html index.htm;
- error_log /var/log/nginx/error.log error;
- server_name $domain_name;
- " > /etc/nginx/sites-available/$domain_name
- sudo tee --append << 'EOF' /etc/nginx/sites-available/$domain_name &> /dev/null
- location / { try_files $uri $uri/ /index.php?$query_string; }
- location /api { try_files $uri $uri/ /api.php?$query_string; }
- location /admin { try_files $uri $uri/ /admin.php?$query_string; }
- EOF
- echo "
- location /flarum {
- deny all;
- return 404;
- }
- location ~ .php$ {
- fastcgi_split_path_info ^(.+.php)(/.+)$;
- fastcgi_pass unix://run/php/php7-fpm.$domain_named.sock;
- fastcgi_index index.php;
- include fastcgi_params;
- " >> /etc/nginx/sites-available/$domain_name
- sudo tee --append << 'EOF' /etc/nginx/sites-available/$domain_name &> /dev/null
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- }
- location ~* \.html$ {
- expires -1;
- }
- location ~* \.(css|js|gif|jpe?g|png)$ {
- expires 1M;
- add_header Pragma public;
- add_header Cache-Control "public, must-revalidate, proxy-revalidate";
- }
- gzip on;
- gzip_http_version 1.1;
- gzip_vary on;
- gzip_comp_level 6;
- gzip_proxied any;
- gzip_types application/atom+xml
- application/javascript
- application/json
- application/vnd.ms-fontobject
- application/x-font-ttf
- application/x-web-app-manifest+json
- application/xhtml+xml
- application/xml
- font/opentype
- image/svg+xml
- image/x-icon
- text/css
- text/plain
- text/xml;
- gzip_buffers 16 8k;
- gzip_disable "MSIE [1-6]\.(?!.*SV1)";
- }
- EOF
- # Enable Flarum
- sudo ln -s /etc/nginx/sites-available/$domain_name /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
- { error=$(sudo crm resource restart php_fpm_res 2>&1 1>&$out); } {out}>&1
- erode=$(echo "$error" | sed '/INFO/d;/waiting/d')
- if [ -n "$erode" ]; then
- rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
- rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
- rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
- sudo crm resource cleanup php_fpm_res > /dev/null 2>&1
- rm -rf "$flarum_install"
- echo {"success": "false", "data": {"error": "php-fpm", "text": "$erode"}}
- unset mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
- exit
- fi
- { error=$(sudo nginx -t 2>&1 1>&$out); } {out}>&1
- erode=$(echo "$error" | sed '/ok/d;/success/d')
- if [ -n "$erode" ]; then
- rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
- rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
- rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
- crm resource cleanup nginx_res > /dev/null 2>&1
- rm -rf "$flarum_install"
- echo {"success": "false", "data": {"error": "nginx", "text": "$erode"}}
- unset mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
- exit
- else
- crm resource restart nginx_res > /dev/null 2>&1
- fi
- # Generate Password
- generated_mysql_pass=$(pwgen 20 1)
- # Database Creation
- { error=$(MYSQL_PWD=$mysql_pass mysql -u root -e "CREATE DATABASE IF NOT EXISTS flarum_$domain_named ;" 2>&1 1>&$out); } {out}>&1
- if [ -n "$error" ]; then
- MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
- rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
- rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
- rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
- rm -rf "$flarum_install"
- echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
- unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
- exit
- fi
- { 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
- if [ -n "$error" ]; then
- MYSQL_PWD=$mysql_pass mysql -u root -e "DROP USER flarum_$domain_named@localhost ;" > /dev/null 2>&1
- MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
- rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
- rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
- rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
- rm -rf "$flarum_install"
- echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
- unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
- exit
- fi
- { 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' \
- 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
- if [ -n "$error" ]; then
- MYSQL_PWD=$mysql_pass mysql -u root -e "DROP USER flarum_$domain_named@localhost ;" > /dev/null 2>&1
- MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
- rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
- rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
- rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
- rm -rf "$flarum_install"
- echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
- unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
- exit
- fi
- { 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
- if [ -n "$error" ]; then
- MYSQL_PWD=$mysql_pass mysql -u root -e "DROP USER flarum_$domain_named@localhost ;" > /dev/null 2>&1
- MYSQL_PWD=$mysql_pass mysql -u root -e "DROP DATABASE flarum_$domain_named ;" > /dev/null 2>&1
- rm /etc/php/7.0/fpm/pool.d/$domain_name.conf > /dev/null 2>&1
- rm /etc/nginx/sites-available/$domain_name > /dev/null 2>&1
- rm /etc/nginx/sites-enabled/$domain_name > /dev/null 2>&1
- rm -rf "$flarum_install"
- echo {"success": "false", "data": {"error": "mysql", "text": "$error"}}
- unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
- exit
- fi
- # Configure Yaml
- sed -i "s/flarum.dev/$domain_name/g" "$flarum_install"/config.yml
- sed -i "s/flarum_db/flarum_$domain_named/g" "$flarum_install"/config.yml
- sed -i "s/uname/flarum_$domain_named/g" "$flarum_install"/config.yml
- sed -i "s/upass/$generated_mysql_pass/g" "$flarum_install"/config.yml
- sed -i "s/adname/$admin_name/g" "$flarum_install"/config.yml
- sed -i "s/adpass/$admin_pass/g" "$flarum_install"/config.yml
- sed -i "s/admin@domain.com/$admin_email/g" "$flarum_install"/config.yml
- sed -i "s/ChangeTitle/$flarum_title/g" "$flarum_install"/config.yml
- sleep 1
- # Install Flarum
- cd "$flarum_install"
- php flarum install -f ./config.yml > /dev/null 2>&1
- rm "$flarum_install"/config.yml
- cat config.php | sed -i '/debug/ s=true=false=' config.php
- chown "$domain_named": "$flarum_install"/config.php
- chmod 400 "$flarum_install"/config.php
- # Cleanup
- unset mysql_pass generated_mysql_pass admin_name admin_pass flarum_title domain_named domain_name flarum_install error erode
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement