Categories
Banco de dados Debian Linux PHP Programação Tutoriais

Como instalar um servidor web LAMP no Debian 9

Em texto mais atual, explico como instalar cada item de um servidor web LAMP (Linux, Apache, MariaDB e PHP) no Debian 9 Stretch.
Com isso, você terá um servidor pronto para receber o WordPress, o Piwigo etc.

Um servidor web é um ponto de início básico para poder instalar e usar uma série de outros softwares e serviços, como galeria de fotos, blog, fórum ou apenas um simples site HTML.
O LAMP é, basicamente, um web server Linux, que inclui o Apache, um banco de dados e suporte à linguagem de programação PHP.

O assunto já rendeu várias tags LAMP e posts diversos, neste mesmo site.
No decorrer do texto, sugiro clicar nos links, sempre que tiver alguma dúvida e queira se aprofundar um pouco mais em um ponto específico.
O conceito é bastante flexível, como podemos ver a seguir

O que é um servidor web LAMP

Como conceito, o LAMP inclui estas 4 “peças”:

  • Você pode usar uma das diversas opções Linux disponíveis. Neste texto, estamos nos baseando no Debian 9 Stretch — que é uma versão LTS do sistema operacional, ou seja, vai ter suporte prolongado até 2022, após quase 2 anos de desenvolvimento — uma ótima opção, portanto, a ser usada em um servidor. A gama de sistemas operacionais, contudo, inclui o FreeBSD e até mesmo o Windows. Neste último caso, o servidor leva o nome de WIMP (Windows, IIS, MySQL e PHP) e, como você pode ver no link para o Urban Dictionary, o termo costuma ter sentido pejorativo.
    Como alternativas, já escrevi sobre como instalar o LAMP no Ubuntu e no OpenSUSE.
  • O servidor web, de que falamos aqui, é o Apache. Alternativas comuns são o Nginx e o Lighttpd.
  • O banco de dados MySQL foi a escolha perfeita deste quarteto, por muito tempo. Hoje, há um processo de migração para o MariaDB em curso — e o Debian está seguindo esta tendência.
  • Por último, temos a escolha da linguagem de programação, até onde se estende a flexibilidade do conceito.
    As escolhas mais comuns são, pela ordem, PHP, Python e Perl — que coincidentemente começam com a letra ‘P’.
    Entretanto, se quiser rodar apps web importantes, como o WordPress, e-commerce ou Piwigo, você vai precisar do PHP.
    Servidores Linux, contudo, já costumam incluir suporte ao Perl e ao Python.
    Se você tem interesse no uso de alguma destas duas opções, verifique se estão presentes no servidor com os seguintes comandos:

    
    perl --version
    
    This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linux-gnu-thread-multi
    (with 67 registered patches, see perl -V for more detail)
    
    Copyright 1987-2017, Larry Wall
    
    ...
    
    
    python --version
    
    Python 3.5.3
    

    Tenha em conta que o Python pode ter 2 versões independentes instaladas, em muitas distribuições GNU/Linux.

Como instalar o servidor web no Debian

O Debian tem uma ferramenta que automatiza a instalação de meta pacotes para o seu sistema.
Sugiro ler sobre o tasksel, mais tarde, para ver o que mais o utilitário pode fazer por você.
Para ter o Apache instalado e rodando, em poucos minutos, rode o seguinte comando:


sudo tasksel install web-server

debian tasksel web-server
Debian tasksel web-server install
Para verificar se o seu web server está funcionando direito, execute o seguinte:


sudo service apache2 status

[sudo] senha para justincase: 
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; 
   Active: active (running) since Sun 2017-07-16 12:26:00 -03; 15
 Main PID: 6524 (apache2)
    Tasks: 55 (limit: 4915)
   CGroup: /system.slice/apache2.service
           ├─6524 /usr/sbin/apache2 -k start
           ├─6526 /usr/sbin/apache2 -k start
           └─6527 /usr/sbin/apache2 -k start

jul 16 12:26:00 ultra-5 systemd[1]: Starting The Apache HTTP Serv
jul 16 12:26:00 ultra-5 apachectl[6513]: AH00558: apache2: Could 
jul 16 12:26:00 ultra-5 systemd[1]: Started The Apache HTTP Serve
lines 1-13/13 (END)

Procure por “active (running)“.
Debian test web-server Apache
Você também pode testar o Apache invocando o daemon diretamente (ops!), da seguinte forma:


sudo apachectl -v

Server version: Apache/2.4.25 (Debian)
Server built:   2017-06-20T19:29:11

Outro método de verificar se tudo está OK, é acessar o servidor via web: abra o endereço http://localhost em seu navegador.

Até agora, já temos o Apache rodando no sistema.
Falta o banco de dados e o PHP…

Como instalar o MariaDB no Debian

O banco de dados pode ser instalado via apt:


sudo apt install mariadb-server mariadb-client 

Ainda existe a necessidade de instalar uma pequena biblioteca para ajudar na integração entre o PHP e o banco de dados, que iremos ver no próximo tópico.
Por enquanto, faremos uma rápida checagem:


mariadb --version

mariadb  Ver 15.1 Distrib 10.1.23-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

ou pode usar o service, como fez, anteriormente, com o Apache:


sudo service mariadb status

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-07-16 15:17:52 -03; 15min ago
 Main PID: 9974 (mysqld)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           └─9974 /usr/sbin/mysqld

jul 16 15:17:50 ultra-5 systemd[1]: Starting MariaDB database server...
jul 16 15:17:51 ultra-5 mysqld[9974]: 2017-07-16 15:17:51 139788240409152 [Note] /usr/sbin/mysqld (mysqld 10.1.23-MariaDB-9+deb9u1) starting as proces
jul 16 15:17:52 ultra-5 systemd[1]: Started MariaDB database server.

Se o serviço não estiver active, ative-o assim:


systemctl start {apache2,mariadb}

Como instalar o PHP no Debian

Alguns tutoriais recomendam a instalação do PHP primeiro. Isto pouparia o tempo de reiniciar o Apache. Fora isso, o resultado é o mesmo.
O Debian 9 já usa, não somente, o MariaDB como padrão, como o PHP 7.0 em seus repositórios.
Tradicionalmente, a instalação é feita assim:


sudo apt install php php-mysqli apache2-mod-php7.0

Instale o phpmyadmin

Por fim, o phpmyadmin cumpre duas funções neste processo, como um todo.
É raro realizar operações diretamente no banco de dados, se você pretende usar aplicativos como o WordPress — uma vez que há plugins para isso.
Mas nem todo mundo gosta de confiar tarefas de manutenção do banco de dados a ferramentas de terceiros.
Além disto, os plugins acrescentam “peso” ao seu site e o “manual das boas práticas” manda não abusar do recurso.

O phpmyadmin, permite realizar tarefas administrativas nos bancos de dados MySQL/MariaDB.
A ferramenta representa um meio-termo entre a simplicidade dos plugins e a complexidade da linha de comando (CLI).

A segunda função do aplicativo é ajudar a verificar se toda a instalação, feita até aqui, ocorreu bem.


sudo apt install phpmyadmin


Isto feito, não se esqueça de reiniciar o serviço do Apache:


sudo systemctl restart apache2

O fato é que se ficou faltando alguma coisa, nos passos anteriores, a instalação do phpmyadmin irá cuidar de garantir que todas as dependências estejam instaladas e configuradas.
phpmyadmin frontscreen
Basta abrir a página http://localhost/phpmyadmin, para ver se tudo está bem ou não.

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

9 replies on “Como instalar um servidor web LAMP no Debian 9”

Oi Elias, tive esse problema no phpmyadmin:

#1698 – Access denied for user ‘root’@’localhost’

mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’

passou por isso também ?

Gente tem a incluir uma linha no arquivo apache2.conf
da um locate apache2.conf
abre com o nano ou vi e inclui essa linha no final do arquivo
e salva
Include /etc/phpmyadmin/apache.conf

caso nao consiga fazer login com o usário phpmyadmin usa essa comando e reconfigura.

dpkg-reconfigure -plow phpmyadmin

obs: o comando locate parece ter sido erro de grafia.. pra mim funcionou com o comando ‘locale apache2.conf’

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.