Como instalar Nginx, MariaDB e PHP7 no Ubuntu 16.04 LTS

como-instalar-nginx-php7-ubuntu-16-04-lts

O PHP7 está disponível no Ubuntu 16.04 LTS Xenial Xerus e você não precisa usar PPA de terceiros para instalar o PHP7 no Ubuntu 16.04. Neste tutorial, vamos ver como instalar o Nginx, MariaDB e PHP7-FPM (LEMP stack) no Ubuntu 16.04 LTS Xenial Xerus.

Atualizando Ubuntu 16.04 LTS

Antes de instalar qualquer software, é sempre uma boa ideia atualizar o repositório e pacotes de software. Se estiver instalando em um servidor real, você pode usar o SSH, se estiver usando o Ubuntu 16.04 digite os comandos abaixo.

sudo apt update
sudo apt upgrade

Instalando o Nginx Web Server

Nginx é um servidor web de alto desempenho. Ele também pode ser usado como um Proxy reverso. Digite o comando abaixo para instalar o Nginx Web server:

sudo apt install nginx

Depois de instalado, podemos ativar o Nginx para iniciar automaticamente quando o Ubuntu for inicializado executando o seguinte comando:

sudo systemctl enable nginx

Em seguida, inicie o Nginx com este comando:

sudo systemctl start nginx

Agora verifique seu status:

systemctl status nginx

Exemplo de saída:

nginx.service – A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tues 2017-05-16 08:21:05 EDT; 2s ago
Main PID: 298 (nginx)
CGroup: /system.slice/nginx.service
??298 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
??299 nginx: worker process
“Enabled” indica que a inicialização automática no momento da inicialização do sistema está ativada e podemos ver que o Nginx está em execução.
Agora, na barra de endereços do seu navegador, digite o endereço IP público do servidor Ubuntu 16.04 LTS. Você deve ver a página da Web “Bem-vindo ao nginx!”, O que significa que o servidor Web Nginx está funcionando corretamente.

Você pode usar o seguinte comando para buscar o endereço IP público do servidor Ubuntu 16.04:

sudo apt install curl
curl http://icanhazip.com
Se você estiver instalando o LEMP em um servidor local com Ubuntu 16.04, basta digitar 127.0.0.1 ou localhost na barra do navegador de sua escolha!
Finalmente, precisamos fazer www-data (Nginx user) como o proprietário do diretório raiz da web.
sudo chown www-data /usr/share/nginx/html -R

Instalando o MariaDB no Ubuntu

MariaDB é um excelente alternativa ao MySQL. Ele é desenvolvido por ex-membros da equipe do MySQL que se preocupam com a possibilidade de que a Oracle possa transformar o MySQL em um produto de código fechado. Muitas distribuições Linux (Arch Linux, Fedora etc), empresas e organizações (Google, Wikipedia) migraram para MariaDB. Então vamos instalar o MariaDB em vez do MySQL.

sudo apt install mariadb-server mariadb-client

Depois de instalado, o servidor MariaDB deve ser iniciado automaticamente. Use systemctl para verificar seu status:

systemctl status mysql

Exemplo de saída:

mysql.service – LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
Active: active (running) since Tues 2017-05-16 08:21:05 EDT; 2s ago
Docs: man:systemd-sysv-generator(8)

Se não estiver em execução, inicie-o com este comando:

sudo systemctl start mysql

Execute o comando abaixo para fazer com que o  MariaDB inicie automaticamente quando o Ubuntu 16.04 for reinicializado:

sudo systemctl enable mysql

Agora execute o script de segurança pós-instalação:

sudo mysql_secure_installation

Quando pedir para você digitar a senha root do MariaDB, apenas pressione enter porque você ainda não definiu a senha do root. Em seguida, digite y para definir a senha de root para o servidor MariaDB.
Em seguida, basta pressionar Enter para responder a todas as perguntas restantes. Isso removerá o usuário anônimo, desativará o login de root remoto e removerá o banco de dados de teste. Esta etapa é um requisito básico para a segurança do banco de dados MariaDB.

Instalando o PHP7 no Ubuntu

Digite o seguinte comando para instalar o PHP7 e as extensões do PHP7:

sudo apt install php7.0-fpm php7.0-mbstring php7.0-xml php7.0-mysql php7.0-common php7.0-gd php7.0-json php7.0-cli php7.0-curl

As extensões PHP são comumente necessárias para sistemas de gerenciamento de conteúdo (CMS) como o WordPress. Por exemplo, se a sua instalação não tiver php7.0-xml, algumas das suas páginas do site do WordPress podem estar em branco e você pode encontrar um erro no registro de erros do Nginx, como:

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
A instalação dessas extensões PHP garante que seu CMS seja executado sem problemas.

Agora vamos iniciar o php7.0-fpm, para isso, execute o comando abaixo:

sudo systemctl start php7.0-fpm

Vamos agora verificar status:

systemctl status php7.0-fpm

Exemplo de saída:

php7.0-fpm.service – The PHP 7.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor pre
set: enabled)
Active: active (running) since Tues 2017-05-16 08:21:05 EDT; 2s ago

Criando um arquivo de bloqueio de servidor padrão do Nginx

Remova o link simbólico padrão no diretório habilitado para sites.
sudo rm /etc/nginx/sites-enabled/default

Em seguida, crie um novo arquivo padrão no diretório /etc/nginx/conf.d/:

sudo nano /etc/nginx/conf.d/default.conf

Cole o seguinte texto para o arquivo. Substitua o IP 12.13.14.15 pelo o seu IP do servidor real:

server {
 listen 80;
 listen [::]:80;
 server_name 12.13.14.15;
 root /usr/share/nginx/html/;
 index index.php index.html index.htm index.nginx-debian.html;

location / {
 try_files $uri $uri/ =404;
 }

error_page 404 /404.html;
 error_page 500 502 503 504 /50x.html;

location = /50x.html {
 root /usr/share/nginx/html;
 }

location ~ \.php$ {
 fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 include snippets/fastcgi-php.conf;
 }

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

Salve e feche o arquivo. Em seguida, teste a configuração do nginx e recarregue-a:

sudo nginx -t
sudo systemctl reload nginx

Testando o PHP 7

Para testar a versão cli do PHP7, basta digitar este comando:

php --version

Exemplo de saída:

PHP 7.0.15-7ubuntu2 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2017, by Zend Technologies

Para testar o PHP-FPM, primeiro crie um arquivo test.php no diretório raiz da Web:

sudo nano /usr/share/nginx/html/test.php

Cole o seguinte código PHP no arquivo:

<?php phpinfo(); ?>
Salve e feche o arquivo. Agora, na barra do navegador, digite seu-endereço-de-ip/test.php . Substitua seu-endereço-de-ip pelo seu IP atual. Você deve ver as informações de PHP do seu servidor. Isso significa que o processamento do PHP está bem.
Para a segurança do servidor, você deve excluir o arquivo test.php!
Pronto! Você instalou com êxito Nginx, MariaDB e PHP7 (LEMP stack) no Ubuntu 16.04 LTS Xenial Xerus.
Acesse a versão completa
Sair da versão mobile