Você decide que serviços podemos ativar para análise, personalização e conteúdos externos.
Utilizamos cookies e tecnologias semelhantes no nosso site para personalizar conteúdos, integrar conteúdos externos e compreender melhor a uso de cada área.
Cookies necessários
Estas entradas asseguram funções essenciais, como segurança, estabilidade e processamento de formulários.
Seções opcionais
AnálisesMarketingPersonalizaçãoMídia externa
O tratamento de dados pode basear-se no seu consentimento ou em interesses legítimos. Nas configurações de cookies, pode rejeitar ou permitir cada categoria opcional.
Alguns serviços processam dados pessoais em outros países. Ao dar seu consentimento, você também aceita essa transferência. Encontre mais informações em nossa Política de Privacidade.
Pode voltar a abrir e ajustar sua seleção a qualquer momento. · 1.0.2
Como configurar uma stack LAMP em um servidor Linux e executar aplicações PHP clássicas
Descubra como configurar uma stack LAMP em um VPS Linux para hospedar sites PHP dinâmicos com eficiência → Saiba mais
10 de novembro de 20267 min de leitura0 visualizações0 útil
Introdução
A stack LAMP é uma combinação popular de softwares de código aberto que são configurados em conjunto para facilitar a hospedagem de sites dinâmicos, com foco especial em sites e aplicativos PHP. O acrônimo significa: Linux como sistema operacional, Apache como servidor web, MySQL como banco de dados e, por fim, PHP para o processamento. Neste guia, mostraremos como configurar uma stack LAMP em um VPS Linux, com explicações detalhadas passo a passo e um exemplo de site de lista de tarefas.
FAQ
Perguntas frequentes
Linux como sistema operacional, Apache como servidor web, MySQL como banco de dados e PHP para processamento: uma combinação popular para hospedar sites PHP dinâmicos.
O LAMP usa o Apache como servidor web, enquanto o LEMP usa o Nginx (Engine X). Os outros componentes (Linux, MySQL e PHP) são os mesmos.
Execute sudo apt install apache2. Depois, certifique-se de que a porta 80 (HTTP) esteja liberada no firewall.
Ubuntu. Os comandos são idênticos no Debian e semelhantes em outras distribuições, mas a sintaxe pode variar um pouco.
Feedback
Este artigo foi útil?
Sua opinião nos ajuda a definir prioridades e a melhorar os conteúdos.
0 de 0 As avaliações consideraram este artigo útil.
Ajuda personalizada
As instruções não são suficientes?
A nossa equipe de suporte da ZAP conhece seu produto — descreva brevemente seu problema e ajudaremos pessoalmente.
Navegação
VPS
Preparação
Primeiro, conecte-se ao seu servidor por SSH. Se você não sabe como fazer isso, confira nosso guia de Primeiro acesso (SSH).
Neste guia, usaremos o Ubuntu como distribuição Linux. Os comandos são idênticos no Debian e semelhantes em outras distribuições, mas a sintaxe pode variar um pouco. Certifique-se de que um sistema operacional esteja instalado e de que você esteja conectado por SSH.
Como sempre, antes da instalação, atualize todos os pacotes com o seguinte comando:
A instalação pode ser dividida nos principais componentes da stack LAMP: primeiro, o servidor web Apache; depois, o banco de dados MySQL; e, por último, o PHP. Durante a instalação, configuraremos um site de teste escrito em PHP que acessa o banco de dados MySQL. Cada solicitação web será processada e atendida pelo Apache.
Configurar o Apache
O Apache é o servidor web que processa as solicitações recebidas e envia as respostas. Instale-o com o seguinte comando:
Code
sudo apt install apache2
Após a instalação, verifique se as regras de firewall apropriadas estão configuradas para que o servidor web possa ser acessado pela internet. Neste exemplo, usaremos o firewall UFW, pois o Apache tem um aplicativo registrado nele.
Se você estiver usando outro firewall, certifique-se de que a porta 80 (HTTP) esteja liberada. Para saber mais sobre firewalls no Linux, consulte nosso guia Gerenciar o firewall.
Ative o firewall UFW e crie uma regra para SSH:
Code
# Regel für SSH erstellen
sudo ufw allow OpenSSH
# UFW Firewall aktivieren
sudo ufw enable
Atenção
Certifique-se de que exista uma regra de SSH no firewall UFW! Sem ela, você não conseguirá se conectar novamente por SSH se perder a sessão atual depois de ativar o firewall!
Agora, crie a regra para o Apache e verifique as regras:
Code
# Regel für Apache erstellen
sudo ufw allow in "Apache Full"
# UFW Firewall Status prüfen
sudo ufw status
Dica
Você pode usar ufw app list para ver quais perfis estão disponíveis. Apache Full significa que tanto HTTP (porta 80) quanto HTTPS (porta 443) serão liberados.
Você deverá ver Apache e Apache (v6) com o status ALLOW, confirmando que o firewall está configurado corretamente. Outras regras, como a de SSH, também deverão aparecer.
Com o firewall liberado para o Apache, você já pode testar se ele está funcionando. Abra no navegador o endereço IP do seu servidor: http://[deine_ip_adresse]
Se tudo estiver funcionando, você verá uma página de boas-vindas padrão. Caso contrário, verifique o status com: systemctl status apache2
Configurar o MySQL
Agora, instale o MySQL, que será usado como banco de dados para armazenar dados relacionais. Instale-o com:
Code
sudo apt install mysql-server
Após a instalação, recomendamos executar o script de segurança para proteger seu servidor MySQL. É opcional, mas altamente recomendado. Inicie-o com:
Code
sudo mysql_secure_installation
O script guiará você interativamente pela configuração. Primeiro, será perguntado se deseja validar as senhas. Recomendamos escolher Y para permitir apenas senhas seguras e, em seguida, selecionar MEDIUM (1) ou STRONG (2).
Em seguida, você será perguntado se deseja remover o usuário anônimo e desativar o login root de fora do servidor. Recomendamos confirmar ambos com Y para aumentar a segurança.
Por fim, será perguntado se deseja remover o banco de dados de teste e recarregar as tabelas de privilégios. Também recomendamos escolher Y aqui.
Verifique se o MySQL está em execução fazendo login:
Code
sudo mysql -u root
Se aparecer uma mensagem de boas-vindas, deu tudo certo. Digite quit para sair do console do MySQL.
Configurar o PHP
O último componente da stack LAMP é o PHP. A instalação é simples:
Code
sudo apt install php libapache2-mod-php php-mysql
Verifique a instalação com:
Code
php -v
Se um número de versão for exibido, o PHP está funcionando corretamente.
Dica
Extensões do PHP
Para casos de uso específicos, talvez você precise de extensões PHP adicionais. Veja a lista com:
Code
apt search php- | less
Use as teclas de seta para rolar e Q para sair. Para instalar uma extensão:
Code
sudo apt install [php_extension] [...]
Você pode instalar várias extensões ao mesmo tempo, separando-as com espaços.
Recomendamos ajustar a ordem do índice de diretórios para que index.php seja carregado antes de .html. Abra o arquivo:
Salve com CTRL + X, confirme com Y e pressione ENTER. Reinicie o Apache:
Code
sudo systemctl restart apache2
Criar um site de teste
Depois de instalar todos os componentes LAMP, criaremos um site de teste para mostrar como eles funcionam em conjunto. Essa etapa é opcional, mas ajuda a entender como criar seus próprios sites.
Vamos criar uma pequena lista de tarefas em PHP que busca e exibe itens de um banco de dados MySQL. Usaremos zapdocs.example.com como domínio de exemplo. Você precisa criar um registro DNS A para o domínio, apontando para o endereço IP do seu servidor. Para saber como fazer isso, consulte nosso guia Registros de domínio.
Informações
Você também pode fazer isso sem um domínio e substituir [your_domain] por qualquer nome. Nesse caso, o acesso será feito pelo endereço IP. No entanto, remova a linha ServerName do arquivo de host virtual.
Configurar o Apache
Os sites geralmente ficam no diretório /var/www. Por padrão, há um diretório html com uma página inicial padrão. Para hospedar vários sites, recomendamos criar um diretório separado para cada domínio.
Crie um diretório para seu domínio:
Code
sudo mkdir /var/www/[your_domain]
Crie um novo arquivo de configuração de host virtual:
Salve e saia com CTRL + X, Y e ENTER. Verifique a sintaxe:
Code
sudo apache2ctl configtest
Ative o novo host virtual:
Code
sudo a2ensite [your_domain]
Informações
Sem domínio
Se você não estiver usando um domínio, remova ou comente a linha ServerName (com #) e desative o host padrão:
Code
sudo a2dissite 000-default
Reinicie o Apache:
Code
sudo systemctl restart apache2
Criar o site
O diretório está vazio no momento, então vamos criar o site de lista de tarefas.
Preparar o banco de dados
Faça login no MySQL:
Code
sudo mysql -u root
Crie um novo banco de dados e uma tabela:
Code
# Datenbank erstellen
CREATE DATABASE todowebsite;
# Datenbank auswählen
USE todowebsite;
# Tabelle erstellen
CREATE TABLE todoitems (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
is_completed BOOLEAN DEFAULT FALSE,
creation_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Adicione alguns itens de exemplo:
Code
INSERT INTO todoitems (name, is_completed) VALUES ('Create ZAP-Docs Guide', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Buy a ZAP-Hosting Server', 1);
INSERT INTO todoitems (name, is_completed) VALUES ('Join ZAP-Hosting Discord', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Have a great day!', 0);
Crie um usuário dedicado para o site:
Code
# Benutzer erstellen
# Ersetze [your_password] durch dein Passwort
CREATE USER todo@localhost IDENTIFIED BY '[your_password]';
# Rechte vergeben (als ein Befehl kopieren)
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON todowebsite.*
TO todo@localhost;
# Rechte neu laden
FLUSH PRIVILEGES;
Saia do console do MySQL com quit.
Arquivos do site PHP
Crie o arquivo PHP da página de lista de tarefas:
Code
sudo nano /var/www/[your_domain]/index.php
Insira o código a seguir. Ele se conecta ao banco de dados e exibe os itens da lista de tarefas.
Importante
Substitua [your_password] pela senha definida para o usuário todo.
Code
<?php
// MySQL-Verbindung vorbereiten
$servername = "localhost";
$username = "todo";
$password = "[your_password]";
$dbname = "todowebsite";
// Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Verbindung prüfen, bei Fehler abbrechen
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL-Abfrage, um Einträge abzurufen
$sql = "SELECT id, name, is_completed, creation_date FROM todoitems ORDER BY creation_date DESC";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-Do Liste</title>
</head>
<body>
<h1>Coole To-Do Liste :D</h1>
<p>Für unseren coolen ZAP-Hosting Guide: <a href="https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack">https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack</a></p>
<ul>
<?php
// Prüfen, ob Ergebnisse vorhanden sind
if ($result->num_rows > 0) {
// Durch alle Einträge iterieren
foreach ($result as $entry) {
echo "<li>";
// Name anzeigen, htmlspecialchars schützt vor XSS
echo htmlspecialchars($entry["name"]);
// Status anzeigen
if ($entry["is_completed"]) {
echo " <strong>(Erledigt)</strong>";
} else {
echo " <strong>(Offen)</strong>";
}
// Erstellungsdatum anzeigen
echo " - Erstellungsdatum: " . htmlspecialchars($entry['creation_date']);
echo "</li>";
}
} else {
// Falls keine Einträge vorhanden sind
echo "<li>Keine To-Do-Einträge gefunden.</li>";
}
?>
</ul>
</body>
</html>
<?php
// Verbindung schließen
$conn->close();
?>
Salve e saia com CTRL + X, Y e ENTER.
Testar o site
Você configurou com sucesso um site de teste de lista de tarefas que usa todos os componentes LAMP!
Acesse agora pelo domínio (HTTP/porta 80) definido no host virtual, por exemplo, zapdocs.example.com. O resultado deverá ser semelhante a este:
Conclusão
Parabéns, você instalou e configurou a stack LAMP com sucesso! Como próximo passo, recomendamos fortemente configurar um domínio e um certificado SSL para que seu site possa ser acessado com segurança. Consulte nosso guia do Certbot, com foco no plugin do Apache, e siga a configuração interativa para obter rapidamente um certificado para seu domínio.
Se tiver dúvidas ou problemas, nossa equipe de suporte está à disposição todos os dias! 🙂
Hospedagem de servidores a partir de € 2,49 / mês, disponível imediatamente, com proteção DDoS incluída.