Como instalar o nginx, mariadb 10, php 7 (pilha Lemp) em 16.10/16.04

Como instalar o nginx, mariadb 10, php 7 (pilha Lemp) em 16.10/16.04

O Lemp O Stack é um acrônimo que representa é um grupo de pacotes (Linux OS, Nginx Web Server, MySQL \ Mariaadb Database e Language de programação dinâmica do servidor PHP) que são usados ​​para implantar aplicativos dinâmicos da Web e páginas da Web.

Este tutorial o guiará sobre como instalar uma pilha Lemp com Mariadb 10, Php 7 e HTTP 2.0 Suporte para Nginx sobre Ubuntu 16.10 e Ubuntu 16.04 servidor/edição de mesa.

Requisitos

  1. Instalação do Ubuntu 16.04 Servidor Edition [Instruções também funciona Ubuntu 16.10]

Etapa 1: instale o servidor da web nginx

1. Nginx é um servidor web moderno e de recursos eficientes usados ​​para exibir páginas da web para visitantes na Internet. Começaremos instalando o NGINX Web Server a partir dos repositórios oficiais do Ubuntu usando a linha de comando APT.

$ sudo apt-get install nginx 
Instale o nginx no Ubuntu 16.04

2. Em seguida, emita os comandos NetStat e SystemCTL para confirmar se Nginx é iniciado e vincula na porta 80.

$ NETSTAT -TLPN 
Verifique a conexão da porta da rede nginx
$ sudo status systemctl nginx.serviço 
Verifique o status do serviço nginx

Depois de ter a confirmação de que o servidor é iniciado, você pode abrir um navegador e navegar até o endereço IP do servidor ou o registro DNS usando o protocolo HTTP para visitar a página da web padrão nginx.

http: // ip-address 
Verifique a página da web nginx

Etapa 2: Ativar nginx http/2.0 protocolo

3. O Http/2.0 protocolo que é construído por padrão no último lançamento de binários nginx em Ubuntu 16.04 Funciona apenas em conjunto com o SSL e promete uma enorme melhoria de velocidade no carregamento de páginas da web da web ssl.

Para ativar o protocolo no Nginx em Ubuntu 16.04, Primeiro navegue até os arquivos de configuração do Sites disponíveis NGINX e faça backup do arquivo de configuração padrão, emitindo o comando abaixo.

$ cd/etc/nginx/sites-disponível/$ sudo mv padrão padrão.cópia de segurança 
Arquivo de configuração de sites NGINX de backup

4. Em seguida, usando um editor de texto, crie uma nova página padrão com as instruções abaixo:

Servidor Ouça 443 SSL HTTP2 default_server; Ouça [::]: 443 ssl http2 default_server; root/var/www/html; ÍNDICE ÍNDICE.Índice HTML.Índice HTM.php; Server_name 192.168.1.13; localização / Try_files $ uri $ uri / = 404;  ssl_certificate/etc/nginx/ssl/nginx.CRT; ssl_certificate_key/etc/nginx/ssl/nginx.chave; ssl_protocols tlsv1 tlsv1.1 TLSV1.2; ssl_prefer_server_ciphers on; SSL_CIPHERS EECDH+CHACHA20: EECDH+AES128: RSA+AES128: EECDH+AES256: RSA+AES256: EECDH+3DES: RSA+3DES:!Md5; ssl_dhparam/etc/nginx/ssl/dhparam.PEM; ssl_session_cache compartilhado: ssl: 20m; ssl_session_timeout 180m; Resolver 8.8.8.8 8.8.4.4; add_header stric-transport-scurity "max-AGE = 31536000; #includesubdomains" sempre; Localização ~ \.php $ inclua trechos/fastcgi-php.conf; fastcgi_pass Unix:/run/php/php7.0-fpm.meia;  localização ~ /\.ht negar tudo;  servidor Ouça 80; Ouça [::]: 80; Server_name 192.168.1.13; retornar 301 https: // $ server_name $ request_uri;  
Ativar protocolo Nginx HTTP 2

O trecho de configuração acima permite o uso de Http/2.0 Adicionando o http2 parâmetro para todas as diretivas de escuta SSL.

Além disso, a última parte do trecho incluída na diretiva do servidor é usada para redirecionar todo o tráfego não-SSL para o host padrão SSL/TLS. Além disso, substitua o nome do servidor Diretiva para corresponder ao seu próprio endereço IP ou registro DNS (FQDN de preferência).

5. Depois de terminar de editar o arquivo de configuração padrão nginx com as configurações acima, gerar e listar o arquivo de certificado SSL e a chave executando os comandos abaixo.

Preencha o certificado com suas próprias configurações personalizadas e preste atenção em Nome comum Configuração para corresponder ao seu registro DNS FQDN ou seu endereço IP do servidor que será usado para acessar a página da web.

$ sudo mkdir/etc/nginx/ssl $ sudo openssl req -x509 -Nodes -Days 365 -NewKey RSA: 2048 -Keyout/etc/nginx/ssl/nginx.chave --out/etc/nginx/ssl/nginx.CRT $ ls/etc/nginx/ssl/ 
Gerar certificado SSL e chave para nginx

6. Além disso, crie um forte DH Cypher, que foi alterado no arquivo de configuração acima SSL_DHPARAM linha de instrução, emitindo o comando abaixo:

$ sudo openssl dhparam -out/etc/nginx/ssl/dhparam.PEM 2048 
Crie a chave Diffie-Hellman

7. Uma vez o Diffie-Hellman A chave foi criada, verifique se o arquivo de configuração nginx está escrito corretamente e pode ser aplicado pelo Nginx Web Server e reiniciar o daemon para refletir as alterações executando os comandos abaixo.

$ sudo nginx -t $ sudo systemctl reiniciar nginx.serviço 
Verifique a configuração do nginx

8. Para testar se o nginx usa Http/2.0 Protocolo emitir o comando abaixo. A presença de H2 Protocolo anunciado confirma que o Nginx foi configurado com sucesso para usar o HTTP/2.0 protocolo. Todos os navegadores modernos atualizados devem apoiar este protocolo por padrão.

$ OpenSSL S_CLIENT -CONECT localhost: 443 -NextProtoneg "
Teste nginx http 2.0 protocolo

Etapa 3: Instale o intérprete Php 7

O NGINX pode ser usado com o intérprete de linguagem de processamento dinâmico de PHP para gerar conteúdo dinâmico da Web com a ajuda do gerenciador de processos FastCGI obtido pela instalação do PHP-FPM Pacote binário de repositórios oficiais do Ubuntu.

9. Para agarrar Php7.0 e os pacotes adicionais que permitirão que o PHP se comunique com o NGINX Web Server emitem o comando abaixo no console do servidor:

$ sudo apt install php7.0 php7.0-fpm 
Instale o PHP 7 e o PHP-FPM para NGIN

10. Uma vez o Php7.0 O intérprete foi instalado com sucesso em sua máquina, iniciar e verificar Php7.0-fpm Daemon emitindo o comando abaixo:

$ sudo systemctl start php7.0-FPM $ SUDO SYSTEMCTL STATUS PHP7.0-fpm 
Iniciar e verificar o serviço PHP-FPM

11. O arquivo de configuração atual do nginx já está configurado para usar Php fastcgi Gerenciador de processos para ser o conteúdo dinâmico do servidor.

O bloco de servidor que permite que o nginx use o intérprete PHP é apresentado no trecho abaixo, portanto, não são necessárias modificações adicionais do arquivo de configuração NGINX padrão.

Localização ~ \.php $ inclua trechos/fastcgi-php.conf; fastcgi_pass Unix:/run/php/php7.0-fpm.meia;  

Abaixo está uma captura de tela de quais instruções você precisa para descomentar e modificar é o caso de um arquivo de configuração padrão nginx original.

Ativar PHP fastcgi para nginx

12. Para testar a relação do servidor da web nginx com o PHP FastCGI Process Manager Crie um PHP Info.php Arquivo de configuração de teste emitindo o comando abaixo e verifique as configurações visitando este arquivo de configuração usando o endereço abaixo: http: // ip_or domain/info.php.

$ sudo su -c 'echo "" | tee/var/www/html/info.php ' 
Crie arquivo de informações PHP Verifique as informações do php fastcgi

Verifique também se Http/2.0 O protocolo é anunciado pelo servidor localizando a linha $ _Server ['server_protocol'] nas variáveis ​​PHP, o bloco, conforme ilustrado na captura de tela abaixo.

Verifique HTTP 2.0 Informações do protocolo

13. Para instalar extra Php7.0 Os módulos usam o APT Search Php7.0 comando para encontrar um módulo PHP e instalá -lo.

Além disso, tente instalar os seguintes módulos PHP que podem ser úteis, caso você esteja planejando instalar o WordPress ou outro CMS.

$ sudo apt install php7.0-MCRYPT PHP7.0-mbstring 
Instale módulos Php 7

14. Para registrar os módulos extras do PHP, apenas reinicie PHP-FPM Daemon emitindo o comando abaixo.

$ sudo systemctl reiniciar php7.0-fpm.serviço 

Etapa 4: Instale o banco de dados MARIADB

15. Finalmente, para completar nosso Lemp Stack, precisamos do componente do banco de dados MariaDB para armazenar e gerenciar dados do site.

Instalar Mariadb Sistema de gerenciamento de banco de dados executando o comando abaixo e reiniciar PHP-FPM serviço para usar o módulo MySQL para acessar o banco de dados.

$ sudo apt install mariadb-servidor mariadb-client php7.0-MYSQL $ sudo systemctl reiniciar php7.0-fpm.serviço 
Instale o mariadb para nginx

16. Para proteger a instalação do Mariadb, execute o script de segurança fornecido pelo pacote binário dos repositórios do Ubuntu, que solicitarão que você defina uma senha root, remova usuários anônimos, desative o login root remotamente e remova o banco de dados de teste.

Execute o script emitindo o comando abaixo e responda a todas as perguntas com sim. Use a captura de tela abaixo como um guia.

$ sudo mysql_secure_installation 
Instalação segura de mariadb para nginx

17. Para configurar o mariadb para que usuários comuns possam acessar o banco de dados sem sistema sudo Privilégios, vá para a interface da linha de comando MySQL com privilégios root e execute os comandos abaixo no intérprete MySQL:

$ sudo mysql mariadb> use mysql; Mariadb> atualizar conjunto de usuários plugin = "onde user =" root "; mariadb> privilégios de descarga; mariadb> saída 
Permissões de usuário do MARIADB

Finalmente, faça login no banco de dados Mariadb e execute um comando arbitrário sem privilégios root, executando o comando abaixo:

$ mysql -u root -p -e 'Mostrar bancos de dados' 
Verifique os bancos de dados MARIADB

Isso tudo! Agora você tem um Lemp pilha configurada em Ubuntu 16.10 e Ubuntu 16.04 Servidor que permite implantar aplicativos dinâmicos complexos da Web que podem interagir com bancos de dados.