Configurar NGINX, PHP-FPM e MariaDB no Debian 8

Você está aqui:
Tempo estimado de leitura: 5 min

Este guia lhe mostrará como instalar e configurar corretamente uma pilha LAMP “alternativa” no Debian 8 utilizando NGINX, PHP Fast Process Manager e MariaDB.

NGINX

O NGINX é um “proxy reverso primeiro, segundo servidor web”. É uma alternativa popular e crescente ao Apache, oferecendo maior flexibilidade e melhor desempenho em muitos casos. Neste tutorial, vamos usá-lo como nosso servidor web.

Ative seu cliente SSH favorito e faça login no seu servidor. Para usuários do Windows, o “PuTTY” é um cliente SSH livre e leve. Os usuários de Linux e Mac podem usar o terminal incluído por padrão em seu sistema operacional. Para este tutorial, vamos assumir que você está logado no seu servidor como o usuário “root”.

Para começar, vamos apenas garantir que tudo esteja atualizado. Digite o seguinte para verificar e instalar atualizações.

apt-get update && apt-get upgrade

Vamos editar nossos arquivos de configuração no vim. O Vim não está instalado por padrão, então vamos instalá-lo!

apt-get install vim

Agora é hora de instalar o NGINX. Nós vamos querer instalar a versão mais recente do NGINX a partir do repositório oficial do NGINX Debian.

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo 'deb http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
echo 'deb-src http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
apt-get update && apt-get install nginx

Agora precisamos ajustar a configuração do NGINX. Navegue até o diretório de configuração.

cd /etc/nginx

Uma lição rápida de vim

Use as teclas de seta para navegar no documento de texto. Para começar a fazer edições, pressione o botão “Inserir” no seu teclado. Se o seu teclado não tiver um botão de inserção, pressione a tecla “i”. Em direção ao fundo do vim, você notará que agora diz “INSERIR”. O modo de inserção permitirá que você exclua via backspace ou insira novos caracteres digitando-os.

Vamos abrir nosso nginx.confe cutucar:

vi nginx.conf

Vamos alterar o usuário padrão, verificar o número de processos de trabalho e desativar o log de acesso.

As diretivas “user” e “worker_processes” estão no topo. Experimente os valores abaixo:

Observe que você desejará definir “worker_processes” para o número de núcleos de CPU disponíveis em seu servidor. Neste exemplo, temos 1, que é o padrão do NGINX.

user www-data;
worker_processes 1;

Também queremos desabilitar o log de acesso, para melhorar o desempenho de E / S. Navegue para baixo com as setas até encontrar “access_log”. Modifique-o para o seguinte:

access_log off;

E por último, vamos definir o “client_max_body_size” para corresponder com algumas alterações feitas no PHP mais tarde. Vamos salvar o problema e fazer isso agora. Adicione logo abaixo de “access_log”:

client_max_body_size 12m;

Quando terminar de editar, pressione “Esc” no seu teclado. O Vim não vai mais dizer “INSERIR” na parte inferior do arquivo.

Para salvar nossas alterações e sair do vim, pressione a seguinte seqüência de teclas:

SHIFT :(colon)
wq
Press "Enter"

O vim kung fu acima irá gravar suas alterações no disco e sair do vim, colocando você de volta no shell bash.

Agora, precisamos fazer uma configuração específica do site para o nosso exemplo! Também vamos excluir as outras configurações de exemplo. Tente o seguinte:

cd conf.d
rm example_ssl.conf default.conf
vi my_site.conf

Nós vamos fazer um curto e simples www.confbaseado vagamente na configuração padrão do NGINX, mas com alguns ajustes. Pressione insert e você pode copiar / colar o exemplo abaixo.

Não esqueça de editar a diretiva “root” para apontar para o diretório raiz do seu site, e “server_name” para corresponder ao seu domínio.

server {
    listen 80;

    root /path/to/your/website;
    index index.php index.html index.htm;

    server_name mydomainname.com www.mydomainname.com;

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

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

Agora terminamos a seção de configuração do NGINX deste tutorial. Vamos reiniciar o NGINX daqui a pouco, logo após instalarmos o PHP.

PHP-FPM

O PHP-FPM é o PHP Fast Process Manager. É necessário ao usar o NGINX, porque ao contrário do Apache, o NGINX não executa o PHP como um módulo. Isso foi feito para reduzir o consumo de memória do NGINX. Lembre-se que parte do NGINX é um proxy reverso em primeiro lugar? Aqui é onde isso entra em jogo; Solicitações PHP enviadas para o NGINX são alimentadas no PHP-FPM para fazer o trabalho pesado.

Vamos instalar o PHP-FPM.

apt-get install php5-fpm php5-mysqlnd

Note que dependendo do que seus scripts PHP requerem, você pode ter que instalar outros módulos PHP não incluídos por padrão. Populares são php5-gdphp5-mcrypt. Você pode instalá-los com o seguinte comando.

apt-get install php5-module_name_here

Agora que temos o PHP-FPM instalado, queremos fazer algumas edições rápidas para melhorar a segurança e a funcionalidade.

cd /etc/php5/fpm
vi php.ini

Hora de mais uma rápida aula de vim! O php.iniarquivo é absolutamente enorme. A procura de alguns valores-chave demorará todo o dia. Então, como sabemos o que estamos procurando, pesquisaremos. Digite o seguinte:

/upload_max_filesize

Isso, por padrão, é definido como 2 megabytes. Se você quiser permitir que os usuários carreguem arquivos para seus aplicativos PHP com mais de 2 megabytes, será necessário alterar isso. 10M é provavelmente uma aposta segura por enquanto, mas valores mais altos também são aceitáveis. Essa configuração irá variar entre as configurações. Por causa do tutorial:

upload_max_filesize = 10M

Mais uma falha de segurança gritante. Role um pouco mais para baixo ou pesquise. Precisamos transformar “allow_url_fopen” em “Off”. Isso impedirá que o PHP execute arquivos PHP hospedados REMOTELY, também conhecidos como RFI (Remote File Inclusion). Muitos servidores são invadidos dessa maneira.

allow_url_fopen = Off

E como mudamos “upload_max_filesize”, agora temos que alterar “post_max_size”. Este valor deve ser um pouco maior que “upload_max_filesize”, porque temos que levar em conta a sobrecarga associada às nossas solicitações processadas pelo PHP.

Vamos procurar mais uma vez com “/ post_max_size”.

post_max_size = 12M

Note que você terá que voltar para sua configuração NGINX e editar “client_max_body_size” se você decidir ir com valores maiores que esses exemplos para o tamanho dos seus arquivos PHP.

Isso é tudo por enquanto. Certifique-se de que você não está no modo de edição pressionando “Esc”. Salve e saia do vim.

SHIFT :(colon)
wq
Press 'Enter'

A configuração do PHP-FPM está completa.

MariaDB

Mesmo em um mundo que se move continuamente em direção ao NoSQL ou ao MongoDB, alguns de nós ainda acham mais fácil ficar com o MySQL. Isso é especialmente verdadeiro para muitos aplicativos da web. Felizmente, agora existem várias substituições “drop-in” para o Oracle MySQL. O Debian 8 agora inclui o sempre popular MariaDB. MariaDB é um fork do Oracle MySQL baseado na versão 5.5. MariaDB, para todos os efeitos, chama isso de MariaDB 10. Ele é considerado um substituto COMPLETO para o Oracle MySQL. Pense nisso como o MySQL no coração, sem a marca Oracle e alguns novos recursos.

apt-get install mariadb-server

IMPORTANTE: Você absolutamente, positivamente, precisa escolher uma senha de root forte para o MariaDB. Salve-o em algum lugar seguro. Você precisará digitá-lo duas vezes durante a instalação do MariaDB.

Vamos ajustar um pouco a configuração do MariaDB. Vamos desativar o MariaDB ouvindo através da interface de rede. Em vez disso, como no PHP-FPM anterior, vamos nos ater apenas a um soquete UNIX. A maioria dos aplicativos PHP deve suportar a conexão com o servidor de banco de dados por meio de um soquete UNIX em vez da interface de loopback local.

cd /etc/mysql
vi my.cnf

Procure por “bind-address = 127.0.0.1”. Comente essa linha. Acima ou abaixo, adicione “skip-networking”.

#bind-address = 127.0.0.1
skip-networking

Nós terminamos com o MariaDB! Eventualmente, você pode querer ajustar sua configuração do MariaDB dependendo se você usará principalmente os mecanismos de armazenamento MyISAM ou InnoDB, mas também para o número de núcleos de CPU e RAM disponíveis para seu servidor. Os padrões vão nos colocar em operação nesse meio tempo.

Vamos reiniciar cada um dos serviços para os quais os arquivos de configuração foram modificados neste tutorial.

systemctl restart nginx.service
systemctl restart php5-fpm.service
systemctl restart mysql.service

É isso – estamos todos prontos. Neste ponto, você tem um servidor LNMP (LNMP) totalmente funcional online!

Este guia era para servir como uma regra geral para começar com os serviços acima com ajustes mínimos. Para mais informações, leia a documentação dos pacotes acima. Embora essa configuração de exemplo funcione corretamente “pronta para uso”, os ajustes podem e, provavelmente, precisarão ser feitos para melhor atender às suas necessidades.

Áreas recomendadas para pesquisa:

  • Utilizando e modificando o controle de cache do NGINX.
  • Configurações do gerenciador de tarefas “estático”, “dinâmico” ou “ondemand” do PHP-FPM.
  • Ajuste de desempenho do MariaDB para obter o máximo do seu servidor de banco de dados.
Esse artigo foi útil?
Não Gostei 0
Visualizações: 274

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?