Como instalar um servidor web no Raspberry Pi (Apache + PHP + MySQL)
ⓘ Este artigo pode ter sido parcial ou totalmente traduzido usando ferramentas automáticas. Pedimos desculpa por quaisquer erros que isto possa causar.
Depois de criar o seu cartão SD, e depois de iniciar o seu Raspberry Pi pela primeira vez, há fortes probabilidades de querer usar como servidor web.
Porquê um Raspberry Pi como servidor web ?
Mas porque usar um Raspberry como servidor web, em vez de usar fornecedores de serviços especializados em alojamento web?
Primeiro, de um ponto de vista económico, deve saber que os serviços de alojamento web não são gratuitos e que tem de pagar todos os meses/ano. Ao contrário do Raspberry que só precisa de uma conexão.
Além disso, ao escolher Raspberry, você tem a possibilidade de modificar os seus serviços como quiser (exemplos: o tamanho do disco, o alojamento de Base de Dados, etc.), o que geralmente não é o caso dos alojamentos especializados , que muitas vezes vendem alojamento partilhado com baixa capacidade de configuração.
No entanto, para suportar mais utilizadores, deverá usar um Raspberry Pi 3 (o Pi 3 pode ser encontrado aqui), o Raspberry Pi com 1 GB de RAM, em vez do Raspberry tipo B + (512 MB de RAM)
A questão que agora se coloca é, como fazer um servidor web no Raspeberry Pi ?Installation du serveur Apache avec Raspbian
O que é o Apache ?
Primeiro, vamos instalar o Apache, que é o servidor web como tal.
Quando falamos de um servidor web, muitas vezes pensamos na máquina, mas este termo também se refere ao software que permite à máquina analisar os pedidos dos usuários (em formato http), e retornar o arquivo correspondente ao pedido (ou um erro se o arquivo não for encontrado, ou a consulta formulada incorretamente).
Como parte do Apache, é o software de que falamos.
No momento, o Apache é o servidor web mais utilizado, com cerca de 60% de quota de mercado. O Apache tem sua própria licença, utilizada por muitos outros projetos. Além disso, o uso massivo do Apache (que se tornou o padrão para servidores web), juntamente com sua alta popularidade, levou a uma enorme abundância de documentação, cursos e outros livros que lidam com seu uso, e sua segurança, como este livro.
Se for para o Raspberry Pi e Raspbian, ou para uma máquina de uso mais geral, o Apache é, portanto, uma escolha segura, e as habilidades que você poderá adquirir sobre o assunto serão sempre úteis.
Instalação do Apache
Antes de instalar o servidor, certifique-se de que temos uma máquina atualizada. Para fazer isso devemos ter direitos de administrador, seja por causa do comando sudo.
sudo apt updatesudo apt upgradesudo apt update
Após o Raspberry Pi estar atualizado, instalaremos o servidor Apache.
sudo apt install apache2
A propósito, vamos aproveitar para dar direitos ao arquivo apache que você pode facilmente gerenciar seus sites. Para fazer isso, execute os seguintes comandos:
sudo chown -R pi:www-data /var/www/html/sudo chmod -R 770 /var/www/html/
Cheque se o Apache está funcionando
Após a instalação concluída, podemos testar se o Apache está funcionando corretamente indo para o endereço Raspberry.
Para fazer isso, é necessário tentar acessar o Raspberry a partir da porta 80 (esta porta não sendo aberta do lado de fora, ele terá que fazer desde o próprio Raspberry). Não se preocupe, é muito fácil. Basta abrir o navegador da Raspberry, e ir para “http://127.0.0.1”. Você deve então obter uma página com uma mensagem como “Funciona! “And plenty of other text.
If you do not already have a GUI on your Raspbian, or you use SSH to connect to your Raspberry, you can use the following command:
wget -O check_apache.html http://127.0.0.1
This command will save the HTML code of the page in the file “check_apache”.html” no diretório atual.
Então você só tem que ler o arquivo com o comando
cat ./check_apache.html
Se você vir marcado em um local no código “It works! ” é que o Apache está funcionando.
O Apache usa o diretório “/var/wwww/html” como a raiz do seu site. Isto significa que quando você chama seu Raspberry na porta 80 (http), o Apache procura o arquivo em “/var/wwww/html”.
Por exemplo, se você chamar o endereço “http://127.0.0.1/example”, o Apache procurará o arquivo “exemplo” no diretório “/var/wwww/html”.
Para adicionar novos arquivos, sites, etc.., você precisará adicioná-los a este diretório.
Agora você pode usar seu Raspberry para fazer um site em HTML, CSS e JavaScript, internamente.
No entanto, você pode querer permitir interações rápidas entre o site e o usuário. Por exemplo, para permitir que o usuário se registre, etc. Para isso, você vai precisar do PHP.
PHP instalação no seu Raspberry Pi
O que é o PHP ?
Primeiro de tudo, você deve saber que o PHP é uma linguagem interpretada. E como no caso dos servidores, a sigla PHP pode ter vários significados. Na verdade, quando falamos de PHP, podemos falar da linguagem ou do intérprete.
Aqui, quando falamos de instalar o PHP, significa que vamos instalar o intérprete, a fim de usar a linguagem.
PHP (a linguagem desta vez) é usada principalmente para fazer um site dinâmico, ou seja, o usuário envia informações para o servidor que retorna os resultados modificados de acordo com essas informações. Por outro lado, um site estático não se adapta às informações fornecidas por um usuário. Ele é salvo como um arquivo de uma vez por todas, e sempre entregará o mesmo conteúdo.
PHP é gratuito, e mantido pela Fundação PHP, assim como Zend Enterprise, e várias outras empresas (deve-se notar que Zend é também o autor do famoso framework Zend PHP, amplamente utilizado e reconhecido no mundo dos “negócios”).
É uma das linguagens de programação mais utilizadas, e é mesmo a mais utilizada para programação web, com cerca de 79% de quota de mercado.
Conquistar, todas as habilidades que você pode adquirir, na linguagem, ou na instalação e configuração do intérprete, serão sempre úteis. Então nós só podemos aconselhá-lo a aprender o PHP, que é realmente uma linguagem maravilhosa e muitas vezes subestimada.
Como instalar o PHP
Utilizaremos novamente o administrador para instalar o PHP com a linha de comando.
sudo apt install php php-mbstring
Controle se o PHP está funcionando
Para saber se o PHP está funcionando corretamente, não é muito complicado, e o método é bem parecido com o usado para o Apache.
Primeiro você irá apagar o arquivo “index.html” no diretório “/var/wwww/html”.
sudo rm /var/www/html/index.html
Então crie um arquivo “index.php” neste diretório, com esta linha de comando
echo "<?php phpinfo ();?>" > /var/www/html/index.php
De lá, a operação é a mesma que para a verificação do Apache. Você tenta acessar sua página, e deve ter um resultado próximo a esta imagem (se você não tiver uma interface, use o mesmo método de antes, e procure pelas palavras “Versão PHP”).
Tabela gerada pelo comando phpinfo em um Raspberry.
Uma base de dados MySQL para seu servidor
Um SGBD o que é isso ? Porquê MySQL ?
Agora que configuramos PHP, você provavelmente vai querer armazenar informações para uso em seus sites. Para este propósito, as bases de dados são utilizadas com mais frequência.
Configuraremos um SGBD (Sistema de Gestão de Bases de Dados), nomeadamente MySQL.
MySQL é um SGBD gratuito, poderoso, massivamente utilizado (cerca de 56% de quota de mercado do SGBD gratuito). Aqui novamente, o MySQL é tão essencial para o desenvolvimento, qualquer que seja a linguagem, que você deve absolutamente aprender e dominá-lo, com este livro por exemplo.
Como instalar o MySQL
Para fazer isso, vamos instalar o mariadb-server e o php-mysql (que servirá como uma ligação entre php e mysql)
sudo apt install mariadb-server php-mysql
Verifiquem se o MySQL está a funcionar correctamente
Para verificar o funcionamento do MySQL, desta vez vamos utilizar apenas a linha de comandos. Para fazer isso, vamos simplesmente conectar através do comando:
sudo mysql --user=root
Não vamos apagar o usuário root padrão do mysql e criar um novo usuário root do mysql, porque o usuário root padrão só pode ser usado com a conta root do Linux, e portanto não está disponível para o webserver e scripts php.
Para fazer isso, uma vez conectado ao MySQL, simplesmente execute estes comandos (substitua password
pela senha desejada) :
DROP USER 'root'@'localhost';CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Então você agora tem um servidor web, conectado ao PHP e MySQL. É tudo o que é preciso.
(Nas suas conexões nexts, você será capaz de conectar ao mysql sem usar o sudo, com o comando mysql --user=root --password=yourmysqlpassword
).
Adicionar PHPMyAdmin
A instalação do PHPMyAdmin não é absolutamente desnecessária. Nesta instalação, nós não vamos tomar cuidado com nenhuma configuração especial de segurança !
A instalação do PHPMyAdmin é bem rápida e fácil, nós simplesmente temos que usar o gerenciador de pacotes com este comando :
sudo apt install phpmyadmin
PHPMyAdmin programa de instalação irá lhe fazer poucas perguntas. Sobre a parte dbconfig-common
, escolha não usá-la (já que já configuramos nossa base de dados). Sobre o servidor para configurar o PHPMyAdmin para, escolha Apache. E a senha root é a que você definiu para o MySQL.
Você também deve habilitar a extensão mysqli usando o comando acima :
sudo phpenmod mysqlisudo /etc/init.d/apache2 restart
Cheque se o PHPMyAdmin está funcionando corretamente
Para verificar se o PHPMyAdmin funciona, você simplesmente tentará acessá-lo, usando o endereço do seu Raspberry seguido de /phpmyadmin. Por exemplo, localmente ele será http://127.0.0.1/phpmyadmin
Se você ainda receber um erro, pode ser porque o PHPMyAdmin mudou para outro diretório. Neste caso, tente o comando
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
Agora, podemos acessar o PHPMyAdmin a partir do navegador do Raspberry Pi, com a url : http://127.0.0.1/phpmyadmin
Fazer um servidor acessível a partir da web
Seu servidor web está pronto. No entanto, você provavelmente não pode acessá-lo a partir da Internet. De facto, seria necessário para que o seu modem redireccione os pedidos para o seu Raspberry, as boas portas.
Para colocar estes redireccionamentos no lugar, e mesmo obter uma URL, deve procurar o DynDNS e o reencaminhamento de portas !