Preparando O Seu Ambiente De Desenvolvimento Em Um Amazon Web Service. |

Tutoriais Linux para sysadmin e usuários novos

Preparando o seu ambiente de desenvolvimento em um amazon web service.

8 min read
Preparando o seu ambiente de desenvolvimento em um amazon web service. 4

Como posso instalar nginx, MySQL e PHP (LEMP) em cloud server da Amazon?

LEMP é um acrônimo para Linux, nginx, MySQL e PHP. Esta página explica como configurar o PHP 7.3, servidor de banco de dados MySQL e nginx stack no Amazon Linux AMI em execução no EC2 ou no Lightsail para executar aplicativos dinâmicos da web.

Instalação da Amazon Linux AMI LEMP

O procedimento é o seguinte:

  1. Atualize o Amazon Linux AMI, execute sudo yum update
  2. Instale o Nginx, execute: sudo yum install nginx
  3. Vamos instalar o servidor de banco de dados MySQL, execute: sudo yum install mysql57-server
  4. Configure o PHP versão 7.3, execute:
  5. Abra a porta 80 usando o firewall do iptables
  6. Teste sua pilha LEMP em execução no Amazon AMI Linux

Vamos ver todas as etapas e exemplos em detalhes.

1. Atualize seu sistema Amazon Linux AMI

Verifique as atualizações usando o comando yum e aplique atualizações de segurança no Amazon Linux AMI : Reinicie o sistema Linux com Amazon Linux AMI se a atualização do kernel estiver instalada:

yum check-update
sudo yum update -y
sudo reboot

2. Instale o servidor web Nginx

Nginx é um servidor web e um servidor proxy reverso para HTTP/HTTPS e mais. Faz parte da pilha LEAP. Basta digitar o seguinte comando yum para instalá-lo no Amazon Linux AMI: Como de costume, o servidor da web nginx não inicia no Amazon Linux AMI. Para iniciar a execução do servidor nginx, execute o seguinte comando de serviço : Habilite o serviço no momento da inicialização usando o comando chkconfig Verifique se o serviço nginx está sendo executado com a ajuda dos comandos pgrep command/ss command/netstat command:

sudo yum search nginx
sudo yum info nginx
sudo yum install nginx
sudo service nginx start

sudo chkconfig nginx on

sudo service nginx status
pgrep nginx
ss -tlpn | grep :80

Porta TCP porta 80

Edite o arquivo:

sudo vi /etc/sysconfig/iptables

anexe a seguinte linha para abrir a porta TCP 80 antes da regra final da DROP:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACEITAR

Salve e feche o arquivo. Reinicie o firewall :

sudo service iptables restart

Consulte “ Configurar um firewall básico de iptables no Amazon Linux AMI ” para obter mais informações sobre o firewall IPv4 e IPv6.

Teste-o

Dispare um navegador da Web e digite seu endereço IPv4 público, como:

http://1.2.3.4/
http://your-domain-mapped-to-public-ip-com/
http://202.1.2.3/

3. Instale o servidor de banco de dados MySQL

A primeira etapa é procurar a versão do MySQL DB, execute:

yum list mysql*-server

Exemplo de saídas:

Plugins carregados: prioridades, update-motd, upgrade-helper
Pacotes Disponíveis
mysql-server.noarch 5.5 - 1.6 .amzn1 amzn-main   
mysql51-server.x86_64 5.1.73- 8.72 .amzn1 amzn-main   
mysql55-server.x86_64 5.5.62- 1.23 .amzn1 amzn-updates
mysql56-server.x86_64 5.6.45- 1.34 .amzn1 amzn-updates
mysql57-server.x86_64 5.7.27- 1.13 .amzn1 amzn-updates

Agora você sabe tudo sobre a versão MySQL, vamos instalar o MySQL DB versão 5.7.x no Amazon Linux AMI para armazenar dados em nossa pilha LEMP:

sudo yum info mysql57-server
sudo yum install mysql57-server

Ativar serviço MySQL

sudo chkconfig mysqld on

Iniciar serviço MySQL

sudo service mysqld start

Verifique se o servidor está em execução, execute:

sudo service mysqld status

Preparando o seu ambiente de desenvolvimento em um amazon web service. 5

Servidor MySQL seguro

Em seguida, execute o seguinte comando para melhorar a segurança da sua instalação do MySQL das seguintes maneiras:

  • Defina uma senha para contas raiz.
  • Remova as contas raiz acessíveis fora do host local.
  • Exclua contas de usuário anônimo.
  • Apague o banco de dados de teste (que por padrão pode ser acessado por todos os usuários, inclusive usuários anônimos) e privilégios que permitem que qualquer pessoa acesse bancos de dados com nomes que começam com test_.
sudo /usr/bin/mysql_secure_installation

Sessão de amostra:

Nova senha: 

Re-introduza a nova palavra-passe: 

Força estimada da senha: 100  
Deseja continuar com a senha fornecida? ( Pressione y | Y para Sim, qualquer outra tecla para Não ) : Y
Por padrão, uma instalação do MySQL tem um usuário anônimo,
permitindo que qualquer pessoa efetue login no MySQL sem ter que ter
uma conta de usuário criada para eles. Isto é destinado apenas a
testes e para tornar a instalação um pouco mais suave.
Você deve removê-los antes de passar para uma produção
meio Ambiente.

Remover usuários anônimos? ( Pressione y | Y para Sim, qualquer outra tecla para Não ) : Y
Sucesso.

Normalmente, o root só deve ter permissão para se conectar a partir de
'localhost'. Isso garante que alguém não consiga adivinhar
a senha raiz da rede.

Proibir o login root remotamente? ( Pressione y | Y para Sim, qualquer outra tecla para Não ) : Y
Sucesso.

Por padrão, o MySQL vem com um banco de dados chamado 'test' que
qualquer um pode acessar. Isso também se destina apenas a testes,
e deve ser removido antes de passar para uma produção
meio Ambiente.

Remover banco de dados de teste e acessar a ele? ( Pressione y | Y para Sim, qualquer outra tecla para Não ) : Y
 - Soltando banco de dados de teste ...
Sucesso.

 - Removendo privilégios no banco de dados de teste ...
Sucesso.

Recarregar as tabelas de privilégios garantirá que todas as alterações
feito até agora entrará em vigor imediatamente.

Recarregar tabelas de privilégios agora? ( Pressione y | Y para Sim, qualquer outra tecla para Não ) : Y
Sucesso.

Tudo feito!

4. Instale o PHP 7.3

Agora que temos o Nginx e o MySQL instalados, é hora de instalar o PHP. Novamente, liste as versões do PHP, execute:

yum list php*-fpm

Exemplo de saídas:

Plugins carregados: prioridades, update-motd, upgrade-helper
Pacotes Disponíveis
php-fpm.x86_64 5.3.29- 1.8 .amzn1 amzn-main   
php54-fpm.x86_64 5.4.45- 1.75 .amzn1 amzn-main   
php55-fpm.x86_64 5.5.38- 2.119 .amzn1 AMZN-main   
php56-fpm.x86_64 5.6.40- 1.142 .amzn1 amzn-updates
php70-fpm.x86_64 7.0.33- 1.32 .amzn1 amzn-updates
php71-fpm.x86_64 7.1.32- 1.42 .amzn1 amzn-updates
php72-fpm.x86_64 7.2.22- 1.16 .amzn1 amzn-updates
php73-fpm.x86_64 7.3.9- 1.19 .amzn1 amzn-updates

O PHP-FPM (FastCGI Process Manager) é uma implementação alternativa do PHP FastCGI com alguns recursos adicionais úteis para sites de qualquer tamanho, especialmente sites mais ocupados. É recomendável que você use php73-fpm com o Nginx, execute:

sudo yum install php73-fpm

Instalando Módulos PHP Adicionais

  • php73-gd - Um módulo para aplicativos PHP para usar a biblioteca de gráficos gd.
  • php73-mysqlnd - Um módulo para aplicativos PHP que usam bancos de dados MySQL.
  • php73-opcache - O Zend OPcache fornece execução mais rápida do PHP através do cache e otimização do opcode. Ele melhora o desempenho do PHP armazenando o bytecode de script pré-compilado na memória compartilhada.
  • php73-pdo - O pacote php-pdo contém um objeto compartilhado dinâmico que adicionará uma camada de abstração de acesso ao banco de dados ao PHP. Este módulo fornece uma interface comum para acessar o MySQL, PostgreSQL ou outros bancos de dados.
  • php73-xmlrpc - O pacote php-xmlrpc contém um objeto compartilhado dinâmico que adicionará suporte ao protocolo XML-RPC ao PHP.

Para instalá-los, execute:

sudo yum install php73-gd php73-mysqlnd php73-opcache php73-xmlrpc php73-pdo

Preparando o seu ambiente de desenvolvimento em um amazon web service. 6

É possível pesquisar e listar módulos php adicionais usando:

yum list php73-*

Ativar o serviço PHP-fpm

sudo chkconfig php-fpm on

Inicie o serviço PHP-fpm

sudo service php-fpm start

Verifique o status do serviço PHP-fpm

sudo service php-fpm status

Verifique se o soquete Unix está em execução no PHP-FPM usando o comando ls:

ls -l /var/run/php-fpm/www.sock

Reinicie o serviço Nginx

Use o comando cat para listar a configuração:

cat /etc/nginx/conf.d/php-fpm.conf

Você deve reiniciar o Nginx para ativar o suporte ao PHP via /var/run/php-fpm/www.sock socket:

sudo servive nginx restart

Preparando o seu ambiente de desenvolvimento em um amazon web service. 7

Configuração PHP

O PHP é configurado usando o arquivo /etc/nginx/default.d/php.conf da seguinte maneira:

cat /etc/nginx/default.d/php.conf

Exemplo de saídas:

# passa os scripts PHP para o servidor FastCGI
#
# Veja conf.d / php-fpm.conf para configuração do soquete
#
index index.php index.html index.htm;

localização ~ \. ( php | phar ) ( /.* ) ? $ { 
    fastcgi_split_path_info ^ ( . + \. ( ?: php | phar ) ) ( /.* ) $;

    fastcgi_intercept_errors ativado;
    fastcgi_index index.php;
    inclua fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
    fastcgi_param PATH_INFO $ fastcgi_path_info;
    fastcgi_pass php-fpm;
}

Edite o arquivo /etc/php-fpm.d/www.conf:

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

Encontre o apache no usuário e no grupo: Substitua pelo nginx: Certifique-se de reiniciar / recarregar o PHP-fpm sempre que fizer alterações na configuração:

user = apache
group = apache

user = nginx
group = nginx

sudo service php-fpm reload

Teste a instalação do PHP na Amazon Linux AMI

Crie um nome de arquivo test.php em / usr / share / nginx / html, execute:

sudo vi /usr/share/nginx/html/test.php

Anexe o seguinte texto:

<? php
// servidor de teste com suporte a php 
     phpinfo ( ) ;
?>

Dispare um navegador da Web como o Firefox e digite seu endereço IPv4 público, como:

http://1.2.3.4/test.php
http://your-domain-mapped-to-public-ip-com/test.php
http://202.1.2.3/test.php

Configuração do servidor Nginx

Importar arquivos:

  • Arquivo de configuração principal - /etc/nginx/nginx.conf
  • Arquivo de configuração do soquete / servidor PHP-FPM FastCGI - /etc/nginx/conf.d/php-fpm.conf
  • Habilite scripts PHP 7.3 no servidor FastCGI para Nginx - /etc/nginx/default.d/php.conf
  • Domínio Virtual - /etc/nginx/conf.d/ (coloque cada arquivo de configuração de domínio neste diretório)

EXEMPLO DE CONFIGURAÇÃO DE DOMÍNIO VIRTUAL DO NGINX:

Uma configuração de amostra para o domínio virtual server1.palamar.net:

cat /etc/nginx/conf.d/server1.palamar.net
#
# Um host virtual 
#
servidor { 
    escute        80 ;
    server_name server1.palamar.net server1;

    local / {
        root /www/domains/server1.palamar.net/http;
        index index.html index.htm;
    } 
}

Certifique-se de reiniciar / recarregar o nginx ao alterar / atualizar os arquivos de configuração do Nginx:

sudo service nginx configtest
sudo service nginx reload

Personalizar servidor MySQL

Você precisa editar o arquivo /etc/my.cnf:

cat /etc/my.cnf

Exemplo de saídas:

[ mysqld ]
 datadir = / var / lib / 
soquete mysql = /var/lib/mysql/mysql.sock
# Desabilitar links simbólicos é recomendado para evitar riscos de segurança variados
simbólico-links = 0
# Configurações usuário e grupo são ignorados quando systemd é usado.
# Se você precisar executar o mysqld sob um usuário ou grupo diferente,
# personalize seu arquivo de unidade systemd para o mysqld de acordo com o
# instruções em http://fedoraproject.org/wiki/Systemd
[ mysqld_safe ]
 log-error = /var/log/mysqld.log 
arquivo pid = /var/run/mysqld/mysqld.pid

Novamente, reinicie / recarregue o serviço MySQL sempre que você fizer alterações na configuração:

sudo service mysqld restart

Conclusão

Você estudou como instalar o Linux, nginx, MySQL, PHP (LEMP) na Amazon Linux AMI.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *