O uso de um servidor VPS no Ubuntu pode ser feito de várias formas. Por meio do LAMP, o gestor de TI consegue instalar uma plataforma de execução de aplicativos flexível e de alta performance. Ela combina todas as ferramentas necessárias para a manutenção de um ambiente sólido e confiável.
Quer saber como isso pode ser feito? Então veja o nosso tutorial a seguir!
O que é a pilha LAMP
A pilha LAMP é um conjunto de soluções de TI voltadas para a criação de servidores virtuais no Linux. A sigla originalmente se referia aos termos Linux (sistema operacional), Apache (servidor web), MySQL (banco de dados) e PHP (linguagem de programação). As aplicações que compõem o LAMP podem ser encontradas nos repositórios das principais distribuições baseadas no Linux.
Caso julgue necessário, o gestor de TI pode incorporar outras ferramentas ao seu LAMP. Elas incluem sistemas de segurança e teste de vulnerabilidades, soluções de monitoramento e softwares para rastrear problemas com agilidade. Esse modelo de gestão de software é replicado em outras plataformas com nomes semelhantes, como por exemplo:
- WAMP, para plataformas Windows;
- SAMP, quando executado no Solaris;
- MAMP, para pacotes baseados no macOS;
- FAMP, para companhias que optam pelo FreeBSD como o seu sistema padrão.
Quando outros aplicativos são substituídos, o nome também pode ser alterado. LAPP, por exemplo, é normalmente utilizado para se referir a casos em que o MySQL é substituído pelo PostgreeSQL. Em todos os casos, o objetivo final será o mesmo: a manutenção de uma plataforma sólida para execução de servidores web em ambiente Linux.
Instalando e configurando uma pilha LAMP no Linux
A instalação e configuração básica de uma pilha LAMP pode ser feita com uma série de comandos digitados diretamente no terminal do Linux. Para esse tutorial, consideramos como plataforma um servidor VPS no Ubuntu. Vale lembrar que comandos como o sudo exigem privilégios administrativos para serem executados.
O primeiro passo é atualizar a lista de repositório e o sistema por meio do
# sudo apt-get update && sudo apt-get upgrade
Apache
A instalação da versão mais recente do Apache é feita com o
# sudo apt-get install apache2
O arquivo de configurações deve ter o parâmetro KeepAlive modificado para off. Para fazer isso, basta digitar
sudo vim /etc/apache2/apache2.config
e alterar a linha com o parâmetro para.
KeepAlive Off
OBS.: Você sabe o que é o vim? … conheça aqui mais editores de texto para rodar no Linux.
Para garantir o máximo de compatibilidade após a instalação do PHP, o módulo de multiprocessamento (MPM) deve ser modificado de event para prefork. Nesse caso, basta abrir o arquivo mpm_prefork.conf, que está localizado em /etc/apache2/mods-available, e editar as suas configurações.
Por exemplo, para um VPS Linode de 2GB, o arquivo deve ter o seguinte conteúdo:
<IfModule mpm_prefork_module> StartServers 4 MinSpareServers 20 MaxSpareServers 40 MaxRequestWorkers 200 MaxConnectionsPerChild 4500 </IfModule> |
Para desativar o módulo event e habilitar o prefork, basta digitar:
# sudo a2dismod mpm_event # sudo a2enmod mpm_prefork
Depois disso, reinicie o apache digitando:
# sudo systemctl restart apache2
… na linha de comando. Os hosts virtuais devem ser configurados a partir do comando:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Esse comando cria uma cópia do arquivo de configuração padrão do Apache. Já o arquivo example.com.conf precisa ser modificado, com o trecho ServerName alterado para modo de edição e o termo example.com trocado pelo IP ou FQDN do site.
Abra o arquivo localizado em /etc/apache2/sites-available/example.com.conf por meio do sudo vim /etc/apache2/sites-available/example.com.conf e adicione uma parte chamada Directory antes de </VirtualHost>, conforme o exemplo abaixo:
<Directory /var/www/html/example.com/public_html> Require all granted </Directory> <VirtualHost *:80> ServerName example.com ServerAlias www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html/example.com/public_html ErrorLog /var/www/html/example.com/logs/error.log CustomLog /var/www/html/example.com/logs/access.log combined </VirtualHost> |
Também é necessário criar diretórios adicionais por meio do comando
# sudo mkdir -p /var/www/html/example.com/{public_html,logs}
e linkar o host virtual do caminho sites-available para o diretório sites-enable por meio do
# sudo a2ensite example.com.conf
Para diminuir riscos de segurança, o host virtual padrão pode ser desabilitado via
# sudo a2dissite 000-default.conf
Por fim, reinicie o Apache por meio do comando
# sudo systemctl reload apache2
MySQL
A instalação do MySQL deve ser feita por meio do seguinte comando:
# sudo apt-get install mysql-server
Durante a instalação, o MySQL solicitará a criação de uma senha para o root (super usuário). Escolha uma que seja complexa e difícil de ser esquecida. Para ser ativado, o MySQL exige o seguinte comando:
# sudo mysql_install_db
Já o script de instalação deve ser finalizado por meio do comando:
# sudo /usr/bin/mysql_secure_installation
Ele solicitará à pessoa que estiver fazendo a configuração a definição de uma série de parâmetros, como a existência de usuários anônimos e login remoto. Para criar um banco de dados, os seguintes comandos também podem ser digitados:
# mysql -u root -p (para logar no MySQL)
Dentro do console do mysql digite:
CREATE DATABASE <nome do banco de dados>; GRANT ALL ON <nome do banco de dados>.* TO '<usuário>' IDENTIFIED BY '<senha>';
PHP
Uma vez que a instalação tenha sido finalizada, todos os modos do banco de dados verificados e o MySQL finalizado (por meio do comando quit), o PHP deve ser instalado pelo seguinte comando:
# sudo apt-get install php7.0 php-pear libapache2-mod-php7.0 php7.0-mysql
Para ter suporte adicional ao cURL, JSON e CGI, basta digitar:
# sudo apt-get install php7.0-curl php7.0-json php7.0-cgi
Uma vez instalado, o arquivo de configuração localizado em /etc/php/7.0/apache2/php.ini deve ser modificado para habilitar relatórios de erros, logs e performances otimizados. Nesse caso, basta inserir no final do arquivo as linhas:
max_input_time = 30 error_reporting = E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR error_log = /var/log/php/error.log |
Por fim, um diretório para o PHP contendo o usuário principal do Apache como dono deve ser criado por meio do:
# sudo mkdir /var/log/php # sudo chown www-data /var/log/php
Finalizada essa parte, basta reiniciar o Apache via
# sudo systemctl restart apache2
Testando o seu LAMP no Linux
Abaixo, listamos uma forma simples de verificar se o LAMP está funcionando corretamente. Ela também auxilia técnicos a localizar a fonte de um erro caso algum elemento do LAMP não consiga comunicar-se com outros corretamente.
Crie um arquivo com o nome phptest.php na pasta /var/www/html/example.com/public_html/ com as linhas abaixo e os parâmetros webuser e senha modificados de acordo com os do MySQL:
<html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; // Troque os termos "webuser" e "senha" pelo usuário e senha do MySQL $servername = "localhost"; $username = "webuser"; $password = "senha"; // Create MySQL connection $conn = mysqli_connect($servername, $username, $password); // Verifique a conexão. Se falhar, uma mensagem de erro deve ser exibida if (!$conn) { die('<p>Connection failed: <p>' . mysqli_connect_error()); } echo '<p>Connected successfully</p>'; ?> </body> </html> |
Caso tudo esteja funcionando da melhor forma possível, o LAMP deve exibir uma mensagem positiva após o usuário navegar até example.com/phptest.php. Problemas simples podem ser solucionados por meio dos comandos:
#sudo systemctl status apache2 #sudo systemctl restart apache2
Eles verificam se o Apache está funcionando corretamente e reiniciam os módulos se for necessário. Caso a página carregue, mas não exiba uma mensagem positiva, verifique se o parâmetro DocumentRoot foi configurado de acordo com o que está listado na pasta example.com/public_html durante a criação dos hosts virtuais.
O Linux tem o ambiente corporativo um dos seus principais aliados. Conheça algumas empresas que já o utilizam no seu dia a dia no nosso post sobre o tema!