{"id":994,"date":"2016-09-06T11:45:31","date_gmt":"2016-09-06T14:45:31","guid":{"rendered":"http:\/\/artigos.marcomapa.com\/?p=994"},"modified":"2016-09-06T12:34:07","modified_gmt":"2016-09-06T15:34:07","slug":"instalar-servidor-apache-mysql-e-php-lamp-no-linux-fedora-red-hat-e-centos","status":"publish","type":"post","link":"https:\/\/marcomapa.com\/artigos\/instalar-servidor-apache-mysql-e-php-lamp-no-linux-fedora-red-hat-e-centos\/","title":{"rendered":"Instalando Servidor Apache, MySQL e PHP (LAMP) no Linux (Fedora, Red Hat e CentOS)"},"content":{"rendered":"<p style=\"text-align: left;\">Todo desenvolvedor Web precisa de um ambiente de testes, pro pessoal que trabalha com Windows, as op\u00e7\u00f5es s\u00e3o o ISS da Microsoft, ou o WAMP que \u00e9 a vers\u00e3o do LAMP para ambiente Microsoft.<\/p>\n<p>Nunca me pareceu muito pr\u00e1tico testar aplica\u00e7\u00f5es Web no Windows, j\u00e1 que a grande maioria dos servidores no mundo s\u00e3o Linux, sempre mantive uma m\u00e1quina virtual com ISS configurado apenas para testar aplica\u00e7\u00f5es ASP e seus derivados, mas como a maior parte de meu trabalho sempre esteve no PHP e MySQL, o Linux acabou ganhando prefer\u00eancia no meu dia a dia.<\/p>\n<p>Vamos aprender a instalar os servi\u00e7os, lembrando que o aprendido aqui tamb\u00e9m vale para colocar um servidor Web em produ\u00e7\u00e3o, claro que pouco conveniente, pois hoje os custos de hospedagens profissionais est\u00e3o cada vez mais baixos, n\u00e3o justificando o investimento em infra para manter um servidor ligado 24 horas hospedando um site pessoal.<\/p>\n<p>O primeiro passo para iniciarmos a instala\u00e7\u00e3o, \u00e9 abrir o terminal, e em seguida logar como usu\u00e1rio root, digitando:<\/p>\n<p><i><b>su<\/b><\/i><\/p>\n<p>d\u00ea um enter.<\/p>\n<p>agora insira sua senha de root, configurada quando voc\u00ea instalou sua distro Linux no seu computador.<\/p>\n<p>Ap\u00f3s feito isso, vamos iniciar instalando o Apache, com o comando:<\/p>\n<p><i><b>dnf install httpd -y<\/b><\/i><\/p>\n<p>Caso sua m\u00e1quina esteja utilizando alguma vers\u00e3o anterior do Fedora, o comando retornar\u00e1 erro, ent\u00e3o, substitua o \u2018<i><b>dnf<\/b><\/i>\u2019 por \u2018<i><b>yum<\/b><\/i>\u2019, ficando assim:<\/p>\n<p><i><b>yum install httpd -y<\/b><\/i><\/p>\n<p lang=\"pt-PT\"><a name=\"result_box\"><\/a> Agora vamos ativar o servi\u00e7o de httpd para iniciar automaticamente em cada inicializa\u00e7\u00e3o do seu sistema operacional:<\/p>\n<p lang=\"pt-PT\"><i><b>systemctl enable httpd<\/b><\/i><\/p>\n<p lang=\"pt-PT\"><a name=\"result_box2\"><\/a> Iniciando o servi\u00e7o httpd pela 1\u00aa vez usando o seguinte comando:<\/p>\n<p lang=\"pt-PT\"><i><b>systemctl start httpd<\/b><\/i><\/p>\n<p lang=\"pt-PT\">Como nem tudo \u00e9 perfeito, pode aparecer o seguinte erro:<\/p>\n<p>\u2018<i>Job for httpd.service failed. See 'systemctl status httpd.service' and<\/i><\/p>\n<p><i>'journalctl -xn' for details.<\/i>\u2019<\/p>\n<p lang=\"pt-PT\"><a name=\"result_box4\"><\/a> Para resolver, elimine todo o conte\u00fado encontrado em \u2018\/ etc \/ hostname\u2019 .<br \/>\nColoque \"Localhost\" em \"Servername\" em \u2018\/ etc \/ httpd \/ conf \/ httpd.conf\u2019 e ajuste o firewall para permitir que o servi\u00e7o httpd seja acessado de clientes remotos, utilizando os seguintes comandos:<\/p>\n<p lang=\"pt-PT\"><i><b>firewall-cmd --permanent \u2013add-service=http<\/b><\/i><\/p>\n<p lang=\"pt-PT\">e<\/p>\n<p lang=\"pt-PT\"><i><b>firewall-cmd --permanent \u2013add-service=https<\/b><\/i><\/p>\n<p lang=\"pt-PT\">Reinicie o servi\u00e7o de seu Firewall:<\/p>\n<p lang=\"pt-PT\"><i><b>firewall-cmd --reload<\/b><\/i><\/p>\n<p lang=\"pt-PT\">suba o servi\u00e7o httpd, utilizando:<\/p>\n<p lang=\"pt-PT\"><i><b>systemctl start httpd<\/b><\/i><\/p>\n<p>Feito isso, seu Apache j\u00e1 est\u00e1 rodando na m\u00e1quina, para testar, abra um navegador Web e digite na barra de endere\u00e7os:<\/p>\n<p align=\"left\"><i><b>http:\/\/seu-ip\/<\/b><\/i> (sabendo que \u2018seu-ip\u2019 \u00e9 o n\u00ba de seu IP em sua rede local)<\/p>\n<p>ou<\/p>\n<p><i><b>http:\/\/localhost\/<\/b><\/i><\/p>\n<p>ou ainda:<\/p>\n<p><i><b>http:\/\/127.0.0.1\/<\/b><\/i><\/p>\n<p>Voc\u00ea visualizar\u00e1 a tela Padr\u00e3o do Servidor Apache. Terminando assim a 1\u00aa parte de nosso trabalho.<\/p>\n<p>&nbsp;<\/p>\n<p>Vamos agora instalar o servi\u00e7o de Banco de Dados MySQL. Como op\u00e7\u00e3o pr\u00e1tica e robusta, recomendo o MariaDB.<\/p>\n<p>Para instal\u00e1-lo, vamos dar este comando no terminal:<\/p>\n<p><i><b>dnf install mariadb mariadb-server -y<\/b><\/i><\/p>\n<p>Assim como no caso da instala\u00e7\u00e3o do Apache, caso a vers\u00e3o de sua distro retorne erro, utilize:<\/p>\n<p><i><b>yum install mariadb mariadb-server -y<\/b><\/i><\/p>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, vamos ativar o in\u00edcio autom\u00e1tico dos servi\u00e7os, sempre que o computador seja ligado:<\/p>\n<p><i><b>systemctl enable mariadb<\/b><\/i><\/p>\n<p>E inici\u00e1-lo pela 1\u00aa vez:<\/p>\n<p><i><b>systemctl start mariadb<\/b><\/i><\/p>\n<p>O pr\u00f3ximo passo \u00e9 Definir a senha Root de seus bancos MySQL, pois por padr\u00e3o, ela fica em branco ap\u00f3s a instala\u00e7\u00e3o, possibilitando o f\u00e1cil acesso aos databases criados.<\/p>\n<p>Aplique o comando:<\/p>\n<p><i><b>mysql_secure_installation<\/b><\/i><\/p>\n<p>Com isso, aparecer\u00e1 no terminal o setup para que voc\u00ea possa configurar a senha root. Observe a linha:<\/p>\n<p>\u2018 <i>Change the root password? [Y\/n] y<\/i> \u2018<\/p>\n<p>Pressione a tecla '<i><b>y<\/b><\/i>' e d\u00ea um enter, (caso seu Linux esteja em portugu\u00eas, substitua o \u2018y\u2019 por \u2018s\u2019).<\/p>\n<p><i>New password:<\/i><\/p>\n<p><i><b>Digite para criar sua senha root e d\u00ea enter<\/b><\/i><\/p>\n<p><i>Re-enter new password:<\/i><\/p>\n<p><i><b>Redigite a sua senha criada no passo anterior e d\u00ea um novo enter.<\/b><\/i><\/p>\n<p>Password updated successfully!<\/p>\n<p>Pronto ! Sua senha root agora est\u00e1 configurada \ud83d\ude42<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Agora s\u00f3 est\u00e1 faltando instalarmos o servi\u00e7o PHP<\/p>\n<p>Utilizaremos o comando:<\/p>\n<p><i><b>dnf install php -y<\/b><\/i><\/p>\n<p>Ou no caso de vers\u00e3o anterior do Linux:<\/p>\n<p><i><b>yum install php -y<\/b><\/i><\/p>\n<p>Feito isso, vamos test\u00e1-lo.<\/p>\n<p>Vamos criar um arquivo chamado \u2018testphp.php\u2019 na pasta principal da instala\u00e7\u00e3o do Apache:<\/p>\n<p><i><b>vi \/var\/www\/html\/testphp.php<\/b><\/i><\/p>\n<p>Adicione as seguintes linhas de c\u00f3digo:<\/p>\n<p><i><b>&lt;?php<\/b><\/i><\/p>\n<p><i><b>phpinfo();<\/b><\/i><\/p>\n<p><i><b>?&gt;<\/b><\/i><\/p>\n<p>Reinicie o servi\u00e7o httpd:<\/p>\n<p><i><b>systemctl restart httpd<\/b><\/i><\/p>\n<p>Agora, de volta no seu navegador vamos digitar na barra de endere\u00e7os:<\/p>\n<p><i><b>http:\/\/localhost\/testphp.php<\/b><\/i><\/p>\n<p lang=\"pt-PT\">Ser\u00e1 exibido todos os detalhes sobre o PHP como a vers\u00e3o, data de constru\u00e7\u00e3o e comandos, al\u00e9m de outros recursos.<\/p>\n<p>Vamos instalar o m\u00f3dulo php-mysql com o seguinte comando:<\/p>\n<p><i><b>dnf install php-mysql -y<\/b><\/i><\/p>\n<p>ou<\/p>\n<p><i><b>yum install php-mysql -y<\/b><\/i><\/p>\n<p>Sempre que voc\u00ea instalar algum novo m\u00f3dulo, lembre-se de reiniciar o servi\u00e7o utilizando:<\/p>\n<p><i><b>systemctl restart httpd<\/b><\/i><\/p>\n<p>E para finalizarmos, vamos instalar um ambiente gr\u00e1fico para gerenciarmos nossos Bancos de Dados. E para tal tarefa, nada melhor do que nosso querido <b>phpMyAdmin<\/b> \ud83d\ude00<\/p>\n<p><i><b>dnf install phpmyadmin -y<\/b><\/i><\/p>\n<p>ou<\/p>\n<p><i><b>dnf install phpmyadmin -y<\/b><\/i><\/p>\n<p lang=\"pt-PT\"><a name=\"result_box7\"><\/a> Por padr\u00e3o, o phpMyAdmin pode ser acessado apenas de seu localhost. Para acess\u00e1-lo de uma m\u00e1quina em sua rede, execute os seguintes passos.<\/p>\n<p lang=\"pt-PT\">Edite o arquivo \u2018\/etc\/httpd\/conf.d\/phpMyAdmin.conf\u2019 :<\/p>\n<p lang=\"pt-PT\"><i><b>vi \/etc\/httpd\/conf.d\/phpMyAdmin.conf<\/b><\/i><\/p>\n<p lang=\"pt-PT\">Localize os trechos:<\/p>\n<p lang=\"pt-PT\"><i>&lt;RequireAny&gt;<\/i><\/p>\n<p lang=\"pt-PT\"><i>Require ip 127.0.0.1<\/i><\/p>\n<p lang=\"pt-PT\"><i>Require ip ::1<\/i><\/p>\n<p lang=\"pt-PT\"><i>Require all granted<\/i><\/p>\n<p lang=\"pt-PT\"><i>&lt;\/RequireAny&gt;<\/i><\/p>\n<p lang=\"pt-PT\">Altere para :<\/p>\n<p lang=\"pt-PT\"><i>&lt;RequireAny&gt;<\/i><\/p>\n<p lang=\"pt-PT\"><i><b>#<\/b>Require ip 127.0.0.1<\/i><\/p>\n<p lang=\"pt-PT\"><i><b>#<\/b>Require ip ::1<\/i><\/p>\n<p lang=\"pt-PT\"><i>Require all granted<\/i><\/p>\n<p lang=\"pt-PT\"><i>&lt;\/RequireAny&gt;<\/i><\/p>\n<p>Observa\u00e7\u00e3o. Existe mais de um \u00fanico trecho neste arquivo onde voc\u00ea precisar\u00e1 fazer esta altera\u00e7\u00e3o.<\/p>\n<p>Salve e feche este arquivo de configura\u00e7\u00e3o e Reinicie seu o servi\u00e7o:<\/p>\n<p><i><b>systemctl restart httpd<\/b><\/i><\/p>\n<p>Agora \u00e9 s\u00f3 testar seu servi\u00e7o phpMyAdmin. Na barra de endere\u00e7os em seu navegador, digite:<\/p>\n<p><i><b>http:\/\/localhost\/phpmyadmin<\/b><\/i><\/p>\n<p>Voc\u00ea ser\u00e1 direcionado para a tela de login do ambiente. Nesta tela, voc\u00ea deve entrar com o usu\u00e1rio root e a senha que voc\u00ea definiu na configura\u00e7\u00e3o do MariaDB.<\/p>\n<p>Pronto, seu LAMP est\u00e1 preparado para o uso. Voc\u00ea pode agora criar ou importar seus bancos, e testar seus fontes com muita facilidade.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Todo desenvolvedor Web precisa de um ambiente de testes, pro pessoal que trabalha com Windows, as op\u00e7\u00f5es s\u00e3o o ISS<\/p>\n","protected":false},"author":1,"featured_media":995,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,7,5],"tags":[],"class_list":["post-994","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-php","category-web"],"_links":{"self":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/994","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=994"}],"version-history":[{"count":4,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/994\/revisions"}],"predecessor-version":[{"id":999,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/994\/revisions\/999"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/media\/995"}],"wp:attachment":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/media?parent=994"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/categories?post=994"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/tags?post=994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}