Conhece Linux – LAMP?

0

Neste post vamos falar sobre GNU/Linux LAMP que trata-se de uma instalação do servidor Linux com alguns serviços: Apache, MariaDB ou MySQL e PHP ou Python.

Somos pessoas de TI e estamos habituados em ter que aprender sobre itens que não pertencem ao nosso expertise, seja para fazer um lab ou mesmo desenvolve r um produto. Damos aquela “rapidinha” no Google que nos retornam bzilhões de resultados que vai te fazer ficar um bom tempo lendo até encontrar uma ou mais “receitas” que te atenda.  Cansativo heim…

Não temas, vamos montar um Servidor Linux LAMP!
Linux Apache, MySql PHP.= LAMP.  Trata-se de um acrônimo de um tipo de instalação de LINUX que já contemplará Servidor Web, Banco de Dados, e uma Linguagem, o mais importante é entender o conceito: ter um servidor que já possua as ferramentas que possivelmente você vai precisar para fazer seus testes, ou seja, pode ter o BD, Web service e “Linguagem” que vc desejar:

 

Aqui vamos instalar o LAMP  com: Apache, MariaDB, PHP, Perl e Python.

Expectativas:
– Partiremos do cenário em que você já possui o VirtualBox – Manual do VirtualBox em: https://www.virtualbox.org/manual/UserManual.html
– Vamos instalar o CentOS 7 – trata-se de uma instalação básica; Não vamos detalhar sobre conceitos, partições, size e tipos;
– Vamos instalar: Apache, PHP, Perl, Python e MariaDB.

Case:
 -Preciso de um servidor linux com web, php perl e outros pacotes instalados para testar comportamento de minha aplicação;
-Distribuição: CentOS 7;
-Serviços: web server e outros:

Ingredientes:
-ISO do CentOS: http://vault.centos.org/7.0.1406/isos/x86_64/ ;
-Paciência;
– Servidor navegando na WEB.

Após criar seu novo servidor virtual, e adicionar a ISO do CentOS para boot, vai aparecer a tela abaixo, selecione a opção Install CentOS 7

Ele carregara a tela para que você selecione o Idioma, selecione ou digite português e clique em continuar:


Na tela abaixo vamos configurar os itens: Data & Horário, Teclado e SISTEMA. Eles são subitens deste menu principal:

Clique em Data & Horario: Por padrão sempre vem marcado como Bahia, altere para sua região, no meu caso: São Paulo e clique no botão Finalizado no canto superior esquerdo:

No meu Principal, agora vamos em Teclado e adicione e teste sua configuração de teclado.
Após isso, clique em Finalizar novamente:

Novamente no meu Principal, agora vamos em SISTEMA / DESTINO da INSTALAÇÃO:
A instalação do CentOS nos faz “confirmar” o disco em que o sistema será instalado, ou seja, apenas clique no disco e tenha certeza que ele ficou marcado com o “check” como na img abaixo:

Feito isso, clique em Finalizar para voltar ao menu principal novamente, o mesmo devera estar assim, sem nada com sinal de atenção.
Clique em Iniciar Instalação no canto inferior direito e aguarde.

Durante o processo de instalação do CentOS, ficará carregada uma tela para você configurar a senha dousuário root: 


E outra opção para criar um usuário comum:

As boas práticas Linux recomendam ter um usuário comum para operar o sistema, nesta tela é possível adicionar um e conforme as opções que forem marcadas, este será adicionado nas configurações Sudoers que permitem um usuário comum atuar como root quando necessário mediante digitação de senha.

Ao finalizar a instalação, clique no canto inferior direito em “Encerrar configuração”.

Será encerrado algumas configurações do INIT e em seguida virá a opção para reinicializar , clique e aguarde o servidor fazer restart.

Será carregada a famosa “tela preta”, tela de login.
Faça Login como root e com a senha que você definiu durante a instalação:

#Ficaadica: Quando # é que aparece no Prompt, quer dizer que você esta logado como root
Quando $ é que aparece no Prompt, quer dizer que você esta logado como usuário comum e deverá usar sudo antes do comandos;
#yum install apache
ficará:
$sudo yum install apache

– Preparando o ambiente:
Primeiro verifique se você esta navegando na web, isso será importante, faça um teste de ping:

Para saber o IP digite: ip addr show (enter) 
Caso apareça as mesmas mensagens das imgs  acima, verifique suas configurações de rede para certificar que o servidor navegue na web…

Tudo configurado ok Ping e IP configurado:

 

Agora que a rede esta ok vamos instalar alguns pacotes que usaremos para criar nosso LAMP e outros que serão uteis para gerenciamento do servidor no dia a dia e também preparar para que tudo funcione.
Conceito:
CentOS usa o gerenciador de pacotes YUM – Yellow Dog Updater  que nos permite configurar repositórios e instalar mais facilmente os binários (pacotes “executaveis”)  e suas Libs (bibliotecas ou DLLs) de dependências porque ele faz isso quase meio que “automático”. – Papo para outr post 😉

Vou passar uma breve explanação do que é ou faz o pacote e em seguida o(s) comando(s) para instalar, siga a ordem descrita e não temas, tudo funcionará jovem gafanhoto!

-Primeiramente instale o repositório mais importante para quem usa distro CentOS o pacote epel Extra Packages for Enterprise Linux:

root@localhost ~]# yum install epel-release -y

 

É normal que seja um pouco demorado e você veja algumas mensagens sobre Repodata is over 2 weeks old e afins, acontece que é a primeira vez que você esta “usando” os repositórios, isso é normal e não preocupe-se…

Em seguida do Epel, vamos instalar o IUS que é um projeto para garantir pacotes RPM mais recentes.

[root@localhost ~]# yum install https://centos7.iuscommunity.org/ius-release.rpm -y

 

Vamos instalar o yum-utils que é uma coleção de utilitários e plugins do yum:

[root@localhost ~]# yum install yum-utils -y

Instale o WGET  que permite voce fazer download de pacotes à partir de seus links de na web:

[root@localhost ~]# yum install wget -y

Agora vamos instalar o VIM – um dos principais editores de texto no Linux:

root@localhost ~]# yum install vim -y

Obs.: Você pode usar o editor que desejar ou conhecer 😉

E por último, o grupo de Ferramentas de Desenvolvimento, que contém, entre outras coisas, os pacotes de compiladores que são muito importantes para instalação de Binários e afins no CentOS, a idéia é instalarmos tudo que precisamos uma única vez 😉

root@localhost ~]#yum group install development tools -y

Falta pouco!
Vamos desabilitar o SELinux.  Ele prove segurança no processos e serviços que estiverem rodando, mas para não interferir optei em desabilitar.  Se você quer seguir as boas práticas de segurança recomendo ler sobre na documentação do CentOS – SELinux

root@localhost ~]#vim /etc/selinux/config

Vai carregar algo assim:

Va na linha SELINUX=enforcing  digite disabled em seu lugar, deve ficar como na Img abaixo:

Salve a edição e reinicie o Linux.
Este é um dos poucos itens que necessita de restart no Linux 😉

Instalado o LAMP:
Agora sim finalmente vamos iniciar a instalação dos binários e as devidas configurações que formarão nosso LAMP server!

Banco de Dados: MariaDB: fork de MySQL – Acho que todos já sabem a historia do MySQL e como surgiu o MariaDB, caso não clique aqui e beba do conhecimento Padawan, depois rode o comando abaixo para instalar o MariaDB:


[root@localhost ~]# yum install mariadb-server mariadb -y

Em seguida de o comando para iniciar o serviço:


[root@localhost ~]# systemctl start mariadb.service

Agora vamos garantir que este serviço inicie junto com o servidor em caso de restart:

[root@localhost ~]# systemctl enable mariadb.service

Devera aparecer algo similar a img abaixo:



#Ficaadica: O MariaDB por padrão possui um script que vai ajudar a configurar algumas opções relacionadas à boa prática de segurança, ele é rápido e no formato de quiz – Creio que este vídeo poderá te ajudar 😉
Rode o comando e siga os passos:

[root@localhost ~]# mysql_secure_installation

 

Web Server: Apache – Aqui poderia ser seu “sabor” favorito de web server, Nginx, Lighttpd etc… em nosso caso será o Apache, rode o comando abaixo e aguarde:

root@localhost ~]#yum install httpd -y

Agora vamos iniciar o serviço e habilitar para que o mesmo seja carregado em caso de Restart do servidor com os comandos:
Iniciar serviço:

Habilitar no início do servidor:

root@localhost ~]# systemctl enable httpd.service

Agora vamos habilitar as configurações do Firewall do Seu servidor Linux para que ele permita o trafego nas portas http e https. Rode os comandos:

root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http 
root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=https
root@localhost ~]# firewall-cmd --reload

Se quiser confirmar se o serviço esta realmente ativo:

root@localhost ~]# systemctl status httpd

Deverá aparecer isso:

Agora vá no browser e coloque como endereço do servidor e deverá carregar a pagina de teste do Apache:
http://192.168.0.200


PHP5
: Página oficial: aqui – Instale com o comando abaixo e aguarde:

root@localhost ~]# yum install php -y

Reinicie o serviço do Apache:

root@localhost ~]# systemctl restart httpd.service

Agora vamos criar uma pequena pagina de teste do PHP que além validar se esta tudo ok vai lhe informar detalhes da versão instalada.
Em /var/www/html, crie um arquivo chamado info.php usando Vim ou em seu editor preferido:

root@localhost ~]# vim /var/www/html/info.php

e adicione as informações:

<?php
phpinfo();
?>

Agora vá em seu browser e chame a pagina usando o IP do seu novo Servidor LAMP seguido de /info.php:
http://192.168.0.200/info.php:

Vamos instalar também um módulo do php que permite que MariaDB (MySQL)  suporte o PHP com o comando :

[root@localhost ~]# yum install php-mysql

#Ficaadica: No caso do PHP você poderá instalar o módulo que você precisar para seus testes/Apps;  Para ver quais estão disponiveis, use o search do YUM:

[root@localhost ~]# yum search php

Ainda pode usar o |grep nome do que deseja para filtrar, exemplo: php-mysql:

[root@localhost ~]# yum search php |grep mysql

O retorno será algo assim:

Python:  Ele não poderia ficar de fora  😉 Docs e etcs AQUI
De o comando abaixo para instalar o binário e suas dependências:

[root@localhost ~]# yum install python36u -y

Obs.: Você pode ter varias versões de Python no mesmo sistema. A padrão no CentOS é 2.7.5. Acabamos de instalar ultima stable da 3.6, portanto para que você  rode com a versão nova, deverá preceder o comando pyhton3.6.
Exemplo para ver a versão:
Padrão:

[root@localhost ~]# python -V


Nova:

[root@localhost ~]# python3.6 -V


Há também a instalação através da compilação – recomendado se você já possui conhecimento no Linux:
No Linux, crie uma pasta chamada Python em /tmp e acesse ela:

[root@localhost ~]# mkdir -p /tmp/Python

[root@localhost ~]# cd /tmp/Python

[root@localhost Python]# 

Será algo assim:

Agora vamos fazer download do pacote com wget:

[root@localhost Python]#wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz

Terminando, terá um arquivo compactado (.tar.xz) na pasta, vamos descompacta-lo:
-Abaixo os comandos que devem rodar em sequência.
-A partir da linha 5 (./configure) relaxe e aguarde porque demora 😉

[root@localhost Python]# tar xJfv Python-3.6.0.tar.xz

[root@localhost Python]# cd Python-3.6.0

[root@localhost Python-3.6.0]# ./configure

[root@localhost Python-3.6.0]# make

[root@localhost Python-3.6.0]# make install

Terminado o Python.

PERL: Site Oficial– A instalação padrão do CentOS 7 já possui um Perl instalado.
Rode os comandos abaixo para ver a versão e local de instalação:

[root@localhost ~]# perl -V

[root@localhost ~]# which perl

Caso não tenha instalado, rode:

[root@localhost ~]# yum install perl -y

Pronto!
Agora você tem um servidor LAMP para seus LABs, testes e etc 😉
Se houver alguma dúvida, só perguntar.
Tem alguma sugestão, fale 😉

Boa semana e até a próxima \o/ .

Referências:
Perl: https://www.perl.org/
Python: https://www.python.org/
Apache: http://httpd.apache.org/
PHP: http://www.php.net/
MariaDB: https://mariadb.com/
MySQL: http://www.mysql.com/
CentOS: http://www.centos.org/

 

Compartilhe.

Sobre o autor

Com 18 anos de experiência em TI sendo 8 dedicados em Gerenciamento de Infraestrutura de missão crítica, Projetos e Programas PMBOK. Possui certificações CCNA, MCSA, MCSE+S, VMWare VTSP e VSP, também entusiasta do open source sendo os últimos 2 anos dedicados ao GNU/Linux e suas infinitas possibilidades... Atualmente criando automação para monitoramento e tratamento de syslog em ambientes Dev e se divertindo muito com Docker. Rato de livros, produtor de e-music, gamer, modelista e motoqueiro selvagem nas horas vagas, um curioso nato que gosta de compartilhar conhecimento para conhecer mais. "Sabios sejam os pessimistas, pois eles fizeram backup"