Pesquisa de site

Instale a pilha LEMP (Nginx, MariaDB, PHP) no CentOS7 passo a passo


LEMP significa Linux, Nginx (Pronunciado mecanismo X), MySQL/MariaDB e PHP. Ele permite que um servidor hospede sites dinâmicos e aplicativos da web. Neste tutorial vou mostrar como instalar a pilha LEMP no servidor CentOS 7. Eu escolho instalar o MariaDB como servidor de banco de dados em vez do MySQL.

Instale o Nginx no CentOS7 do EPEL

Nginx é um servidor web rápido comparado ao Apache e está se tornando mais popular atualmente. Para instalar o Nginx no CentOS 7, precisamos adicionar o repositório EPEL usando o seguinte comando. EPEL significa Pacotes Extras para Enterprise Linux.

sudo yum install epel-release -y

Digite sua senha. Agora que o repositório foi adicionado, é hora de instalar o Nginx:

sudo yum install nginx -y

Após a instalação do Nginx, precisamos iniciá-lo.

sudo systemctl start nginx

Habilite o Nginx para iniciar no momento da inicialização do sistema.

sudo systemctl enable nginx

Verifique se está funcionando:

systemctl status nginx

Exemplo de saída:

 nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:36:31 UTC; 1min 19s ago
 Main PID: 13692 (nginx)
   CGroup: /system.slice/nginx.service
           ├─13692 nginx: master process /usr/sbin/nginx
           └─13693 nginx: worker process

Verifique a versão do Nginx:

[linux-terminal@centos7 ~]$ nginx -v
nginx version: nginx/1.12.2

Digite o endereço IP do seu servidor em seu navegador da web. Se você vir o seguinte, o Nginx está instalado corretamente.

Você pode encontrar o endereço IP público do seu servidor usando o seguinte comando:

ip address

ou

curl http://icanhazip.com

O firewall do seu servidor pode ter desativado o acesso público à porta 80. Para permitir o acesso público, instruímos o firewall do iptables a aceitar o tráfego para a porta 80 com o seguinte comando.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Agora seu servidor pode hospedar arquivos HTML estáticos, mas para hospedar um site dinâmico, precisamos instalar MariaDB e PHP.

Instale MariaDB no CentOS 7

MariaDB é um substituto imediato para MySQL. Instale-o usando o seguinte comando:

sudo yum install mariadb-server mariadb -y

Depois de instalado, precisamos iniciá-lo.

sudo systemctl start mariadb

Habilite o MariaDB para iniciar no momento da inicialização do sistema.

sudo systemctl enable mariadb

Verifique o status:

systemctl status mariadb

saídas:

 mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:48:46 UTC; 23s ago
 Main PID: 13970 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─13970 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

Verifique a versão:

[linux-terminal@centos7 ~]$ mysql --version
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

Agora precisamos executar o script de segurança.

sudo mysql_secure_installation

Quando o script solicitar a senha root atual, deixe-a em branco e pressione Enter. Em seguida, digite Y e defina uma senha de root.

Depois de definir a senha root, você pode simplesmente pressionar Enter para responder a todas as outras perguntas. (Observe que a letra Y está em maiúscula, o que significa que é a resposta padrão.)

Agora vamos passar para a parte do PHP.

Instale PHP-FPM no CentOS7

Instale o PHP e pacotes relacionados usando o seguinte comando:

sudo yum install php php-mysql php-fpm php-gd php-xml php-mbstring -y

Agora edite o arquivo de configuração do php-fpm:

sudo nano /etc/php-fpm.d/www.conf

Encontre a seguinte linha:

listen = 127.0.0.1:9000

mude para isto:

listen = /var/run/php-fpm/php-fpm.sock

então encontre as duas linhas a seguir:

;listen.owner = nobody
;listen.group = nobody

remova os pontos e vírgulas anteriores. Por último, altere o valor do usuário e do grupo de “apache” para “nginx”:

user = nginx
group = nginx

Depois de salvar e fechar o arquivo, inicie o processador PHP:

sudo systemctl start php-fpm

Em seguida, habilite o php-fpm para iniciar na inicialização do sistema.

sudo systemctl enable php-fpm

Configurar host virtual Nginx

Crie um novo arquivo de host virtual no diretório /etc/nginx/conf.d

sudo nano /etc/nginx/conf.d/example.com.conf

Adicione as seguintes linhas a ele. Substitua www.example.com e example.com pelo seu próprio domínio. Não se esqueça de definir um registro A para o seu nome de domínio.

server {
  listen 80;
  server_name www.example.com example.com;
  root /usr/share/nginx/html;
  index index.php index.html index.htm;
  location / {
    try_files $uri $uri/ /index.php$query_string;
  }
  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root /usr/share/nginx/html;
  }
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

Salve e feche o arquivo. então recarregue o nginx:

sudo systemctl reload nginx

Você pode adicionar arquivos de host virtual adicionais para hospedar vários sites em um único servidor.

Teste o processamento de PHP

Crie um arquivo info.php no diretório raiz da web:

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

Coloque o seguinte texto no arquivo

<?php phpinfo(); ?>

Salve e feche-o. Em seguida, visite o arquivo recém-criado digitando o seguinte em seu navegador:

http://example.com/info.php

ou

your ip address/info.php

Se você vir algo como na imagem a seguir, seu PHP está funcionando corretamente.

Este arquivo é apenas para teste. Por motivos de segurança agora você pode removê-lo usando o seguinte comando:

sudo rm /usr/share/nginx/html/info.php

Agora que o LEMP está instalado, você pode estar se perguntando o que deve fazer a seguir. Bem, você pode instalar um site WordPress ou Drupal no topo de sua pilha LEMP. Isso é exatamente o que vou mostrar no próximo tutorial.

Artigos relacionados