{"id":1145,"date":"2023-06-10T16:40:59","date_gmt":"2023-06-10T19:40:59","guid":{"rendered":"https:\/\/marcomapa.com\/artigos\/?p=1145"},"modified":"2023-06-12T11:44:26","modified_gmt":"2023-06-12T14:44:26","slug":"instalando-lamp-em-uma-instancia-ec2","status":"publish","type":"post","link":"https:\/\/marcomapa.com\/artigos\/instalando-lamp-em-uma-instancia-ec2\/","title":{"rendered":"Instalando LAMP em uma Inst\u00e2ncia EC2"},"content":{"rendered":"\n<p><strong>LAMP<\/strong> \u00e9 um acr\u00f4nimo utilizado para descrever a combina\u00e7\u00e3o de software composta pelo sistema operacional Linux, o servidor web Apache, o sistema de gerenciamento de banco de dados MySQL e a linguagem de programa\u00e7\u00e3o PHP. Essa configura\u00e7\u00e3o \u00e9 amplamente utilizada para desenvolvimento e hospedagem de aplicativos web din\u00e2micos.<\/p>\n\n\n\n<p><strong>Apache<\/strong> \u00e9 um servidor web de c\u00f3digo aberto conhecido por sua confiabilidade e desempenho. Ele atua como um intermedi\u00e1rio entre o cliente (navegador) e o servidor, processando solicita\u00e7\u00f5es HTTP e fornecendo as respostas correspondentes. O Apache oferece recursos avan\u00e7ados de configura\u00e7\u00e3o e extensibilidade, permitindo a hospedagem de m\u00faltiplos sites e a implementa\u00e7\u00e3o de regras de redirecionamento, autentica\u00e7\u00e3o, seguran\u00e7a e muito mais.<\/p>\n\n\n\n<p><strong>MySQL<\/strong> \u00e9 um sistema de gerenciamento de banco de dados relacional amplamente utilizado. Ele fornece uma estrutura robusta para armazenar e recuperar dados de forma eficiente. O MySQL suporta a linguagem SQL, permitindo a cria\u00e7\u00e3o e manipula\u00e7\u00e3o de bancos de dados, tabelas, consultas e outros elementos relacionados. Com sua estabilidade, desempenho e ampla ado\u00e7\u00e3o, o MySQL \u00e9 uma escolha popular para aplicativos web que requerem armazenamento e recupera\u00e7\u00e3o eficientes de dados.<\/p>\n\n\n\n<p><strong>PHP<\/strong> \u00e9 uma linguagem de programa\u00e7\u00e3o de c\u00f3digo aberto projetada para o desenvolvimento de aplicativos web din\u00e2micos. Com o PHP, \u00e9 poss\u00edvel criar p\u00e1ginas web interativas e funcionais, realizar opera\u00e7\u00f5es de banco de dados, manipular arquivos, processar formul\u00e1rios e muito mais. O PHP \u00e9 altamente compat\u00edvel com o Apache e o MySQL, permitindo a cria\u00e7\u00e3o de aplicativos web completos e escal\u00e1veis. Sua sintaxe amig\u00e1vel e suporte extensivo a bibliotecas tornam o PHP uma escolha popular entre desenvolvedores web.<\/p>\n\n\n\n<p>Ao combinar o Linux como sistema operacional, o Apache como servidor web, o MySQL como banco de dados e o PHP como linguagem de programa\u00e7\u00e3o, o LAMP oferece uma plataforma s\u00f3lida e flex\u00edvel para o desenvolvimento e hospedagem de aplicativos web. Essa configura\u00e7\u00e3o \u00e9 amplamente adotada pela sua estabilidade, seguran\u00e7a, escalabilidade e suporte ativo da comunidade. O LAMP se tornou uma base confi\u00e1vel para a cria\u00e7\u00e3o de uma variedade de aplicativos web, desde sites simples at\u00e9 sistemas complexos e din\u00e2micos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Iniciando a instala\u00e7\u00e3o <\/h2>\n\n\n\n<p>Se voc\u00ea estiver utilizando Fedora, CentOS ou Red Hat Enterprise este outro artigo pode ser muito \u00fatil: <a href=\"https:\/\/marcomapa.com\/artigos\/instalar-servidor-apache-mysql-e-php-lamp-no-linux-fedora-red-hat-e-centos\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/marcomapa.com\/artigos\/instalar-servidor-apache-mysql-e-php-lamp-no-linux-fedora-red-hat-e-centos\/<\/a><\/p>\n\n\n\n<p>Agora utilizando o Amazon Linux 2023, ser\u00e1 necess\u00e1rio alguns passos diferentes que ser\u00e3o mostrados \u00e0 seguir.<\/p>\n\n\n\n<p>1-) Conecte-se na sua Inst\u00e2ncia EC2 por SSH.<br>Caso tenha d\u00favidas, este artigo pode ser \u00fatil:<a rel=\"noreferrer noopener\" href=\"https:\/\/marcomapa.com\/artigos\/acessando-uma-instancia-ec2-por-ssh\/\" target=\"_blank\"> https:\/\/marcomapa.com\/artigos\/acessando-uma-instancia-ec2-por-ssh\/<\/a><\/p>\n\n\n\n<p>2-) Atualize o sistema com o comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf update -y\t\n<\/code><\/pre>\n\n\n\n<p>3-) Vamos iniciar instalando o <strong>Apache<\/strong> e <strong>PHP<\/strong> com os drivers para <strong>MySQL<\/strong> dos pacotes disponibilizados pela AWS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel<\/code><\/pre>\n\n\n\n<p>4-) Para o MySQL vamos utilizar o MariaDB:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install mariadb105-server<\/code><\/pre>\n\n\n\n<p>5-) Vamos iniciar o Apache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start httpd<\/code><\/pre>\n\n\n\n<p>6-) Agora vamos habilit\u00e1-lo para iniciar automaticamente sempre que a inst\u00e2ncia for reiniciada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable httpd<\/code><\/pre>\n\n\n\n<p>7-) Podemos conferir o status do Apache executando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl is-enabled httpd<\/code><\/pre>\n\n\n\n<p>8- ) Adicionaremos permiss\u00e3o para que o user [<em><strong>ec2-user<\/strong><\/em>]* possa manipular os arquivos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo usermod -a -G apache ec2-user<\/code><\/pre>\n\n\n\n<p>*-) Caso voc\u00ea tenha alterado o user de utiliza\u00e7\u00e3o da inst\u00e2ncia, altere [ec2-user] para o novo nome.<\/p>\n\n\n\n<p>9-) Para surtir efeito, \u00e9 necess\u00e1rio deslogar (exit) e reconectar \u00e0 Inst\u00e2ncia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testando o Apache<\/h2>\n\n\n\n<p>10-) Por padr\u00e3o, o diret\u00f3rio inicial do Apache est\u00e1 dispon\u00edvel em [\/var\/www\/html]:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/html<\/code><\/pre>\n\n\n\n<p>11-) Crie um arquivo do tipo <em>php.info<\/em> com o seguinte comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"&lt;?php phpinfo(); ?&gt;\" &gt; \/var\/www\/html\/phpinfo.php\t<\/code><\/pre>\n\n\n\n<p>a-) Caso retorne a mensagem: \u201c<em>Permission denied<\/em>\u201d, Refa\u00e7a os passos n\u00ba8 e 9<\/p>\n\n\n\n<p>12-) Com o arquivo criado, pode-se ver o resultado acessando pelo computador, ou celular, o endere\u00e7o: <a href=\"http:\/\/ip.de.sua.instancia\/phpinfo.php\">http:\/\/ip.de.sua.instancia\/<u>phpinfo<\/u>.php<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/marcomapa.com\/artigos\/wp-content\/uploads\/2023\/06\/image-18.png\"><img loading=\"lazy\" decoding=\"async\" width=\"953\" height=\"371\" src=\"https:\/\/marcomapa.com\/artigos\/wp-content\/uploads\/2023\/06\/image-18.png\" alt=\"\" class=\"wp-image-1147\" srcset=\"https:\/\/marcomapa.com\/artigos\/wp-content\/uploads\/2023\/06\/image-18.png 953w, https:\/\/marcomapa.com\/artigos\/wp-content\/uploads\/2023\/06\/image-18-300x117.png 300w, https:\/\/marcomapa.com\/artigos\/wp-content\/uploads\/2023\/06\/image-18-768x299.png 768w\" sizes=\"auto, (max-width: 953px) 100vw, 953px\" \/><\/a><\/figure>\n\n\n\n<p><strong>Sucesso<\/strong> !! Temos apresentada a tela com as configura\u00e7\u00f5es de nosso PHP. Por quest\u00f5es de seguran\u00e7a, ap\u00f3s validar o funcionamento do servidor, remova este arquivo com o comando.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rm \/var\/www\/html\/phpinfo.php<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Configurando o MySQL<\/strong><\/h2>\n\n\n\n<p>13-) Inicie o <em>MariaDB<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start mariadb<\/code><\/pre>\n\n\n\n<p>14-) Por padr\u00e3o, a instala\u00e7\u00e3o do <em>MySQL<\/em> acarreta em liberar fun\u00e7\u00f5es \u00fateis nas etapas de desenvolvimento e testes, mas que comprometem a seguran\u00e7a no ambiente de produ\u00e7\u00e3o. Visando evitar isso, faremos uso da instala\u00e7\u00e3o com a op\u00e7\u00e3o [<strong>mysql_secure_installation<\/strong>] disponivel no <em>MariaDB<\/em> e que inibe vulnerabilidades de uma instala\u00e7\u00e3o <em>default<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql_secure_installation<\/code><\/pre>\n\n\n\n<p>a-) O prompt que surge, solicitar\u00e1 a senha atual do usu\u00e1rio root do MySQL. Como ainda n\u00e3o foi definida, apenas pressione Enter;<\/p>\n\n\n\n<p>b-) Digite Y para definir uma senha,<br>(se precisar de ajuda p\/ criar a senha, este link pode ser \u00fatil: <a rel=\"noreferrer noopener\" href=\"https:\/\/www.marcomapa.com\/gerador_senha.php\" target=\"_blank\">https:\/\/www.marcomapa.com\/gerador_senha.php<\/a>);<\/p>\n\n\n\n<p>c-) Digite Y para remover contas an\u00f4nimas;<br>d-) Digite Y para desabilitar acesso remoto ao root login;<br>e-) Digite Y para remover bancos de testes;<br>f-) Digite Y para recarregar as tabelas de privil\u00e9gios e salvar suas altera\u00e7\u00f5es;<\/p>\n\n\n\n<p>15-) Configurando para que o <em>MariaDB<\/em> inicie automaticamente ap\u00f3s reinicializa\u00e7\u00f5es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable mariadb<\/code><\/pre>\n\n\n\n<p>Maravilha!! Temos instalados todos os servi\u00e7os pertencentes ao LAMP.<\/p>\n\n\n\n<p>No pr\u00f3ximo tutorial, aprenderemos a configurar o phpMyAdmin (<a href=\"https:\/\/marcomapa.com\/artigos\/instalando-o-phpmyadmin-em-uma-instancia-ec2\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/marcomapa.com\/artigos\/instalando-o-phpmyadmin-em-uma-instancia-ec2\/<\/a>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>LAMP \u00e9 um acr\u00f4nimo utilizado para descrever a combina\u00e7\u00e3o de software composta pelo sistema operacional Linux, o servidor web Apache,<\/p>\n","protected":false},"author":1,"featured_media":1149,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,30,8],"tags":[],"class_list":["post-1145","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","category-devops","category-linux"],"_links":{"self":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/1145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/comments?post=1145"}],"version-history":[{"count":10,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/1145\/revisions"}],"predecessor-version":[{"id":1172,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/1145\/revisions\/1172"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/media\/1149"}],"wp:attachment":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/media?parent=1145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/categories?post=1145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/tags?post=1145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}