Tutorial: Instalar um servidor web LAMP numa máquina virtual Linux no AzureTutorial: Install a LAMP web server on a Linux virtual machine in Azure

Este artigo explica como implementar um servidor Web Apache, o MySQL e o PHP (pilha LAMP) numa VM do Ubuntu no Azure.This article walks you through how to deploy an Apache web server, MySQL, and PHP (the LAMP stack) on an Ubuntu VM in Azure. Se preferir o servidor Web NGINX, veja o tutorial Pilha LEMP.If you prefer the NGINX web server, see the LEMP stack tutorial. Para ver o servidor LAMP em ação, opcionalmente, pode instalar e configurar um site do WordPress.To see the LAMP server in action, you can optionally install and configure a WordPress site. Neste tutorial, ficará a saber como:In this tutorial you learn how to:

  • Criar uma VM do Ubuntu (o “L” na pilha LAMP)Create an Ubuntu VM (the 'L' in the LAMP stack)
  • Abrir a porta 80 para o tráfego da WebOpen port 80 for web traffic
  • Instalar o Apache, o MySQL e o PHPInstall Apache, MySQL, and PHP
  • Verificar a instalação e a configuraçãoVerify installation and configuration
  • Instalar o WordPress no servidor LAMPInstall WordPress on the LAMP server

Esta configuração é para testes rápidos ou uma prova de conceito.This setup is for quick tests or proof of concept. Para obter mais informações sobre a pilha LAMP, incluindo as recomendações para um ambiente de produção, veja a Documentação do Ubuntu.For more on the LAMP stack, including recommendations for a production environment, see the Ubuntu documentation.

Utilizar o Azure Cloud ShellUse Azure Cloud Shell

O Azure hospeda Azure Cloud Shell, um ambiente de shell interativo que você pode usar por meio de seu navegador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell permite que você use bash o PowerShell ou o para trabalhar com os serviços do Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Você pode usar os comandos pré-instalados Cloud Shell para executar o código neste artigo sem precisar instalar nada em seu ambiente local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Para iniciar o Azure Cloud Shell:To launch Azure Cloud Shell:

OpçãoOption Exemplo/linkExample/Link
Selecione Experimentar no canto superior direito de um bloco de código.Select Try It in the upper-right corner of a code block. A seleção de try não copia automaticamente o código para Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemplo de teste para Azure Cloud Shell
Vá para https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir Cloud Shell em seu navegador.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell em uma nova janelaLaunch Cloud Shell in a new window
Selecione o botão Cloud Shell na barra de menus superior direita na portal do Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Botão Cloud Shell no portal do Azure

Para executar o código neste artigo em Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Abra o Cloud Shell.Open Cloud Shell.
  2. Selecione o botão copiar em um bloco de código para copiar o código.Select the Copy button on a code block to copy the code.
  3. Cole o código na sessão de Cloud shell com Ctrl+Shift+v no Windows e Linux, ou cmd+Shift+v no MacOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Pressione Enter para executar o código.Press Enter to run the code.

Se optar por instalar e utilizar a CLI localmente, este tutorial requer que execute uma versão da CLI do Azure que seja a 2.0.30 ou posterior.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. Executar az --version para localizar a versão.Run az --version to find the version. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.If you need to install or upgrade, see Install Azure CLI.

Criar um grupo de recursosCreate a resource group

Crie um grupo de recursos com o comando az group create.Create a resource group with the az group create command. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos.An Azure resource group is a logical container into which Azure resources are deployed and managed.

O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

Criar uma máquina virtualCreate a virtual machine

Crie uma VM com o comando az vm create.Create a VM with the az vm create command.

O exemplo seguinte cria uma VM com o nome myVM e cria chaves SSH caso estas ainda não existam numa localização chave predefinida.The following example creates a VM named myVM and creates SSH keys if they do not already exist in a default key location. Para utilizar um conjunto específico de chaves, utilize a opção --ssh-key-value.To use a specific set of keys, use the --ssh-key-value option. O comando também define azureuser como um nome de utilizador administrador.The command also sets azureuser as an administrator user name. Utilize este nome mais tarde para ligar à VM.You use this name later to connect to the VM.

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys

Quando a VM tiver sido criada, a CLI do Azure mostra informações semelhantes ao seguinte exemplo.When the VM has been created, the Azure CLI shows information similar to the following example. Tome nota do publicIpAddress.Take note of the publicIpAddress. Este endereço é utilizado para aceder à VM nos passos posteriores.This address is used to access the VM in later steps.

{
  "fqdns": "",
  "id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

Abrir a porta 80 para o tráfego da WebOpen port 80 for web traffic

Por predefinição, só são permitidas ligações SSH a VMs do Linux implementadas no Azure.By default, only SSH connections are allowed into Linux VMs deployed in Azure. Uma vez que esta VM vai ser um servidor Web, tem de abrir a porta 80 a partir da Internet.Because this VM is going to be a web server, you need to open port 80 from the internet. Utilize o comando az vm open-port para abrir a porta pretendida.Use the az vm open-port command to open the desired port.

az vm open-port --port 80 --resource-group myResourceGroup --name myVM

Aceder através de SSH à VMSSH into your VM

Se ainda não souber o endereço IP público da sua VM, execute o comando az network public-ip list.If you don't already know the public IP address of your VM, run the az network public-ip list command. Precisará deste endereço IP para vários passos posteriores.You need this IP address for several later steps.

az network public-ip list --resource-group myResourceGroup --query [].ipAddress

Utilize o seguinte comando para criar uma sessão SSH com a máquina virtual.Use the following command to create an SSH session with the virtual machine. Substitua o endereço IP público correto da sua máquina virtual.Substitute the correct public IP address of your virtual machine. Neste exemplo, o endereço IP é 40.68.254.142.In this example, the IP address is 40.68.254.142. azureuser é o nome de utilizador administrador que definiu quando criou a VM.azureuser is the administrator user name set when you created the VM.

ssh azureuser@40.68.254.142

Instalar o Apache, o MySQL e o PHPInstall Apache, MySQL, and PHP

Execute os comandos seguintes para atualizar as origens do pacote Ubuntu e instalar o Apache, o MySQL e o PHP.Run the following command to update Ubuntu package sources and install Apache, MySQL, and PHP. Tenha em atenção ao acento circunflexo (^) no final do comando, que faz parte do nome do pacote lamp-server^.Note the caret (^) at the end of the command, which is part of the lamp-server^ package name.

sudo apt update && sudo apt install lamp-server^

É-lhe pedido para instalar os pacotes e outras dependências.You are prompted to install the packages and other dependencies. Este processo instala as extensões PHP mínimas necessárias para utilizar o PHP com o MySQL.This process installs the minimum required PHP extensions needed to use PHP with MySQL.

Verificar a instalação e a configuraçãoVerify installation and configuration

Certifique-se de ApacheVerify Apache

Verifique a versão do Apache com o seguinte comando:Check the version of Apache with the following command:

apache2 -v

Com o Apache instalado e a porta 80 aberta para a VM, torna-se possível aceder ao servidor Web a partir da Internet.With Apache installed, and port 80 open to your VM, the web server can now be accessed from the internet. Para a Página Predefinida do Apache2 Ubuntu, abra um browser e introduza o endereço IP público da VM.To view the Apache2 Ubuntu Default Page, open a web browser, and enter the public IP address of the VM. Utilize o endereço IP público que utilizou para encaminhar o SSH para a VM:Use the public IP address you used to SSH to the VM:

Página predefinida do Apache

Certifique-se e Proteja o MySQLVerify and secure MySQL

Verifique a versão do MySQL com o seguinte comando (tenha em atenção o parâmetro V em maiúscula):Check the version of MySQL with the following command (note the capital V parameter):

mysql -V

Para ajudar a proteger a instalação do MySQL, incluindo a definição de uma palavra-passe de raiz, execute o mysql_secure_installation script.To help secure the installation of MySQL, including setting a root password, run the mysql_secure_installation script.

sudo mysql_secure_installation

Opcionalmente, pode configurar a validar a palavra-passe Plug-in (recomendado).You can optionally set up the Validate Password Plugin (recommended). Em seguida, definir uma palavra-passe para o utilizador de raiz do MySQL e configure as restantes definições de segurança para o seu ambiente.Then, set a password for the MySQL root user, and configure the remaining security settings for your environment. Recomendamos que responder "Y" (Sim) para todas as perguntas.We recommend that you answer "Y" (yes) to all questions.

Se pretender experimentar funcionalidades do MySQL (criar uma base de dados MySQL, adicionar utilizadores ou alterar as definições de configuração), inicie sessão no MySQL.If you want to try MySQL features (create a MySQL database, add users, or change configuration settings), login to MySQL. Este passo não é necessário para concluir este tutorial.This step is not required to complete this tutorial.

sudo mysql -u root -p

Quando terminar, sair da linha de comandos do mysql, escrevendo \q.When done, exit the mysql prompt by typing \q.

Certifique-se de PHPVerify PHP

Verifique a versão do PHP com o seguinte comando:Check the version of PHP with the following command:

php -v

Se pretender mais testes, crie uma página de informações do PHP rápida, para a ver num browser.If you want to test further, create a quick PHP info page to view in a browser. O comando seguinte cria a página de informações do PHP:The following command creates the PHP info page:

sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

Agora pode verificar a página de informações do PHP que criou.Now you can check the PHP info page you created. Abra um browser e aceda a http://yourPublicIPAddress/info.php.Open a browser and go to http://yourPublicIPAddress/info.php. Substitua o endereço IP público da sua VM.Substitute the public IP address of your VM. Deve ter um aspeto semelhante a esta imagem.It should look similar to this image.

Página de informações do PHP

Instalar o WordPressInstall WordPress

Se quiser experimentar a sua pilha, instale uma aplicação de exemplo.If you want to try your stack, install a sample app. Por exemplo, os seguintes passos instalam a plataforma de WordPress de código-fonte aberto para criar sites e blogues.As an example, the following steps install the open source WordPress platform to create websites and blogs. Outras cargas de trabalho tentam incluir o Drupal e o Moodle.Other workloads to try include Drupal and Moodle.

Esta configuração do WordPress é apenas para prova de conceito.This WordPress setup is only for proof of concept. Para instalar o WordPress mais recente na produção com as definições de segurança recomendadas, veja a documentação do WordPress.To install the latest WordPress in production with recommended security settings, see the WordPress documentation.

Instalar o pacote do WordPressInstall the WordPress package

Execute o seguinte comando:Run the following command:

sudo apt install wordpress

Configurar WordPressConfigure WordPress

Configure o WordPress para utilizar o MySQL e PHP.Configure WordPress to use MySQL and PHP.

No diretório de trabalho, crie um ficheiro de texto wordpress.sql para configurar a base de dados do MySQL para o WordPress:In a working directory, create a text file wordpress.sql to configure the MySQL database for WordPress:

sudo sensible-editor wordpress.sql

Adicione os seguintes comandos, ao substituir uma palavra-passe da base de dados à sua escolha para yourPassword (deixe os outros valores inalterados).Add the following commands, substituting a database password of your choice for yourPassword (leave other values unchanged). Se configurou anteriormente uma política de segurança do MySQL para validar a força da palavra-passe, certifique-se de que a palavra-passe cumpre os requisitos de segurança.If you previously set up a MySQL security policy to validate password strength, make sure the password meets the strength requirements. Guarde o ficheiro.Save the file.

CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'yourPassword';

Execute o comando seguinte para criar a base de dados:Run the following command to create the database:

cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf

Uma vez que o ficheiro wordpress.sql contém credenciais de base de dados, elimine-o depois de o utilizar:Because the file wordpress.sql contains database credentials, delete it after use:

sudo rm wordpress.sql

Para configurar o PHP, execute o seguinte comando para abrir um editor de texto à sua escolha e crie o ficheiro /etc/wordpress/config-localhost.php:To configure PHP, run the following command to open a text editor of your choice and create the file /etc/wordpress/config-localhost.php:

sudo sensible-editor /etc/wordpress/config-localhost.php

Copie as seguintes linhas para o ficheiro, ao substituir a palavra-passe da base de dados do WordPress por yourPassword (deixe os outros valores inalterados).Copy the following lines to the file, substituting your WordPress database password for yourPassword (leave other values unchanged). Em seguida, guarde o ficheiro.Then save the file.

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'yourPassword');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content');
?>

Mova a instalação do WordPress para a raiz do documento do servidor Web:Move the WordPress installation to the web server document root:

sudo ln -s /usr/share/wordpress /var/www/html/wordpress

sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php

Agora, pode concluir a configuração do WordPress e publicar na plataforma.Now you can complete the WordPress setup and publish on the platform. Abra um browser e aceda a http://yourPublicIPAddress/wordpress.Open a browser and go to http://yourPublicIPAddress/wordpress. Substitua o endereço IP público da sua VM.Substitute the public IP address of your VM. Deve ter um aspeto semelhante a esta imagem.It should look similar to this image.

Página de instalação do WordPress

Passos SeguintesNext steps

Neste tutorial, implementou um servidor LAMP no Azure.In this tutorial, you deployed a LAMP server in Azure. Aprendeu a:You learned how to:

  • Criar uma VM do UbuntuCreate an Ubuntu VM
  • Abrir a porta 80 para o tráfego da WebOpen port 80 for web traffic
  • Instalar o Apache, o MySQL e o PHPInstall Apache, MySQL, and PHP
  • Verificar a instalação e a configuraçãoVerify installation and configuration
  • Instalar o WordPress no servidor LAMPInstall WordPress on the LAMP server

Avance para o tutorial seguinte para aprender a proteger os servidores Web com certificados SSL.Advance to the next tutorial to learn how to secure web servers with SSL certificates.