Como instalar Linux, OpenLiteSpeed, MariaDB, PHP (pilha LOMP) no Ubuntu 22.04
O autor selecionou o programa Write for DOnations.
Introdução
A pilha LOMP é um acrônimo para Joomla e outros aplicativos baseados em PHP que fornecem conteúdo dinâmico.
Neste tutorial, você configurará um servidor LOMP em execução no Ubuntu 22.04. No momento da escrita, as versões atuais são PHP 8.1, MariaDB 10.7 e OpenLiteSpeed 1.7.
Pré-requisitos
Antes de começar este guia, você precisará do seguinte:
- Um servidor Ubuntu 22.04 com um usuário sudo não root, um firewall e pelo menos 1 GB de RAM, que você pode configurar seguindo o guia de configuração inicial do servidor Ubuntu 22.04
- Um nome de domínio totalmente qualificado (necessário para configuração SSL e recomendado para sites públicos). Você pode obter um nome de domínio no DNS Quickstart para apontar o nome de domínio para o seu servidor.
- Certificados SSL e chaves para seu domínio. Siga How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on Ubuntu 22.04 para obter o par certificado-chave para o seu domínio. Na Etapa 2, abra a porta
80
ao lado da porta443
.
Passo 1 — Instalando o OpenLiteSpeed
Nesta etapa, você instalará o servidor web OpenLiteSpeed após importar os repositórios de pacotes necessários para o seu servidor. Se for a primeira vez que você usa sudo
na sessão SSH, pode ser necessário inserir a senha do usuário não root.
Comece atualizando o cache do gerenciador de pacotes:
- sudo apt update
Em seguida, atualize os pacotes necessários executando o seguinte comando:
- sudo apt upgrade -y
Nota: Se solicitado a atualizar o kernel, digite y
para continuar. Se solicitado a reinicializar, execute o comando sudo reboot
para reinicializar o sistema.
Ao contrário do Nginx, o OpenLiteSpeed hospeda seu código em seu próprio repositório. Adicione este repositório à lista de fontes do gerenciador de pacotes apt
com o seguinte comando:
- sudo wget -O - https://repo.litespeed.sh | sudo bash
wget
busca o shell script para o repositório remoto localizado no servidor OpenLiteSpeed, e o sinalizador -O
imprime o conteúdo do arquivo no terminal. O pipe |
passa o conteúdo para um novo shell bash, iniciado pelo comando sudo bash
. Este terminal bash executa os comandos mencionados no conteúdo do arquivo .sh
(script bash) obtido do repositório e instala o repositório na lista de repositórios APT local.
Você verá uma saída como esta:
OutputRedirecting output to ‘wget-log’.
--2022-09-08 08:27:42-- http://rpms.litespeedtech.com/debian/lst_debian_repo.gpg
Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)... 52.55.120.73
Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1198 (1.2K) [application/octet-stream]
Saving to: ‘/etc/apt/trusted.gpg.d/lst_debian_repo.gpg’
/etc/apt/trusted.gpg.d/l 100%[==================================>] 1.17K --.-KB/s in 0s
2022-09-08 08:27:42 (139 MB/s) - ‘/etc/apt/trusted.gpg.d/lst_debian_repo.gpg’ saved [1198/1198]
--2022-09-08 08:27:42-- http://rpms.litespeedtech.com/debian/lst_repo.gpg
Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)... 52.55.120.73
Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2336 (2.3K) [application/octet-stream]
Saving to: ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’
/etc/apt/trusted.gpg.d/l 100%[==================================>] 2.28K --.-KB/s in 0s
2022-09-08 08:27:42 (226 MB/s) - ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’ saved [2336/2336]
LiteSpeed repository has been setup!
Atualize a lista de repositórios para garantir que o repositório recém-adicionado seja verificado pelo gerenciador de pacotes apt
:
- sudo apt update
Em seguida, instale o pacote openlitespeed
:
- sudo apt install openlitespeed
Se solicitado, digite sua senha e confirme a instalação com Y
.
Assim que a instalação estiver concluída, verifique se o OpenLiteSpeed está instalado e funcionando corretamente verificando seu status com o comando service
:
- sudo systemctl status lsws
O comando systemctl status
obtém o status de um serviço identificado por sua palavra-chave. A palavra-chave para o serviço OpenLiteSpeed Web Server é lsws
. O comando systemctl
pode habilitar ou desabilitar o início automático de serviços e iniciar ou parar manualmente um serviço.
Você receberá a seguinte saída:
Output● lshttpd.service - OpenLiteSpeed HTTP Server
Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-03-16 08:59:09 UTC; 2min 26s ago
Process: 32997 ExecStart=/usr/local/lsws/bin/lswsctrl start (code=exited, status=0/SUCCESS)
Main PID: 33035 (litespeed)
CGroup: /system.slice/lshttpd.service
├─33035 openlitespeed (lshttpd - main)
├─33044 openlitespeed (lscgid)
└─33073 openlitespeed (lshttpd - #01)
Agora você tem um servidor web OpenLiteSpeed rodando com sua configuração padrão. Talvez você não consiga acessar o painel de administração baseado em GUI e o site de exemplo ainda, pois o firewall bloqueia o tráfego para essas portas.
Com o servidor da Web OpenLiteSpeed em execução, você pode atualizar o firewall e abrir as portas necessárias para permitir que os usuários acessem o site.
Passo 2 — Atualizando o Firewall
Nesta etapa, você configurará o firewall para seu servidor. Você permitirá o tráfego por TCP para portas selecionadas para o painel de administração baseado em GUI e site de exemplo, bem como portas 80
e 443
para sites HTTP e HTTPS.
O servidor OpenLiteSpeed agrupa um painel de administração baseado em GUI e um site de exemplo com o servidor. O painel de administração é uma interface fácil de usar para configurar Ouvintes, Hosts Virtuais, SSL e logs de monitoramento. O site de exemplo apresenta um exemplo de script CGI, script PHP, página de erro e uma página protegida por senha. Este site pode demonstrar as capacidades do servidor web.
O Painel Administrativo baseado em GUI escuta na porta 7080
na configuração padrão, enquanto o site de exemplo escuta na porta 8088
. Você precisa permitir o tráfego TCP para essas portas por meio do firewall ufw
para acessar esses sites.
Para fornecer acesso, execute o seguinte comando:
- sudo ufw allow 7080,80,443,8088/tcp
Em seguida, verifique o status das regras de firewall:
- sudo ufw status
Sua saída ficará assim:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80,443,7080,8088/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80,443,7080,8088/tcp (v6) ALLOW Anywhere (v6)
Você pode visualizar o site de exemplo através da porta 8088
:
http://your_server_ip:8088
Deve aparecer como a captura de tela abaixo:
Você pode consultar o site de exemplo para explorar os recursos oferecidos pelo servidor da web.
Para ver o Painel Administrativo baseado em GUI, acesse a porta 7080
:
http://your_server_ip:7080
Mais adiante neste tutorial, você usará o Painel Administrativo OpenLiteSpeed GUI para configurar seu servidor web.
Agora você configurou o servidor OpenLiteSpeed em sua instância do Ubuntu, o que permitirá que você atenda a uma variedade de aplicativos da web com base em diferentes linguagens e estruturas de back-end. Na próxima etapa, você configurará outros serviços da pilha LOMP.
Passo 3 — Instalando o MariaDB
Com o servidor OpenLiteSpeed rodando no Linux, agora você pode configurar o MariaDB Database Server. O servidor de banco de dados permitirá que você armazene, recupere e gerencie dados em seu site. O MariaDB é um mecanismo de banco de dados popular porque oferece funcionalidades SQL e NoSQL e pode incorporar vários mecanismos de banco de dados, como o InnoDB.
Instale o servidor MariaDB com o seguinte comando:
- sudo apt install mariadb-server
Quando a confirmação for solicitada, digite Y
para confirmar.
Após a conclusão da instalação, conclua a configuração inicial do servidor com o seguinte comando:
- sudo mysql_secure_installation
A instalação padrão não possui senha de root, então você pode pressionar Enter
quando solicitado.
Você receberá uma saída como esta após a configuração da instalação:
Output
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Você será solicitado a ativar a autenticação de soquete
. Quando perguntado se você gostaria de Mudar para a autenticação unix_socket
, digite Y
:
OutputSetting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
... Success!
Quando o próximo prompt perguntar se você deseja definir a senha de root
, digite Y
e digite sua senha de root preferencial duas vezes:
OutputYou already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
O próximo prompt pergunta se você gostaria de remover os usuários anônimos
. Responda Y
a este prompt:
OutputBy default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
A menos que você planeje acessar o banco de dados como usuário root de outros servidores ou de sua máquina local, você também deve proibir o login root remotamente
. Para desabilitar logins root de máquinas remotas, responda Y
ao prompt:
OutputNormally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
Você também pode remover o banco de dados de teste e privilégios relacionados
digitando Y
para o seguinte prompt:
OutputBy default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment:
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Finalmente, você confirmará para recarregar as tabelas de privilégios
para que todas as alterações acima sejam aplicadas ao servidor:
OutputReloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Agora você instalou, configurou e protegeu um servidor de banco de dados MariaDB em sua instância do Ubuntu. O banco de dados escutará conexões MySQL na porta 3306
em sua configuração padrão. Como o banco de dados será acessado internamente (no mesmo servidor na maioria dos casos), você não abrirá esta porta para tráfego externo no firewall.
Em seguida, você instalará o PHP para uso com o OpenLiteSpeed.
Passo 4 — Instalando uma versão específica do PHP
O servidor web OpenLiteSpeed vem com uma versão do PHP, que pode não ser a última versão estável do PHP. Você pode usar a versão pré-instalada do PHP ou pode instalar uma instância específica. Nesta etapa, você verificará a versão da instalação do PHP, atualizará se necessário e instalará os pacotes necessários.
Para saber qual versão do PHP foi pré-instalada com seu servidor OpenLiteSpeed, clique no botão na seção Test PHP do site de exemplo ou visite o seguinte URL:
http://your_server_ip:8088/phpinfo.php
A versão do PHP será exibida na página de informações.
Para instalar uma versão específica do PHP no servidor web OpenLiteSpeed, verifique a lista de versões disponíveis junto com sua compatibilidade no Getting Started
Você também pode verificar os pacotes LSPHP (LiteSpeed PHP) disponíveis para Ubuntu com o seguinte comando:
- sudo apt-cache search lsphp
Na lista de pacotes, você pode identificar as versões do php
usando o sufixo dos nomes dos pacotes. Você verá uma lista de pacotes como esta:
Output...
lsphp81 - server-side, HTML-embedded scripting language (LSAPI binary)
...
Neste exemplo, lsphp81
afirma que é PHP v8.1
, enquanto lsphp 74
significaria PHP v7.4
.
Para instalar um pacote lsphp
específico, use o seguinte comando (substituindo 81
pelo sufixo de sua versão preferida):
- sudo apt install lsphp81 lsphp81-{common,mysql}
Digite Y
para confirmar a instalação.
Você instalou apenas o pacote lsphp
, mas não configurou o OpenLiteSpeed para usar esta versão do PHP. O site de exemplo continuará mostrando a versão padrão do PHP até que você o configure para usar a nova versão. Na próxima etapa, você configurará o OpenLiteSpeed para usar esta versão do PHP.
Passo 5 — Configurando o OpenLiteSpeed
Nesta etapa, você configurará as credenciais para o painel de administração baseado em GUI para o servidor web OpenLiteSpeed e configurará o servidor web para usar a versão PHP de sua escolha.
Para configurar o servidor web OpenLiteSpeed, acesse o GUI Admin Panel na porta 7080
:
http://your_server_ip:7080
No seu terminal, defina as credenciais da conta de administrador com o seguinte comando:
- sudo /usr/local/lsws/admin/misc/admpass.sh
Essas credenciais de login serão diferentes do que você definiu nas etapas anteriores e funcionarão apenas para o painel de administração da GUI do servidor OpenLiteSpeed.
Você verá a seguinte saída, que solicitará que você insira um nome de usuário e senha:
OutputPlease specify the user name of administrator.
This is the user name required to login the administration Web interface.
User name [admin]: sammy
Please specify the administrators password.
This is the password required to login the administration Web interface.
Password:
Retype password:
Administrators username/password is updated successfully!
Depois de definir as credenciais, você pode configurar o servidor para usar a versão especificada.
Via http://your_server_ip:7080
, faça login no Painel Administrativo (usando as credenciais que você acabou de configurar) e navegue até a seção Configuração do servidor. Em seguida, clique na guia Aplicativo externo.
Você verá a seguinte tela:
Clique no botão de edição na coluna Ações da primeira linha para LiteSpeed SAPI App, que abrirá um aplicativo com o nome lsphp. Role até o campo Comando para alterar seu valor para lsphp81/bin/lsphp
(seguindo a convenção de nomenclatura na Etapa 4). Depois de configurar esse valor, role até o cabeçalho LiteSpeed SAPI App e clique no botão Salvar à direita.
Use o botão Graceful Restart no canto superior direito para reiniciar o servidor web. O botão Graceful Restart é destacado no canto superior direito da seguinte captura de tela:
Verifique se seu servidor agora está usando a versão PHP especificada visitando a página informativa na porta 8088
:
http://your_server_ip:8088/phpinfo.php
A página agora exibirá o número da versão especificada.
Nesta etapa, você configurou as credenciais para o painel de administração e o configurou para usar a versão desejada do PHP. Em seguida, você configurará Hosts Virtuais para os diferentes sites que planeja hospedar neste servidor da web.
Etapa 6 — Configurando um host virtual
Nesta etapa, você configurará os Hosts Virtuais para seu servidor web e configurará a criptografia TLS para todo o tráfego para seu site.
Hosts virtuais permitem que você atenda a vários sites, identificados por nomes de host exclusivos, por meio de um único servidor da web. O OpenLiteSpeed pode atender a vários Hosts Virtuais, que são então mapeados para Ouvintes; os Ouvintes são então mapeados para portas específicas. O OpenLiteSpeed permite que Virtual Hosts tenham regras de redirecionamento customizadas, e uma versão PHP diferente também pode ser configurada para cada Virtual Host. Hosts virtuais podem ser configurados para servir como conexões de proxy reverso para outros servidores web, como Node.JS.
Ainda no GUI Admin Panel, navegue até a seção Virtual Hosts. No canto superior direito da tabela que aparece, clique no botão de mais (+) para adicionar um novo Virtual Host.
Você pode adicionar um nome de host virtual de sua escolha para configurar a raiz do host virtual e o caminho para o arquivo de configuração do host virtual, usando variáveis como $SERVER_ROOT
(para referência ao diretório raiz do OpenLiteSpeed Web Server) ou $VH_ROOT
(para se referir ao diretório raiz do Virtual Host). Clique em Sim em Ativar Scripts/ExtApps para garantir que o PHP funcione no Virtual Host.
Ao configurar o Virtual Host, preencha os campos a seguir com os valores desejados (os valores mostrados abaixo são exemplos):
- Nome do host virtual:
MyWebsite
- Raiz do host virtual:
$SERVER_ROOT/MyWebsite/html/
- Arquivo de configuração:
conf/vhosts/MyWebsite/vhconf.conf
- Habilitar Scripts/ExtApps:
Sim
- Restrição:
Sim
Você pode substituir MyWebsite
pelo nome de domínio que você criou durante os pré-requisitos.
Observação: você pode receber um erro se o arquivo de configuração não existir no caminho especificado. Clique no link mencionado na mensagem de erro para criar o arquivo automaticamente.
Sim
em Ativar Scripts/ExtApps permite que você especifique uma versão personalizada do interpretador PHP na seção Aplicativos Externos da configuração. Ele pode ser desativado se você não pretende configurar uma versão personalizada do PHP.
Sim
em Restringido impede que os usuários acessem arquivos em diretórios diferentes daqueles contidos no diretório Raiz do Host Virtual, mesmo que links simbólicos estejam apontando para arquivos fora do diretório raiz do Host Virtual. Para fins de segurança, habilite esse recurso.
Depois de concluir a configuração, clique no botão Salvar no lado direito da linha Virtual Hosts.
O Painel Administrativo pode exibir um prompt para executar uma reinicialização normal para aplicar as alterações na configuração. Você pode executar uma reinicialização normal neste ponto, pois isso não afetará as etapas de configuração. Você também pode esperar para executar o Graceful Restart depois de concluir as alterações na configuração do Ouvinte.
Após configurar o Virtual Host, você irá configurar o Listener. Navegue até a seção Ouvintes do Painel Administrativo. Clique no ouvinte padrão e, em seguida, clique no botão de adição (+) no canto superior direito da tabela Virtual Host Mappings.
No menu suspenso correspondente ao Virtual Host, selecione o Nome do Virtual Host que você atribuiu na Configuração do Virtual Host. No exemplo mostrado, o Virtual Host selecionado é MyWebsite.
Na caixa de texto para um nome de domínio, insira o nome de domínio totalmente qualificado e registrado que você usará para servir o Host Virtual que você configurou. Na captura de tela abaixo, o valor de amostra é definido como mywebsite.com
, mas atualize-o com o valor que você usou para your_domain
.
Nota: O listener padrão é configurado para escutar na porta 8088
. A porta usada para tráfego HTTP para seu site é 80
e, se a criptografia SSL/TLS estiver habilitada, espera-se que seu site HTTPS escute na porta 443
. Você precisará alterar a porta nas configurações de endereço da configuração do ouvinte para alterar a porta na qual o ouvinte escuta.
Clique em Salvar no canto superior direito da linha Mapeamento de hosts virtuais.
É altamente recomendável que você habilite a segurança TLS para o seu site. Nas configurações gerais do ouvinte, atualize a opção segura para Sim
e altere a porta de 8088
para 443
para os ouvintes que atendem a páginas HTTPS . 443
é a porta padrão para HTTPS. Salve as configurações de endereço atualizadas.
Como você gerou um certificado e um arquivo de chave de uma autoridade de certificação durante os pré-requisitos, agora você pode adicioná-los à sua configuração do OpenLiteSpeed. Adicione o certificado e os caminhos do arquivo de chave na seção SSL da configuração do Ouvinte clicando no ícone Editar na linha SSL Private Key & Certificate.
Se você seguiu os guias mencionados no pré-requisito, o certificado e os arquivos de chave gerados pelo Let’s Encrypt estarão nos seguintes locais:
- Arquivo de chave privada:
/etc/letsencrypt/live/seu_domínio.privkey.pem
- Arquivo de certificado:
/etc/letsencrypt/live/seu_domínio.fullchain.pem
Para certificados gerados por Let's Encrypt, você deve definir a opção Chained Certificate como Yes
, conforme recomendado pela documentação oficial para configurar Let's Encrypt SSL no OpenLiteSpeed.
Uma configuração de exemplo para o certificado TLS e arquivos de chave na seção SSL da Configuração do Ouvinte é mostrada abaixo (certifique-se de atualizar os caminhos de arquivo para corresponder ao seu domínio):
Se você tiver algum problema, pode revisar o guia para configurar o OpenLiteSpeed para SSL na documentação do OpenLiteSpeed.
Depois de definir e salvar essas configurações, clique no botão Graceful Restart no canto superior direito da tela para aplicar as alterações.
Agora você configurou um host virtual com um ouvinte e configurou a criptografia TLS para todo o tráfego para seu site. Depois de configurar seu DNS para mapear para o endereço IP público do seu servidor, seu site estará acessível no domínio que você especificar.
Nota: OpenLiteSpeed é um dos primeiros servidores de código aberto a incorporar o protocolo HTTP3 sobre o protocolo Quick UDP Internet Connections (QUIC).
Para habilitar o HTTP3/QUIC, você deve configurar o SSL para seu domínio e configurar o certificado e a chave por meio do Painel Administrativo. Retorne ao Passo 6 para orientação.
Se quiser usar HTTP3, você também deve permitir o tráfego UDP para a porta 443
do seu servidor. Para fazer isso, execute o comando:
- sudo ufw allow 443/udp
Conclusão
Neste tutorial, você configura um servidor de banco de dados MariaDB e um servidor da web OpenLiteSpeed capaz de servir aplicativos PHP com a versão PHP especificada. Agora você pode hospedar uma variedade de aplicativos e estruturas PHP, como Joomla, em seu servidor.
Se ainda não o fez, você pode configurar a segurança TLS em seu servidor web e habilitar HTTP/3 sobre QUIC para fazer o melhor uso do servidor web OpenLiteSpeed. Confira o guia para configurar o Let's Encrypt SSL no OpenLiteSpeed e, em seguida, consulte a seção Ativar HTTP/3 sobre QUIC na Etapa 6 deste guia.