Neste artigo, vamos explicar como instalar um stack LEMP (Linux, Nginx, MariaDB, PHP) juntamente com PHP-FPM em servidores RHEL/CentOS 7/6 e Fedora 26-29 usando o gerenciador de pacotes yum e dnf.
Ao longo do processo, iremos instalar e habilitar os repositórios Epel, Remi, Nginx e MariaDB para ser capaz de instalar as versões mais recentes desses pacotes.
Leia também: Instalar Apache, MySQL 8 ou MariaDB 10 e PHP 7 no CentOS 7
Passo 1: Instalando os Repositórios EPEL e Remi
EPEL (Extra Packages for Enterprise Linux) é um repositório baseado na comunidade que oferece pacotes de software adicionais para distribuições Linux baseadas em RHEL.
Remi é um repositório onde você pode encontrar as versões mais recentes do stack PHP (completo) 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]
Passo 2: Instalando os Repositórios Nginx e MariaDB
O repositório Nginx é necessário apenas 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 habilitar 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
Passo 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 e-mail para os 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. Ele é totalmente desenvolvido pela comunidade e, como tal, pretende permanecer como software livre 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
Passo 3: Instalando o PHP usando o Repositório Remi
PHP (Hypertext Preprocessor) é uma linguagem de script de servidor de código aberto e gratuito mais adequada para desenvolvimento web. Pode ser usada para produzir páginas web dinâmicas para um site e é mais frequentemente encontrada em servidores *nix. Uma das vantagens do PHP é que ele é facilmente extensível por meio 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
Depois de instalado, você pode usar o yum-config-manager fornecido pelo yum-utils
para habilitar 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]
Em seguida, vamos instalar todos esses seguintes módulos do PHP.
------ 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
Passo 6: Parar e Desabilitar o Serviço Apache
Por padrão, Apache e Nginx escutam na mesma porta (TCP 80). Por esse motivo, se o Apache estiver instalado no seu servidor, você precisa pará-lo e desabilitá-lo / mascará-lo (uma versão mais forte de desabilitação que vincula o serviço a /dev/null) para poder usar o Nginx, ou você pode removê-lo se não planeja usá-lo mais.
# systemctl stop httpd # systemctl disable httpd or # systemctl mask httpd
Passo 7: Iniciar/Parar o 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
Passo 8: Configurar o Nginx e o 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, vamos usar www.tecmint.com
, mas sinta-se à 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
Passo 9: Configurando Diretórios de Host Virtual do Nginx
Como você sabe, a capacidade de executar vários sites a partir da mesma máquina é uma das características distintivas dos principais servidores web. Vamos agora prosseguir para criar os diretórios para armazenar nossos blocos de servidor (conhecidos como hosts virtuais no Apache) em /etc/nginx.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
A seguinte linha de código, que deve ser inserida antes de fechar o bloco http em /etc/nginx/nginx.conf, garantirá que os arquivos de configuração dentro do diretório /etc/nginx/sites-enabled sejam levados em conta quando o Nginx estiver em execução:
## Load virtual host conf files. ## include /etc/nginx/sites-enabled/*;

Para criar o bloco de servidor para tecmint.com
, adicione as seguintes linhas de código a /etc/nginx/sites-available/tecmint (este arquivo será criado quando você inserir o caminho completo para iniciar seu editor de texto preferido). Este é um arquivo de configuração básico do 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 “ativar” um host virtual consiste em criar um link simbólico a partir da definição do host virtual tecmint
para /etc/nginx/sites-enabled.
# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint
Para realmente aplicar as mudanças que temos feito, agora precisamos reiniciar o Nginx. Às vezes, é útil verificar os arquivos de configuração quanto a erros de sintaxe antes de fazer isso:
# nginx -t # systemctl restart nginx # systemctl status nginx

Para acessar o seu novo host virtual criado, você precisa adicionar a seguinte linha em /etc/hosts como um método básico de resolução de nome de domínio.
192.168.0.18 www.tecmint.com tecmint.com
Passo 10: Testando Nginx, MySQL, PHP e PHP-FPM
Vamos seguir o método clássico de testar o PHP. Crie um arquivo chamado test.php
em /srv/www/tecmint/public_html/ e adicione as seguintes linhas de código nele.
A função phpinfo()
mostra muitas informações sobre a instalação atual do PHP:
<?php phpinfo(); ?>
Agora aponte o seu navegador para http://tecmint/test.php
e verifique a presença dos módulos instalados e do software adicional:
Parabéns! Você agora tem uma instalação funcional de um stack LEMP. Se algo não ocorreu como esperado, sinta-se à vontade para entrar em contato conosco usando o formulário abaixo. Perguntas e sugestões também são bem-vindas.
Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/