Configuração NGINX, PHP-FPM e MariaDB no Debian 8

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

NGINX

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.

Inicie seu cliente SSH favorito e faça login no seu servidor. Para usuários do Windows, "PuTTY" é um cliente SSH gratuito e leve. Usuários de Linux e Mac podem usar o terminal incluído por padrão com seu sistema operacional. Para este tutorial, assumiremos que você está conectado ao seu servidor como o usuário "root".

Para iniciantes, vamos garantir que tudo esteja atualizado. Digite o seguinte para procurar e instalar atualizações.

apt-get update && apt-get upgrade

Nós estaremos editando 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. Queremos 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 para o diretório de configuração.

cd /etc/nginx

Uma rápida lição 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". Na parte inferior do vim, você notará que agora diz "INSERIR". O modo Inserir permite excluir no backspace ou inserir novos caracteres digitando-os.

Vamos abrir o nosso nginx.confe bisbilhotar:

vi nginx.conf

Vamos mudar 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 próximas do topo. Experimente os valores abaixo:

Observe que você deseja definir "worker_processes" para o número de núcleos de CPU disponíveis no seu servidor. Neste exemplo, temos 1, que é o padrão NGINX.

user www-data;
worker_processes 1;

Também queremos desativar o log de acesso, para melhorar o desempenho de E / S. Navegue para baixo com as teclas de seta até encontrar "access_log". Modifique para o seguinte:

access_log off;

Por fim, definiremos o "client_max_body_size" para corresponder a algumas alterações feitas no PHP posteriormente. Vamos salvar o problema e fazê-lo agora. Adicione logo abaixo "access_log":

client_max_body_size 12m;

Quando você terminar de editar, pressione "Esc" no seu teclado. O Vim não diz mais "INSERIR" na parte inferior do arquivo.

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

SHIFT :(colon)
wq
Press "Enter"

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

Agora, precisamos fazer uma configuração específica do site para o nosso exemplo! Também excluiremos os outros exemplos de configurações. Tente o seguinte:

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

Vamos fazer um breve e simples com www.confbase na configuração padrão do NGINX, mas com alguns ajustes. Pressione inserir e você pode copiar / colar o exemplo abaixo.

Não se 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 NGINX deste tutorial. Reiniciaremos o NGINX daqui a pouco, logo após a instalação do PHP.

PHP-FPM

PHP-FPM é o PHP Fast Process Manager. É necessário ao usar o NGINX, porque, diferentemente do Apache, o NGINX não executa o PHP como módulo. Isso foi feito para reduzir a pegada de memória do NGINX. Você se lembra daquela parte sobre o NGINX ser um proxy reverso em primeiro lugar? Aqui é onde isso entra em jogo; As solicitações de PHP enviadas ao NGINX são alimentadas ao PHP-FPM para realizar o trabalho pesado.

Vamos instalar o PHP-FPM.

apt-get install php5-fpm php5-mysqlnd

Observe que, dependendo do que seus scripts PHP exigem, talvez seja necessário instalar outros módulos PHP não incluídos por padrão. Os populares são php5-gde php5-mcrypt. Você pode instalá-los com o seguinte comando.

apt-get install php5-module_name_here

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

cd /etc/php5/fpm
vi php.ini

Hora de outra lição rápida sobre o vim! O php.iniarquivo é absolutamente enorme. A procura de alguns valores-chave levará o dia todo. Então, como sabemos o que estamos procurando, procuraremos. Digite o seguinte:

/upload_max_filesize

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

upload_max_filesize = 10M

Mais uma flagrante falha de segurança. Role um pouco mais ou pesquise. Precisamos desativar "allow_url_fopen" para "Off". Isso impedirá que o PHP execute arquivos PHP hospedados remotamente, também conhecido como RFI (Remote File Inclusion). Muitos servidores são invadidos dessa maneira.

allow_url_fopen = Off

E como alteramos "upload_max_filesize", agora precisamos alterar "post_max_size". Esse valor deve ser um pouco maior que "upload_max_filesize", porque precisamos 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

Observe que você terá que voltar à sua configuração do NGINX e editar "client_max_body_size" se decidir optar por valores maiores que estes exemplos para os tamanhos de arquivo PHP.

Isso é tudo por enquanto. Verifique se 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á concluída.

MariaDB

Mesmo em um mundo que se move continuamente em direção ao NoSQL ou MongoDB, alguns de nós ainda acham mais fácil usar o MySQL. Isto é especialmente verdade 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. O MariaDB, para todos os efeitos, chama isso de MariaDB 10. É considerado um substituto COMPLETO do Oracle MySQL. Pense nele como o MySQL, sem a marca Oracle e alguns novos recursos.

apt-get install mariadb-server

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

Vamos ajustar um pouco a configuração do MariaDB. Vamos desativar a escuta do MariaDB através da interface de rede. Em vez disso, como no PHP-FPM anterior, manteremos apenas 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 "endereço de ligação = 127.0.0.1". Comente essa linha. Acima ou abaixo, adicione "skip-networking".

#bind-address = 127.0.0.1
skip-networking

Terminamos com o MariaDB! Eventualmente, convém 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 o seu servidor. Os padrões nos colocarão em funcionamento 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 aí - terminamos. Neste ponto, você tem um servidor LNMP (LEMP) totalmente funcional online!

Este guia servia como regra geral para iniciar os serviços acima com o mínimo de ajustes. Para mais informações, leia a documentação dos pacotes acima. Embora este exemplo de configuração deva funcionar bem "pronto 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 aproveitar ao máximo seu servidor de banco de dados.


Leave a Comment

Configure sua própria rede privada com o OpenVPN

Configure sua própria rede privada com o OpenVPN

O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes

Como instalar o Couch CMS 2.0 em um VPS Debian 9 LAMP

Como instalar o Couch CMS 2.0 em um VPS Debian 9 LAMP

Usando um sistema diferente? O Couch CMS é um sistema de gerenciamento de conteúdo (CMS) simples e flexível, gratuito e de código aberto que permite que os web designers

Como usar o Sudo no Debian, CentOS e FreeBSD

Como usar o Sudo no Debian, CentOS e FreeBSD

Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud

Configurando um Chroot no Debian

Configurando um Chroot no Debian

Este artigo ensinará como configurar uma prisão chroot no Debian. Presumo que você esteja usando o Debian 7.x. Se você estiver executando o Debian 6 ou 8, isso pode funcionar, mas

Como instalar o PiVPN no Debian

Como instalar o PiVPN no Debian

Introdução Uma maneira fácil de configurar um servidor VPN no Debian é com o PiVPN. PiVPN é um instalador e wrapper para o OpenVPN. Ele cria comandos simples para você t

Como instalar o Kanboard no Debian 9

Como instalar o Kanboard no Debian 9

Usando um sistema diferente? Introdução O Kanboard é um programa de software de gerenciamento de projetos gratuito e de código aberto, projetado para facilitar e visualizar

Como instalar o Neos CMS no Debian 9

Como instalar o Neos CMS no Debian 9

Usando um sistema diferente? Neos é uma plataforma de aplicativos de conteúdo com um CMS e uma estrutura de aplicativos em seu núcleo. Este guia mostra como instalar

Configurar cactos no Debian Jessie

Configurar cactos no Debian Jessie

Introdução O Cacti é uma ferramenta de monitoramento e gráfico de código aberto totalmente baseada em dados RRD. Através do Cacti, você pode monitorar quase qualquer tipo de dispositivo

Como instalar o Java 8 e o DCEVM no Debian 8 (Jessie)

Como instalar o Java 8 e o DCEVM no Debian 8 (Jessie)

Java é uma linguagem de programação independente de plataforma / máquina virtual. Neste tutorial, instalaremos a implementação OpenJDK do Java 8 em um Debian

Servidor HTTP Git com Nginx no Debian 8

Servidor HTTP Git com Nginx no Debian 8

O Git é um sistema de controle de versão (VCS) que permite o rastreamento de alterações no código. Neste tutorial, mostraremos a instalação de um servidor HTTP (S) Git, um

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL

Usando vistas MySQL no Debian 7

Usando vistas MySQL no Debian 7

Introdução O MySQL possui um ótimo recurso conhecido como views. As visualizações são consultas armazenadas. Pense neles como um alias para uma consulta longa. Neste guia,

Como instalar o Matomo Analytics no Debian 9

Como instalar o Matomo Analytics no Debian 9

Usando um sistema diferente? O Matomo (anteriormente Piwik) é uma plataforma de análise de código aberto, uma alternativa aberta ao Google Analytics. Fonte Matomo está hospedado o

Monitorar o status do servidor Debian com o Munin

Monitorar o status do servidor Debian com o Munin

Munin é uma ferramenta de monitoramento para pesquisar processos e recursos em sua máquina e apresenta as informações em gráficos através de uma interface da web. Use o seguinte

Como instalar o fórum NodeBB no Debian 9

Como instalar o fórum NodeBB no Debian 9

Usando um sistema diferente? O NodeBB é um fórum baseado no Node.js. Ele utiliza soquetes da web para interações instantâneas e notificações em tempo real. Código fonte do NodeBB i

Como configurar o Samba com armazenamento em bloco no Debian 9

Como configurar o Samba com armazenamento em bloco no Debian 9

O Samba é uma solução de código aberto que permite aos usuários configurar compartilhamentos de arquivos e impressão rápidos e seguros. Neste artigo, abordarei como configurar a sagacidade do Samba

Adicionar intervalo de endereços IP ao seu servidor (CentOS / Ubuntu / Debian)

Adicionar intervalo de endereços IP ao seu servidor (CentOS / Ubuntu / Debian)

Introdução Neste tutorial, abordaremos o processo de adicionar um intervalo / sub-rede IP inteiro a um servidor Linux executando o CentOS, Debian ou Ubuntu. O processo

Instale o Plesk no Debian 8 (Jessie)

Instale o Plesk no Debian 8 (Jessie)

Usando um sistema diferente? O Plesk é um painel de controle proprietário de host da web que permite que os usuários administrem seus sites pessoais e / ou clientes, bancos de dados

Como instalar o Koel no Debian 9

Como instalar o Koel no Debian 9

Usando um sistema diferente? O Koel é um aplicativo simples de transmissão de áudio pessoal baseado na Web, escrito em Vue no lado do cliente e Laravel no lado do servidor. Koe

Como implantar o Ghost v0.11 LTS no Debian 8

Como implantar o Ghost v0.11 LTS no Debian 8

Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.