Como instalar Nginx 1.15, MariaDB 10 e PHP 7 no CentOS 7
Neste artigo explicaremos como instalar uma pilha LEMP (Linux, Nginx, MariaDB, PHP) junto com PHP-FPM em servidores RHEL/CentOS 7/6 e Fedora 26-29 usando o pacote yum e dnf gerente.
Durante o processo instalaremos e habilitaremos os repositórios Epel, Remi, Nginx e MariaDB para podermos instale as versões mais recentes desses pacotes.
Leia também: Instale Apache, MySQL 8 ou MariaDB 10 e PHP 7 no CentOS 7
Etapa 1: Instalando o Repositório EPEL e Remi
EPEL (Pacotes Extra para Enterprise Linux) é um repositório baseado na comunidade que oferece pacotes de software complementares para distribuições Linux baseadas em RHEL.
Remi é um repositório onde você pode encontrar as versões mais recentes da pilha PHP (completa) para instalação nas distribuições Fedora e Enterprise Linux.
No RHEL/CentOS 7
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms
No RHEL/CentOS 6
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms
No Fedora 24-29
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm [On Fedora 24]
Etapa 2: instalação dos repositórios Nginx e MariaDB
O repositório Nginx só é necessário nas distribuições RHEL e CentOS. Crie um arquivo chamado /etc/yum.repos.d/nginx.repo e adicione as seguintes linhas a ele.
Para RHEL 7/6:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1
Para CentOS 7/6:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
Para ativar o repositório MariaDB, crie um arquivo chamado /etc/yum.repos.d/mariadb.repo com o seguinte conteúdo:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Etapa 4: Instalando Ngnix e MariaDB
Nginx (Engine X) é um servidor Web de código aberto, robusto, leve e de alto desempenho, servidor proxy reverso e também servidor proxy de correio para protocolos HTTP, SMTP, POP3 e IMAP. Para mais detalhes, visite http://wiki.nginx.org/Overview.
MariaDB é um fork do conhecido MySQL, um dos sistemas de gerenciamento de banco de dados relacional (RDBMS) mais populares do mundo. É inteiramente desenvolvido pela comunidade e, como tal, pretende permanecer FOSS e compatível com a GPL.
Para instalar Ngnix e MariaDB, execute os seguintes comandos.
----------- Installing on RHEL/CentOS 7/6 -----------
yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
----------- Installing on Fedora -----------
dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
Etapa 3: Instalando PHP usando o Repositório Remi
PHP (Hypertext Preprocessor) é uma linguagem de script do lado do servidor gratuita e de código aberto, mais adequada para desenvolvimento web. Ele pode ser usado para produzir páginas dinâmicas para um site e é encontrado com mais frequência em servidores *nix. Uma das vantagens do PHP é que ele é facilmente extensível através do uso de uma ampla variedade de módulos.
Para instalar o PHP, primeiro você precisa habilitar o repositório Remi instalando o yum-utils
, uma coleção de programas úteis para gerenciar repositórios e pacotes yum.
yum install yum-utils
Uma vez instalado, você pode usar o yum-config-manager fornecido por yum-utils
para ativar o repositório Remi como o repositório padrão para instalar diferentes versões do PHP, conforme mostrado.
Por exemplo, para instalar a versão PHP 7.x, use o seguinte comando.
------------- On CentOS & RHEL -------------
yum-config-manager --enable remi-php70 && yum install php [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php [Install PHP 7.3]
------------- On Fedora -------------
dnf --enablerepo=remi install php70 [Install PHP 7.0]
dnf --enablerepo=remi install php71 [Install PHP 7.1]
dnf --enablerepo=remi install php72 [Install PHP 7.2]
dnf --enablerepo=remi install php73 [Install PHP 7.3]
A seguir, instalaremos todos os módulos PHP a seguir.
------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
Etapa 6: Parando e desativando o serviço Apache
Por padrão, Apache e Nginx escutam na mesma porta (TCP 80). Por esse motivo, se o Apache estiver instalado em seu servidor, você precisará interrompê-lo e desabilitá-lo/mascará-lo (uma versão mais forte de desabilitar que vincula o serviço a /dev/null) para usar o Nginx. ou você pode removê-lo se não planeja mais usá-lo.
systemctl stop httpd
systemctl disable httpd
or
systemctl mask httpd
Etapa 7: Iniciando/parando Nginx, MariaDB e PHP-FPM
----------- Enable Nginx, MariaDB and PHP-FPM on Boot -----------
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm
----------- Start Nginx, MariaDB and PHP-FPM -----------
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
Etapa 8: Configurando Nginx e PHP-FPM
Vamos agora criar uma estrutura de diretórios para o seu site (um host virtual ou bloco de servidor, como é chamado no Nginx) em /srv/www/. Neste exemplo usaremos linux-console.net
, mas fique à vontade para escolher outro domínio e diretório principal se desejar.
mkdir -p /srv/www/tecmint/public_html
mkdir /srv/www/tecmint/logs
chown -R nginx:nginx /srv/www/tecmint
Etapa 9: Configurando diretórios de host virtual Nginx
Como você sabe, a capacidade de executar vários sites na mesma máquina é um dos diferenciais dos principais servidores web. Vamos agora criar os diretórios para armazenar nossos blocos de servidores (conhecidos como hosts virtuais no Apache) em /etc/nginx.
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
A linha de código a seguir, que deve ser inserida antes de fechar o bloco http em /etc/nginx/nginx.conf, garantirá que os arquivos de configuração dentro do /etc/nginx/sites-enabled O diretório será levado em consideração quando o Nginx estiver em execução:
## Load virtual host conf files. ##
include /etc/nginx/sites-enabled/*;
Para criar o bloco de servidor para linux-console.net
, adicione as seguintes linhas de código em /etc/nginx/sites-available/tecmint (este arquivo será criado quando você entrar o caminho completo para iniciar seu editor de texto preferido). Este é um arquivo de configuração básico de host virtual.
server {
listen 80 default;
server_name tecmint;
access_log /srv/www/tecmint/logs/access.log;
error_log /srv/www/tecmint/logs/error.log;
root /srv/www/tecmint/public_html;
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
O processo de “ativação” de um host virtual consiste em criar um link simbólico desde a definição do host virtual tecmint
até /etc/nginx/sites-enabled.
ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint
Para realmente aplicar as mudanças que estamos fazendo, agora precisamos reiniciar o Nginx. Às vezes é útil verificar se há erros de sintaxe nos arquivos de configuração antes de fazer isso:
nginx -t
systemctl restart nginx
systemctl status nginx
Para acessar seu host virtual recém-criado, você precisa adicionar a seguinte linha a /etc/hosts como um método básico de resolução de nomes de domínio.
192.168.0.18 linux-console.net linux-console.net
Etapa 10: Testando Nginx, MySQL, PHP e PHP-FPM
Vamos continuar com a forma clássica de testar PHP. Crie um arquivo chamado test.php
em /srv/www/tecmint/public_html/ e adicione as seguintes linhas de código a ele.
A função phpinfo()
mostra muitas informações sobre a instalação atual do PHP:
<?php
phpinfo();
?>
Agora aponte seu navegador para http://tecmint/test.php
e verifique a presença dos módulos instalados e software adicional:
Parabéns! Agora você tem uma instalação funcional de uma pilha LEMP. Caso algo não tenha saído como esperado, não hesite em nos contatar através do formulário abaixo. Dúvidas e sugestões também são bem-vindas.