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.