Pesquisa de site

Instalando LEMP (Nginx, PHP, MySQL com motor MariaDB e PhpMyAdmin) no Arch Linux


Devido ao seu modelo Rolling Release que abrange software de última geração, o Arch Linux não foi projetado e desenvolvido para funcionar como um servidor para fornecer serviços de rede confiáveis porque requer tempo extra para manutenção, atualizações constantes e configurações de arquivos sensatas.

Mas, ainda assim, como o Arch Linux vem com uma instalação central de CD com o mínimo de software pré-instalado, ele pode representar um ponto de partida sólido para instalar a maioria dos serviços de rede populares atualmente, incluindo o < b>LEMP ou LAMP, Apache Web Server, Nginx, PHP, bancos de dados SQL, Samba, servidores FTP, BIND e outros, muitos deles fornecidos pelo Arch Repositórios oficiais do Linux e outros do AUR.

Este tutorial orientará a instalação e configuração da pilha LEMP (Nginx, PHP, MySQL com mecanismo MariaDB e PhpMyAdmin) remotamente usando SSH, o que pode fornecer uma base sólida para construir aplicativos de servidor Web.

Requisitos

Guia de instalação anterior do Arch Linux, exceto a última parte sobre rede com DHCP.

Etapa 1: Atribuir IP estático na interface de rede

1. Após a instalação mínima do núcleo do Arch Linux, reinicie o servidor, faça login com a conta root ou conta sudo administrativa equivalente e identifique os nomes dos dispositivos NICs do sistema usando o ip link comando.

ip link

2. Para atribuir configurações de rede estáticas, usaremos o pacote Netctl para gerenciar conexões de rede. Depois de identificar com sucesso os nomes das suas interfaces de rede, copie o modelo do arquivo ethernet-static para o caminho do sistema netctl e altere seu nome para um esquema de nomenclatura descritivo ( tente usar a string “static” combinada com o nome da NIC), emitindo o seguinte comando.

cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. A próxima etapa é editar este novo arquivo de modelo alterando as diretivas do arquivo e fornecendo suas configurações de rede reais (Interface, IP/máscara de rede, Gateway, Broadcast, DNS) como no trecho abaixo.

nano  /etc/netctl/static.ens33

Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')

4. A próxima etapa é iniciar sua conexão de rede através da ferramenta de sistema netctl e verificar a conectividade do sistema emitindo os seguintes comandos.

netctl start static.ens33
netctl status static.ens33

5. Se você obtiver um status de saída verde ativo, você configurou com sucesso sua Interface de rede e é hora de ativá-la automaticamente nos serviços de todo o sistema. Teste também sua rede executando um comando ping em um nome de domínio e também instale o pacote net-tools (o recurso mais conhecido deste pacote é o comando ifconfig que Arch desenvolvedores consideraram meio obsoleto e o substituíram por iproute2).

Habilitar configurações de NIC em todo o sistema
netctl enable static.ens33
Instale o pacote net-tools
pacman -S net-tools

6. Agora você pode executar o comando ifconfig para verificar as configurações de suas interfaces de rede e verificar se tudo está exibido corretamente e então reiniciar b> seu sistema para garantir que tudo esteja no lugar e configurado corretamente.

ping linux-console.net

Etapa 2: Instale o software LEMP

Conforme apontado na introdução deste artigo, LEMP significa Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, que é uma das plataformas de aplicativos da web mais difundidas atualmente, depois de LAMP (o mesma pilha com o Apache na equação).

7. Antes de realmente instalar a pilha LEMP, precisamos atualizar o sistema e então obter controle remoto para o servidor Arch Linux. Como você provavelmente sabe, OpenSSH é o principal candidato para este trabalho, então vá em frente e instale-o, inicie o daemon SSH e habilite-o em todo o sistema.

sudo pacman -Syu
sudo pacman –S openssh

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd

Agora é hora de prosseguir com a instalação do LEMP. Como este tutorial pretende ser um guia completo, dividirei a instalação da pilha LEMP em pequenas partes, passo a passo.

8. Primeiro instale o Nginx Web Server, depois inicie-o e verifique seu status emitindo os seguintes comandos.

sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl status nginx

9. O próximo serviço a ser instalado é o banco de dados MySQL. Emita o seguinte comando para instalar o servidor de banco de dados MySQL e escolha o mecanismo MariaDB, em seguida, inicie e verifique o status do daemon.

sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl status mysqld

10. A próxima etapa é fornecer um ambiente altamente seguro para bancos de dados MySQL, fornecendo uma senha para a conta root do MySQL, removendo conta de usuário anônimo, removendo banco de dados de teste e contas root que são acessíveis de fora do localhost. Execute o seguinte comando para melhorar a segurança do MySQL, pressione [Enter] para obter a senha atual da conta root e responda Sim a todas as perguntas (configure também a senha da sua conta root).

sudo mysql_secure_installation

Nota: De forma alguma confunda a conta root do MySQL com a conta root do sistema Linux – são duas coisas diferentes – não tão diferentes, mas rodam em níveis diferentes.

Para verificar o login de segurança do MySQL no banco de dados usando a sintaxe do comando mysql -u root -p, forneça sua senha root e saia do banco de dados com o comando exit;.

mysql -u root -p

11. Agora é hora de instalar a linguagem de script do lado do servidor PHP para poder desenvolver e executar aplicações web dinâmicas complexas, e não apenas servir HTML/CSS código.

Como estamos usando o Nginx como servidor web, precisamos instalar o módulo suportado pelo PHP-FPM para nos comunicarmos através do Fast Common Gateway e alterar o conteúdo dinâmico gerado por scripts PHP.

Emita a seguinte linha de comando para instalar o serviço PHP-FPM, depois inicie o daemon e verifique o status.

sudo pacman –S php php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm

Para listar todos os módulos PHP disponíveis, emita os seguintes comandos.

sudo pacman –S php[TAB]
sudo pacman –Ss | grep php

12. Uma das últimas etapas é instalar a PhpMyAdmin Web Interface para o banco de dados MySQL. Emita o seguinte comando para instalar o PhpMyAdmin junto com seu módulo necessário do PHP e, em seguida, crie um link simbólico para o caminho do sistema PhpMyaAdmin para o caminho raiz padrão do Nginx.

pacman -S phpmyadmin php-mcrypt
sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. Em seguida, configure o arquivo php.ini para incluir as extensões necessárias ao aplicativo PhpMyAdmin.

sudo nano /etc/php/php.ini

Localize com as teclas [CTRL+W] e remova o comentário (remova ; no início da linha) as linhas seguintes.

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

No mesmo arquivo, localize e edite a diretiva open_basedir para se assemelhar aos seguintes diretórios incluídos.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. A próxima etapa é habilitar o PHP-FPM FastCGI na diretiva localhost Nginx. Emita o próximo comando para fazer backup da configuração do arquivo do servidor web nginx.conf e substitua-o pelo conteúdo a seguir.

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo nano /etc/nginx/nginx.conf

Adicione todo o conteúdo a seguir em nginx.conf.

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
            root   /usr/share/nginx/html;
        charset koi8-r;
        location / {
        index  index.php index.html index.htm;
                                autoindex on;
                                autoindex_exact_size off;
                                autoindex_localtime on;
        }

                                location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

 error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

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

15. Após todas as configurações dos arquivos terem sido feitas, tudo que você precisa fazer é reiniciar os serviços Nginx e PHP-FPM e apontar seu navegador para http://localhost/phpmyadmin URL do nó local ou http://arch_IP/phpmyadmin de outro computador.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Se tudo funcionar como esperado, o passo final é habilitar o LEMP em todo o sistema com os seguintes comandos.

sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl enable mysqld

Parabéns! Você instalou e configurou o LEMP no Arch Linux e, agora, tem uma interface dinâmica completa para iniciar e desenvolver aplicações web.

Embora o Arch Linux não seja o sistema mais adequado para rodar em servidores de produção devido ao seu modelo de lançamento contínuo orientado para a comunidade, ele pode ser uma fonte muito rápida e confiável para pequenos ambientes de produção não críticos.