Passo-a-passo como criar um servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin “LAMP” no Debian 9 Stretch
Distribuição utilizada: Debian 9 Stretch / Instalação Limpa
Com o lançamento do Debian 9 alguns pacotes foram substituído como:
PHP5 -> PHP7.0
Mysql -> MariaDB (MariaDB é um banco de dados que surgiu como fork do MySQL, criado pelo próprio fundador do projeto após sua aquisição pela Oracle.)
Vamos a instalação
1 2 3 |
# apt update # apt upgrade # apt install apache2 libapache2-mod-php7.0 php7.0 mariadb-client mariadb-server phpmyadmin |
Instale todos os pacotes dependentes. (S)
OBS: Se você instalar o pacote mysql-server ele vai estar instalando o mariadb-client mariadb-server.
Na próxima tela selecione a opção apache2.
Configurando o banco do phpmyadmin:
Responda Sim.
Defina uma senha para a base do phpmyadmin:
Repita a senha:
Instalação concluída!
Acesse http://ip-do-seu-servidor/
Não sentiu que faltou algo nessa instalação?
Sim! No MySQL você definia uma senha para para o usuário root do mysql na instalação, com o MariaDB isso não acontece pois ele vem sem senha de root! Como usuário root não tem senha você não vai conseguir logar com ele no PHPMyAdmin.
Para alterar a senha do usuário root do MariaDB faça:
1 |
# mariadb -u root |
1 2 3 4 5 |
USE mysql; UPDATE user SET password=PASSWORD('SUA-SENHA') WHERE User='root'; UPDATE user SET plugin="mysql_native_password"; FLUSH PRIVILEGES; quit; |
Mas não se assuste! MariaDB é praticamente o seu velho MySQL. Para saber mais acesse: MariaDB versus MySQL – Compatibilidade. Veja pelo lado bom, não permitindo login com root temos mais segurança!
O que fazer então? Simples crie uma base de dados e um usuário para acessa-la. Eu sempre recomendei usar para cada aplicação um usuário com a sua base, assim numa falha você não deixa exposto o que não deveria!
Acesse via linha de comando nosso o mariadb (o comando mysql -p funciona também)
1 |
# mariadb -p |
Por padrão vem sem senha.
1 2 3 4 |
CREATE DATABASE minhabase; GRANT ALL PRIVILEGES ON minhabase.* TO 'meuusuario'@'localhost' IDENTIFIED BY 'minhasenha'; FLUSH PRIVILEGES; quit; |
Agora pode acessar seu PHPMyAdmin com seu seu usuário e senha. http://ip-do-seu-servidor/phpmyadmin
Agora vamos habilitar o mod_rewrite do Apache que é muito utilizado. Este é um módulo do Apache que utiliza um mecanismo baseado em regras de reescrita.
Diretório de configurações do Apache fica em /etc/apache2/
Vamos ao comando para habilita-lo:
1 |
# a2enmod rewrite |
A página que vimos ao abri o ip do nosso servidor no navegador fica no diretório /var/www/html, isso está sendo informado no arquivo default do apache que fica em /etc/apache2/sites-enabled/000-default.conf, e para que nosso mod_rewrite funcione corretamente será necessário adicionar alguma linhas.
Edite o arquivo /etc/apache2/sites-enabled/000-default.conf (vou usar o editor vim, que não vem instalado por padrão no sistema, mas se você pode usar qualquer edito ex o nano)
1 |
# vim /etc/apache2/sites-enabled/000-default.conf |
Adicione abaixo de “DocumentRoot /var/www/html“ o seguinte:
1 2 3 4 |
<Directory /var/www/html/> Options FollowSymLinks AllowOverride All </Directory> |
Por segurança recomendo remover a assinatura do servidor, evitando os “espertinhos”
1 2 |
# sed -i 's/ServerTokens OS/ServerTokens Prod/' /etc/apache2/conf-available/security.conf # sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf-available/security.conf |
Agora precisamos restartar o apache para que tenha efeito nossas alterações.
1 |
# /etc/init.d/apache2 restart |
Ou
1 |
# systemctl restart apache2 |
Parabéns seu servidor está “Pronto”!
Muito obrigado, deu tudo certo.
Olá amigo, o phpmyadmin não acessava . Pelo seu tutorial funcionou grato
Parabéns! O tutorial está muito bom, funcionou perfeitamente no meu pc 🙂
Muito bom o artigo. Parabéns!
Obrigado me ajudou muito
Excelente … fiz tudo de acordo ….
Funcionou que é uma beleza,,,
Parabens ……
meu caso é um seguinte: uso o debian9 ja tinha o mysql intalado. porém, eu instalalei o php7(Linux debianofalexoab 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64) e logo apos o phpadmim porem depois de todas as etapas da esse erro :
Um erro ocorreu durante a instalação do banco de dados: │
│ │
│ mysql said: ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL │
│ server version for the right syntax to use near ‘IDENTIFIED BY ‘123” at line 1 │
│ │
│ As suas opções são: │
│ * cancelar – Faz a operação falhar; você terá que rebaixar a versão, │
│ reinstalar, reconfigurar este pacote, ou então intervir manualmente │
│ para continuar a usá-lo. Isso também geralmente impactará na │
│ capacidade de instalar outros pacotes até que a falha na instalação │
│ seja resolvida. │
│ * tentar novamente – Repete todas as questões sobre configuração │
│ (incluindo aquelas que você pode ter perdido devido à configuração │
│ de prioridade do debconf) e faz outra tentativa de executar a │
│ operação. │
│ * tentar novamente (pular as questões) – Imediatamente tenta executar │
│ a operação novamente, pulando todas as questões. Isso normalmente é │
│ útil somente caso você tenha resolvido o problema subjacente desde │
│ o momento em que o erro ocorreu. │
│ * ignorar – Continua a operação ignorando os erros do dbconfig-common. │
│ Isso geralmente deixará este pacote sem um banco de dados funcional.
mysql diferente de mariadb… ficou meio vago sua explicação.
Obrigado por sua iniciativa, resolveu meu problema com o VirtualHost de um sistema, o qual eu não conseguia passar da página de login.
Grato!
Parabéns pelo tutorial Rudimar! Continue com esse excelente trabalho, ajuda muito quem ainda é iniciante no mundo linux e na implementação destas grandes ferramentas.
Será que funciona (seguindo os mesmos passos) para Ubuntu ou Fedora?
Ubuntu que é baseado em Debian quem sabe… mas o repositório do ubuntu normalmente usa qlqr M* instável. Não recomendo ubuntu para servidor!
Já o fedora os é uma distribuição totalmente diferente que é baseada no RedHat.
Muito bom, obrigadão ajudou muito, sem problemas!
estou usando o google pra testar uma aplicação, instalei consigo abrir normalmente o servidor através do ip…. mas não consigo acessar o phpmyadmin.
ao digitar http://ip-do-servidor/ abre a página do apache.
ao acessar http://ip-do-servidor/phpmyadmin/ Not Found….
consegue dar uma luz com essas poucas informações ?
Verifica se o phpmyadmin foi instalado corretamente. Veja se o arquivo /etc/apache2/conf-enabled/phpmyadmin.conf existe. e se em /etc/phpmyadmin exite alguma coisa.
Bom dia Rudimar, excelente tutorial, porém gostaria de saber se através deste servidor será possível outras pessoas acessarem via “http://meu ip”. Grato desde já.
Sim! Se você tiver um ip válido nele, ou então fazer um redirecionamento de porta para ele. Você pode configurar no apache dominós virtuais, onde vc pode acessa via nome http://site1.meusite.com.br, http://site2.meusite.com.br etc…. Em breve vou criar um tutorial falando como configurar isso no apache.
Boa noite. Este tutorial para acessar por meio de domínio já criastes Rudimar?. Em caso positivo, por gentileza, envie-nos o link. Caso negativo, crie-o que será um material excelente.
É algo que pretendo escrever “Configurando domínios virtuais no Apache2”, mas ainda não fiz.
Perfeita !!! Outros tutoriais já falharam redondamente . Obrigado.
No meu não consigo acessar o phpmyadmin, não funcionou pode me ajudar?? fiz igualzinho o tutorial explica
Refiz aqui deu 100%.
Amigao muito obrigado, seu post me salvou.
Mas achei estranho que nao veio as telas pedindo senhas do mysql.
sera que fiz algo errado?
Acho q vc não leu todo o tutorial!! Explico isso lá, inclusive como por senha…
Será que no apt-get você esqueceu de colocar o que está na linha de baixo phpmyadmin
Se não colocou executa o apt-get install phpmyadmin
Att.
Eduardo
Ele esta lá! Alguns monitores a resolução é menor e pode ter ficado numa segunda linha e ter passado despercebido.
Na minha instalação, não está encontrando o phpmyadmin ( O que posso fazer para corrigir ? )
root@srvmsp073:/# apt install apache2 libapache2-mod-php7.0 php7.0 mariadb-client mariadb-server phpmyadmin
Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
E: Impossível encontrar o pacote phpmyadmin
Você deve estar usando outra distribuição ou versão errada do Debian, faça o tutorial do zero, formate sua máquina aparentemente vc quebrou seu repositório.
Muito obrigado,
deu tudo certo.
Quase morro de procurar um tutorial que tivesse exito e tive no seu.
Meu parabens pelo belo material.
Muito grato.
Espero ver mais e mais material como esse, bem pratico e bem detalhado .
Obrigado!
Sucesso!
Deu certinho, muito bem explicado
agora como eu faço pra hospedar site em PHP? tem como enviar por ftp?
Uma maneira facil é usal qlqr cliente de SFTP (vc loga com usuario SSH)
Recomendo o Filezilla
Agora se vc tem intuito de montar um servidor para hospedar vários domínios, seria melhor procurar algum sistema, como vestacp, i-mscp…
Olá pessoal, entendi certinho, tutorial muito bom, porém naquelas referências a “ip-do-seu-servidor” eu não entendi muito bem, se alguém puder me explicar melhor, onde acho ou o configuro agradeço desde já! obrigado
Não configura, isso é o IP que esta no sue servidor, vc vai acessar via navegado. Ex: “http://192.168.0.200”
Ou “localhost”
Se for a sua própria maquina sim.
Ótimo tutorial, me ajudou bastante, Parabéns e muito obrigado!
Rudimar, muito obrigado cara!!
Todas, eu disse TODAS, as informações e dicas que você expõe, sempre me ajudaram.
Posso te pedir um favor? Não desiste, você é demais, cara!
Um forte abraço!!!
Parabéns pelo tutorial, foi o mais claro e conciso que consegui encontrar.
Excelente tutorial, Rafael! Informações e procedimentos claros e objetivos. Parabéns e obrigado!!
Quem é Rafael? kkkk
Instalei o raspbian 9 no meu raspberry pi 3 e tentei instalar o “LAMP”. Não acessava o PHPMyAdmin por causa da senha de root. Depois de muito procurar só encontrei aqui a explicação, por sinal muito didática e organizada!
Parabéns pelo site!
Cara, muito bom. Perfeito! muito obrigado. Post completo, simples e objetivo. Executei o passo a passo com muita tranquilidade.
Ótimo Tutorial, bem explicado e muito fácil de ser executado. MUITO OBRIGADO!