sábado, 30 de outubro de 2021

SCRIPT DE INSTALACAO PARA WEB SERVER LEMP (LINUX + NGINX + MARIADB + PHP) COM DEBIAN 11

Cenário:
VM com 512MB de RAM (Recomendável 1gb)
Disco VHDX 40gb
Processador i3 4-Core

1.) Faça a instalação do Debian 11 e escolha apenas a opção SSH para instalação:



2.) Use o putty para conectar via SSH no seu server DEBIAN:


3.) Você irar criar um arquivo install.sh para automatizar a instalação:

Comandos para criar o "INSTALL.SH":

nano install.sh

    "COPIE E COLE O SCRIPT NO ARQUIVO INSTALL.SH"

4.) Execute o chmod para dar permissão e torná-lo executável:

chmod 755 install.sh
chmod +x install.sh
sh install.sh

Copie e cole o código abaixo para dentro do "install.sh":

## SCRIPT COMENTADO
## ATUALIZANDO O SISTEMA
apt update

## INSTALANDO DEPENDÊNCIAS
apt install ufw sudo wget apt-transport-https software-properties-common curl gnupg2 ca-certificates lsb-release -y

## INSTALANDO O NGINX
apt install nginx -y && systemctl start nginx && systemctl enable nginx

## HABILITANDO A PORTA 80 PARAO NGINX
sudo ufw allow 'Nginx HTTP'

## INSTALANDO O MARIADB-SERVER
apt install mariadb-server mariadb-client -y
## REINICIANDO O SERVIÇO DO MARIADB-SERVER
systemctl restart mariadb

## INSTALANDO O PHP
apt-get install php-fpm php-gd php php-cli php-json php-pdo php-zip php-mbstring php-curl php-xml php-pear php-bcmath php-mysqli -y
## HABILITANDO O PHP
systemctl enable php7.4-fpm.service
## ATIVANDO PHP
sudo systemctl is-active php7.4-fpm.service
## INICIANDO O PHP
sudo service php7.4-fpm start

## INSTALANDO O ADMINER PARA GERENCIAMENTO DO MYSQL MARIADB
## PARA ACESSAR http://IP/adminer.php
wget "http://www.adminer.org/latest.php" -
O /var/www/html/adminer.php
chown -R www-data:www-data /var/www/html/adminer.php
chmod 755 /var/www/html/adminer.php

## ALTERANDO A CONFIGURAÇÃO PADRÃO DO NGINX PARA O PHP
mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bkp
cat << 'EOF' > /etc/nginx/sites-available/default
server {
 listen 80;
 listen [::]:80;

 root /var/www/html;
 index index.php index.html index.htm index.nginx-debian.html;
 server_name _;

 access_log /var/log/nginx/example_access.log;
 error_log /var/log/nginx/example_error.log;

 client_max_body_size 100M;

 location / {
  try_files $uri $uri/ /index.php$is_args$args;
 }

 location ~ \.php$ {
  include snippets/fastcgi-php.conf;
  #fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
  fastcgi_pass 127.0.0.1:9000;
  #try_files $uri =404;
  include fastcgi_params;
  #fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 }

 location ~ /\.ht {
  deny all;
 }
}
EOF

## TESTANDO AS CONFIGURAÇÕES DO NGINX
sudo nginx -t

## ALTERANDO AS CONFIGURAÇÕES PADRÕES DO PHP
cp /etc/php/7.4/fpm/php.ini /etc/php/7.4/fpm/php.ini.bkp
sudo sed -i 's|;cgi.fix_pathinfo=1|cgi.fix_pathinfo=0|g' /etc/php/7.4/fpm/php.ini
sudo sed -i 's|default_socket_timeout = 60|default_socket_timeout = 600\npm.max_children = 20|g' /etc/php/7.4/fpm/php.ini

## ALTERANDO O ARQUIVO PADRÃO DO www.conf
mv /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/www.conf.bkp

cat << 'EOF' > /etc/php/7.4/fpm/pool.d/www.conf
;CHANGE FILES
;listen = /var/run/php5-fpm.sock para listen = 127.0.0.1:9000
;request_terminate_timeout = 60000
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
request_terminate_timeout = 60000
EOF

## REINICIANDO OS SERVIÇOS NGINX, PHP E MARIDB-SERVER
sudo service php7.4-fpm restart
sudo service nginx restart
sudo service mariadb restart

## TESTANDO AS CONFIGURAÇÕES DO NGINX
sudo service nginx configtest

## ARQUIVO DE TESTE PHP | PHPINFO http://IP/phpinfo.php
cat << 'EOF' > /var/www/html/phpinfo.php
<?php phpinfo(); ?>
EOF

### SENHA ROOT MYSQL EM BRANCO, CADASTRANDO SENHA:
mysql -u root -e "FLUSH PRIVILEGES;"
mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'SENHA_MYSQL_ROOT';"

Como mostrar a versão do Linux Debian

 Para mostrar a versão do Linux do Debian, rode o seguinte comando: $ cat /etc/*release* | grep CODENAME | cut -d "=" -f 2 Debian ...