Advertisement
idimko

addplace 70 vps ukraine

Apr 22nd, 2016
506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2. #
  3. TIMEZONE='Europe/Kiev'
  4.  
  5. MYSQLPASS=$(pwgen -y -N 1 12)
  6. SFTPPASS=$(pwgen -y -N 1 12)
  7.  
  8. echo -n "Enter username for site and database: "
  9. read USERNAME
  10. echo -n "Enter domain: "
  11. read DOMAIN
  12.  
  13. if [ -z "$DOMAIN" ] || [ -z "$USERNAME" ]; then
  14.     echo "Username and domain can't be empty"
  15.     exit 1
  16. fi
  17.  
  18. echo "Creating user and home directory..."
  19. useradd "$USERNAME" -m -G sftp -s "/bin/false" -d "/home/$USERNAME"
  20. if [ "$?" -ne 0 ]; then
  21.     echo "Can't add user"
  22.     exit 1
  23. fi
  24. echo $SFTPPASS > ./tmp
  25. echo $SFTPPASS >> ./tmp
  26. cat ./tmp | passwd $USERNAME
  27. rm ./tmp
  28.  
  29. mkdir /home/"$USERNAME"/www
  30. mkdir /home/"$USERNAME"/tmp
  31. mkdir /home/"$USERNAME"/backups
  32. chmod -R 755 /home/"$USERNAME"/
  33. chown -R "$USERNAME":"$USERNAME" /home/"$USERNAME"/
  34. chown root:wheel /home/"$USERNAME"
  35.  
  36. echo "Creating vhost file"
  37. echo "upstream backend-$USERNAME {server unix:/var/run/php-$USERNAME.sock;}
  38.  
  39. server {
  40.     listen              80;
  41.     server_name         $DOMAIN www.$DOMAIN;
  42.     root                /home/$USERNAME/www;
  43.     access_log          /var/log/nginx/$USERNAME-access.log;
  44.     error_log           /var/log/nginx/$USERNAME-error.log;
  45.     index               index.php index.html;
  46.     rewrite_log         on;
  47.     if (\$host != '$DOMAIN' ) {
  48.         rewrite         ^/(.*)$  http://$DOMAIN/\$1  permanent;
  49.     }
  50.     location ~* ^/core/ {
  51.         deny            all;
  52.     }
  53.     location / {
  54.         try_files       \$uri \$uri/ @rewrite;
  55.     }
  56.     location /index.html {
  57.         rewrite         / / permanent;
  58.     }
  59.  
  60.     location ~ ^/(.*?)/index\.html$ {
  61.         rewrite         ^/(.*?)/ /$1/ permanent;
  62.     }
  63.     location @rewrite {
  64.         rewrite         ^/(.*)$ /index.php?q=\$1;
  65.     }
  66.     location ~ \.php$ {
  67.         include         fastcgi_params;
  68.         fastcgi_param   SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
  69.         fastcgi_pass    backend-$USERNAME;
  70.     }
  71.     location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
  72.        access_log       off;
  73.        expires          10d;
  74.        break;
  75.     }
  76.     location ~ /\.ht {
  77.         deny            all;
  78.     }
  79. }
  80. " > /etc/nginx/sites-available/"$USERNAME".conf
  81. ln -s /etc/nginx/sites-available/"$USERNAME".conf /etc/nginx/conf.d/"$USERNAME".conf
  82.  
  83. echo "Creating php-fpm config"
  84.  
  85. echo "[$USERNAME]
  86.  
  87. listen = /var/run/php-$USERNAME.sock
  88. listen.mode = 0666
  89. user = $USERNAME
  90. group = $USERNAME
  91. chdir = /home/$USERNAME
  92.  
  93. php_admin_value[upload_tmp_dir] = /home/$USERNAME/tmp
  94. php_admin_value[soap.wsdl_cache_dir] = /home/$USERNAME/tmp
  95. php_admin_value[sys_temp_dir] = /home/$USERNAME/tmp
  96. php_admin_value[session.save_path] = /home/$USERNAME/tmp
  97. php_admin_value[upload_max_filesize] = 100M
  98. php_admin_value[post_max_size] = 100M
  99. php_admin_value[open_basedir] = /home/$USERNAME/
  100. php_admin_value[cgi.fix_pathinfo] = 0
  101. php_admin_value[date.timezone] = $TIMEZONE
  102. php_admin_value[session.gc_probability] = 1
  103. php_admin_value[session.gc_divisor] = 100
  104.  
  105. pm = dynamic
  106. pm.max_children = 10
  107. pm.start_servers = 2
  108. pm.min_spare_servers = 2
  109. pm.max_spare_servers = 4
  110. " > /etc/opt/remi/php70/php-fpm.d/"$USERNAME".conf
  111.  
  112. echo "Reloading nginx"
  113. service nginx restart
  114. echo "Reloading php-fpm"
  115. service php70-php-fpm restart
  116.  
  117. echo "Creating database"
  118.  
  119. Q1="CREATE DATABASE IF NOT EXISTS $USERNAME DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;;"
  120. Q2="GRANT ALTER,DELETE,DROP,CREATE,INDEX,INSERT,SELECT,UPDATE,CREATE TEMPORARY TABLES,LOCK TABLES ON $USERNAME.* TO '$USERNAME'@'localhost' IDENTIFIED BY '$MYSQLPASS';"
  121. Q3="FLUSH PRIVILEGES;"
  122. SQL="${Q1}${Q2}${Q3}"
  123.  
  124. mysql --login-path=root_local -e "$SQL"
  125.  
  126. echo "Creating backup script"
  127.  
  128. BT1='$(date +%Y-%m-%d_%H:%M:%S)'
  129. BT2='"$backtime"'
  130.  
  131. echo "#/bin/bash
  132. backtime=$BT1
  133. cd /home/$USERNAME/www || exit
  134. tar -cvzf ../backups/$USERNAME-files-$BT2.tar.gz -- *
  135. mysqldump --login-path=root_local $USERNAME | gzip -9 > ../backups/$USERNAME-mysql-$BT2.sql.gz
  136. cd /home/$USERNAME/backups
  137. chmod -R 777 /home/$USERNAME/backups"  > /home/"$USERNAME"/backup
  138. chmod +x /home/"$USERNAME"/backup
  139.  
  140. echo "#!/bin/bash
  141.  
  142. echo \"Set permissions for /home/$USERNAME/www...\";
  143. echo \"CHOWN files...\";
  144. chown -R $USERNAME:$USERNAME \"/home/$USERNAME/www\";
  145. echo \"CHMOD directories...\";
  146. find \"/home/$USERNAME/www\" -type d -exec chmod 0755 '{}' \;
  147. echo \"CHMOD files...\";
  148. find \"/home/$USERNAME/www\" -type f -exec chmod 0644 '{}' \;
  149. " > /home/"$USERNAME"/chmod
  150. chmod +x /home/"$USERNAME"/chmod
  151.  
  152. echo "Done!
  153. Manager user: $USERNAME
  154. Domain: $DOMAIN
  155. SFTP password: $SFTPPASS
  156. MYSQL password: $MYSQLPASS" > /home/"$USERNAME"/pass.txt
  157.  
  158. cat /home/"$USERNAME"/pass.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement