Configurando um servidor LEMP Debian 9 - Parte 2
Aprenda a configurar um servidor web usando LEMP no Debian 9. Iremos instalar o Nginx, MariaDB e PHP 7.2
Fala pessoal tudo beleza?
Esse é o segundo artigo da série Configurando um servidor web com Debian 9. Você pode ver o primeiro artigo clicando aqui.
Nesse artigo irei instalar e configurar o Nginx, MariaDB e o PHP 7.2. E vamos também fazer algumas configurações para deixar nosso servidor web bem bacana.
Atualizando os pacotes
Primeiro vamos atualizar a lista de pacotes do sistema com o comando abaixo:
sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade
Instalar Nginx
O Nginx é um servidor web, proxy reverso e proxy balanceador de carga e pode ser usado também junto com Apache. Ele tem uma performance muito boa comparando com um servidor web rodando o Apache. O interessante que os dois podem ser configurados juntos e fazem um belo serviço.
Execute o comando abaixo para instalar o Nginx:
sudo apt install nginx
Se tudo ocorrer bem, seu servidor web já estará rodando. Verifique no link http://localhost
e confira a página de boas vindas.
Instalar Mariadb
MariaDB é baseado no MySQL, uma banco de dados muito robusto e muito utilizado hoje em dia para projetos pequenos e grandes portes. É também o mais utilizado para quem esta começando com a programação.
Execute o comando abaixo para instalar o MariaDB:
sudo apt install mariadb-server
Após a instalação é altamente recomendado executar um script para configurar algumas informações.
Execute o comando:
sudo mysql_secure_installation
- A primeira pergunta é se você já tem uma senha para o usuário root. Caso sim entre com ela e caso contrário apenas tecle enter sem preencher nada.
- Segunda pergunta é se deseja alterar a senha de root.
- Terceira, é se você deseja remover os usuários anônimos do mysql: Y
- Quarta, desabilitar o login remoto do root? Y (Sempre)
- Quinta, remover a base de dados teste e o acesso a ela? Y
- Sexta, recarregar os privilégios? Y
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Conforme a mensagem acima, as alterações foram feitas com sucesso. Agora você esta com o banco configurado e pronto para usar.
Instalar o PHP 7.2
Para instalarmos o PHP7.2 no Debian precisaremos baixar de outro repositório, pois essa versão não é nativa do Debian 8 (Jessie) e 9 (Stretch).
Para instalar execute os seguintes comandos:
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt-get update && sudo apt-get install php7.2-cli php7.2-fpm php7.2-mysql php7.2-curl php-memcached php7.2-dev php7.2-sqlite3 php7.2-mbstring php7.2-gd php7.2-json php7.2-xmlrpc php7.2-xml php7.2-zip
Caso o comando acima apresenta algum erro ao atualizar, verifique no arquivo /etc/apt/sources.list.d/php.list
se o nome da distribuição foi inserida corretamente conforme a linha abaixo.
- Para Debian 8 Jessie
deb https://packages.sury.org/php/ jessie main
- Para Debian 9 Stretch
deb https://packages.sury.org/php/ stretch main
Caso não tenha gravado corretamente, copie a linha correspondente a sua distribuição e altere no arquivo. E tente atualizar a lista de pacotes novamente.
Dica
Vamos alterar uma configuração no PHP para deixarmos ele mais seguro. Navegue até o diretório /etc/php/7.2/fpm/
e abra o arquivo php.ini
.
Localize a linha onde existe a diretiva cgi.fix_pathinfo. Deve estar comentado com o sinal # no início da linha. Remova o comentário e caso tiver o valor 1 altere para 0.
cgi.fix_pathinfo=0
Reinicie o PHP:
sudo service php7.2-fpm restart
Configurando o Nginx com o PHP 7.2
Temos agora que configurar um site no Nginx utilizando a nova versão do PHP. Entre no diretório /etc/nginx/sites-available e altere o arquivo default para a configuração abaixo:
server {
listen 80;
listen [::]:80;
server_name example.com.br www.example.com.br;
# Log
access_log off;
error_log /var/log/nginx/error.log;
# Directory root
root /var/www/html/example;
index index.php index.html;
client_max_body_size 128M;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
# Note que aqui definimos a versao que iremos utilizar do PHP
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
# deny access to .htaccess files
location ~ /\.ht {
deny all;
}
location ~ /\.well-known {
allow all;
}
# Set header expirations on per-project basis
location ~* \.(?:ico|css|js|jpe?g|JPG|png|svg|woff)$ {
expires 365d;
}
}
Salve o arquivo e execute o comando abaixo para verificar se as alterações estão corretas.
nginx -t
E reinicie o serviço do Nginx:
sudo service nginx restart
Feito! Seu servidor já estará rodando com sucesso. Caso tenha algum problema ou alguma dúvida não deixe de perguntar.
Até a próxima!
Este artigo faz parte de uma série sobre servidor web. Veja todos no link abaixo:
- Configurando um servidor LEMP Debian 9 #Parte 1
- Configurando um servidor LEMP Debian 9 #Parte 2 (Atual)