From 2430c8b3616da7529deb3ad0b71c0cdf9a671be5 Mon Sep 17 00:00:00 2001 From: Bram Prieshof Date: Fri, 7 Sep 2018 10:15:40 +0000 Subject: [PATCH] Update 'NGINX-Installer_V0.1.sh' --- NGINX-Installer_V0.1.sh | 82 ++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 51 deletions(-) diff --git a/NGINX-Installer_V0.1.sh b/NGINX-Installer_V0.1.sh index 391d220..e72f2f9 100644 --- a/NGINX-Installer_V0.1.sh +++ b/NGINX-Installer_V0.1.sh @@ -6,26 +6,24 @@ # do-release-upgrade -d # #============================================================================== -ufw allow OpenSSH -ufw allow 443/tcp -ufw allow 80/tcp -ufw limit ssh -echo "y" | sudo ufw enable + #-------------------# # LEMP # #-------------------# -apt install nginx -y + +apt install nginx mysql-server-5.7 -y ufw allow 'Nginx HTTP' -apt install mysql-server-5.7 -y mysql_secure_installation mysql -u root -p"$passwd" -e "SELECT user,authentication_string,plugin,host FROM mysql.user;" mysql -u root -p"$passwd" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '"$passwd"';" mysql -u root -p"$passwd" -e "FLUSH PRIVILEGES;" mysql -u root -p"$passwd" -e "SELECT user,authentication_string,plugin,host FROM mysql.user;" apt install php-fpm php-mysql php-cgi php-common php-pear php-mbstring php-curl php-gd php-intl php-soap php-xml php-xmlrpc php-zip -y + #-------------------# # NGINX CONFIG # #-------------------# + mkdir -p /var/www/"$domain"/html chmod -R 755 /var/www cat < /etc/nginx/sites-available/$domain @@ -252,10 +250,12 @@ cat < /etc/nginx/sites-available/default EOF ln -s /etc/nginx/sites-available/$domain /etc/nginx/sites-enabled/ sed -i 's/#cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/7.2/fpm/php.ini -systemctl reload nginx +systemctl reload nginx + #-------------------# # PHPMYADMIN # #-------------------# + apt-get install phpmyadmin -y ln -s /usr/share/phpmyadmin /var/www/"$domain"/html systemctl restart php7.2-fpm @@ -263,9 +263,11 @@ systemctl restart php7.2-fpm cd /var/www/"$domain"/html/ ls -l mv phpmyadmin database + #-------------------# # POSTFIX # #-------------------# + apt install mailutils -y sed -i 's/#inet_interfaces = all/inet_interfaces = loopback-only/g' /etc/postfix/main.cf sed -i 's/mydestination/#mydestination/g' /etc/postfix/main.cf @@ -277,25 +279,31 @@ postmaster: root root: $email EOF newaliases + #-------------------# # NETDATA # #-------------------# + bash <(curl -Ss https://my-netdata.io/kickstart.sh) ufw allow 19999/tcp # systemctl stop netdata # systemctl disable netdata + #-------------------# # MEMCACHED # # 127.0.0.1:11211 # #-------------------# + #apt-get install memcached -y #systemctl restart memcached # systemctl stop memcached # systemctl disable memcached + #-------------------# # REDIS # # 127.0.0.1:6379 # #-------------------# + #apt install redis-server -y #sed -i 's/supervised no/supervised systemd/g' /etc/redis/redis.conf #sed -i 's/# bind 127.0.0.1 ::1/bind 127.0.0.1 ::1/g' /etc/redis/redis.conf @@ -306,17 +314,21 @@ ufw allow 19999/tcp # systemctl stop redis.service # systemctl disable redis # systemctl disable redis.service + #-------------------# # CERTBOT # #-------------------# + add-apt-repository ppa:certbot/certbot apt install python-certbot-nginx -y ufw allow 443/tcp #certbot --nginx -d $domain -d www.$domain #check certbot auto-renewal -> certbot renew --dry-run + #-------------------# # PHP.ini # #-------------------# + sed -i 's/;opcache.memory_consumption=128/opcache.memory_consumption=256/g' /etc/php/7.2/fpm/php.ini sed -i 's/;opcache.enable=1/opcache.enable=1/g' /etc/php/7.2/fpm/php.ini sed -i 's/;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=8/g' /etc/php/7.2/fpm/php.ini @@ -325,9 +337,11 @@ sed -i 's/;opcache.max_wasted_percentage=5/opcache.max_wasted_percentage=5/g' /e sed -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=0/g' /etc/php/7.2/fpm/php.ini sed -i 's/; max_input_vars = 1000/max_input_vars = 10000/g' /etc/php/7.2/fpm/php.ini systemctl restart php7.2-fpm.service + #-------------------# # MYSQL SETTINGS # #-------------------# + cd /etc/mysql rm /etc/mysql/my.cnf cat > /etc/mysql/my.cnf <<- "EOF" @@ -366,22 +380,22 @@ log_error = /var/log/mysql/error.log expire_logs_days = 10 max_binlog_size = 100M EOF + #-------------------# # WP - INSTALL # #-------------------# + db_name="wp_1" db_user="wp_1" db_pass=$(date +%s|sha256sum|base64|head -c 32) mysql -u root -p"$passwd" -e "CREATE DATABASE "$db_name" DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;" mysql -u root -p"$passwd" -e "GRANT ALL ON "$db_name".* TO '"$db_user"'@'localhost' IDENTIFIED BY '"$db_pass"';" mysql -u root -p"$passwd" -e "FLUSH PRIVILEGES;" -cd /tmp -curl -LO https://wordpress.org/latest.tar.gz -tar xzvf latest.tar.gz -cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php -path="$domain" -cp -a /tmp/wordpress/. /var/www/"$path"/html -chown -R www-data:www-data /var/www/"$path"/html +wget https://wordpress.org/latest.tar.gz -O /tmp/wp.tar.gz +tar xzvf /tmp/wp.tar.gz /tmp +mv /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php +cp -a /tmp/wordpress/. /var/www/"$domain"/html +chown -R www-data:www-data /var/www/"$domain"/html WPSalts=$(wget https://api.wordpress.org/secret-key/1.1/salt/ -q -O -) cat < /var/www/"$domain"/html/wp-config.php /var/www/"$domain"/html/info.php <<- "EOF" - -EOF -#-------------------# -# UPDATE CRON # -#-------------------# -cd /etc/cron.d -touch updates -cat < /etc/cron.d/updates -SHELL=/bin/sh -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -# m h dom mon dow command -0 0 * * * apt-get update -y && apt-get upgrade -y &&apt-get dist-upgrade -y -EOF -#-------------------# -# BACKUP CRON # -#-------------------# -cd /home -touch backup.sh -cd /etc/cron.d -touch backup -cat < /etc/cron.d/backup -SHELL=/bin/sh -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -# m h dom mon dow command -0 1 * * * /bin/bash /home/backup.sh -EOF + #-------------------# # SSL & HTTP/2 # #-------------------# + #certbot --nginx -d $domain -d www.$domain #sed -i 's/ssl ipv6only/ssl http2 ipv6only/g' /etc/nginx/sites-available/"$domain" #sed -i 's/listen 443 ssl/listen 443 ssl http2/g' /etc/nginx/sites-available/"$domain"