Este post também está disponível em:
O OpenLiteSpeed é um Web Server Open Source moderno com recursos de alto desempenho e segurança de alto nível.
O servidor entende as regras de reescrita do Apache e possui recursos de aceleração de cache inteligente que permitem implementar o cache mais rápido em seu servidor.
Possui Suporte Múltiplo PHP embutido e também a LSAPI para aplicativos externos 2x mais rápidos; Além de tudo isso é possível habilitar vários processadores PHP para diferentes sites.
Principais recursos do OpenLiteSpeed
- Compatibilidade com as regras de reescrita do Apache.
- Painel de Administração Web.
- Arquitetura orientada a eventos.
- Suporte a HTTP/3 & HTTP/2.
- Suporte a múltiplas versões PHP.
- Módulo Multi-Thread.
- LiteSpeed Cache.
- WAF(mod_security 3), Anti-DDoS, e Limite de largura de banda.
Neste post vamos abordar
- Configuração do Firewall UFW
- Instalação do OpenLiteSpeed
- Instalação do PHP 7.4 e extensões
- Instalação do MariaDB 10.4
- Correta configuração de vhost no OpenLiteSpeed para hospedar nosso primeiro domínio
- Instalação e configuração de SSL com Let´s Encrypt em seu domínio no OpenLiteSpeed
- Instalação do WordPress
Observação: Para melhor segurança e excelente desempenho, o SSL irá utilizar o novo TLS 1.3 e http a nova versão http/3.
Configuração do Firewall UFW
Vamos utilizar o Firewall padrão do Ubuntu 20.04. Vamos abrir as seguintes portas:
Porta: 80 tcp, 443 tcp/udp, 7080/tcp, 22/ssh
O UFW como padrão está inativo.
Por default o UFW está configurado para negar todas as conexões de entrada e permite apenas as conexões de saída, ou seja, ninguém externo conseguiria acessar seu servidor mas seus aplicativos conseguiriam acessar a rede externa.
Para evitar problemas vamos primeiro criar nossas regras, abrindo as portas que vamos utilizar.
ufw allow 80/tcp ufw allow 443/tcp ufw allow 443/udp ufw allow 7080/tcp ufw allow 22/tcp
Agora vamos habilitar o UFW. Digite y na pergunta
root@helpsysadmin:~# ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Feito! agora temos o UFW ativo e filtrando as portas que informamos.
Instalação do OpenLiteSpeed
Vamos instalar o OpenLiteSpeed através do Repositório
wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | bash
Atualize a lista de repositório e instale o OpenLiteSpeed
apt update apt install openlitespeed -y
Após a instalação vamos modificar a senha. Existem duas formas de fazer isso.
A primeira é utilizar o painel do OpenLiteSpeed e com o usuário e senha padrã(usuario: admin senha: 123456) alterar sua senha.
A Segunda é a que eu recomendo pelo menos conhecer. Este método é muito útil se um dia perder a senha do admin. Através do shell siga os passos abaixo
cd /usr/local/lsws/admin/misc ./admpass.sh
Em
User name [admin]: deixe em branco apenas dê enter
a seguir informe duas vezes a senha que deseja utilizar .
Este método é muito útil se um dia perder a senha da administração.
Para Acessar a administração do OpenLiteSpeed utilize: https://ipdoseuservidor:7080
Instalação do PHP 7.4 e extensões
Como padrão, o OpenLiteSpeed instala o PHP 7.3.
Para efeitos didáticos e melhorias, vamos instalar o PHP 7.4 e configurá-lo como padrão no OpenLiteSpeed.
Instale o PHP 7.4 e extensões
apt install -y lsphp74 lsphp74-apcu lsphp74-common lsphp74-curl lsphp74-dbg lsphp74-dev lsphp74-igbinary lsphp74-imagick lsphp74-imap lsphp74-intl lsphp74-ioncube lsphp74-json lsphp74-ldap lsphp74-memcached lsphp74-modules-source lsphp74-msgpack lsphp74-mysql lsphp74-opcache lsphp74-pear lsphp74-pgsql lsphp74-pspell lsphp74-redis lsphp74-snmp lsphp74-sqlite3 lsphp74-sybase lsphp74-tidy
Instalação do MariaDB 10.4
Instalação do repositório do MariaDB 10.4
apt-get install software-properties-common dirmngr apt-transport-https apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://espejito.fder.edu.uy/mariadb/repo/10.4/ubuntu focal main'
Instalação do MariaDB 10.4
apt update apt install mariadb-server
Execute o script para segurança do MariaDB
mysql_secure_installation
Enter current password for root (enter for none): ( PRESSIONE ENTER ) Set root password? [Y/n] Y New password: Digite a senha desejada para o root do mariadb Re-enter new password: Digite novamente a senha para o root do mariadb Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Habilitar e iniciar o MariaDB
systemctl enable mariadb systemctl start mariadb systemctl status mariadb
Configuração de vhost no OpenLiteSpeed para hospedar nosso primeiro domínio
Neste passo, precisamos de um domínio que iremos apontá-lo para o IP de nosso servidor. Em nosso exemplo estamos utilizando um domínio “helpsysadmin.ml” que utiliza os serviços do cloudflare.
Em seu provedor de DNS crie uma entrada tipo A do nome do seu domínio para o IP de seu servidor OpenLiteSpeed e outra entrada CNAME www para o nome de seu domínio.
Criando Virtual Host no OpenLiteSpeed
Acesse a administração do OpenLiteSpeed https://ipdoseuservidor:7080 e a seguir Virtual Hosts, clique no ícone Add
Adicione a configuração abaixo
Variáveis | Valor |
Virtual Host Name | helpsysadmin.ml |
Virtual Host Root | $SERVER_ROOT/helpsysadmin.ml/ |
Config File | $SERVER_ROOT/conf/vhosts/$VH_NAME/helpsysadmin.ml.conf |
Follow Symbolic Link | Yes |
Enable Scripts/ExtApps | Yes |
Restrained | Yes |
ExtApp Set UID Mode | Server UID |
No topo da página clique em save. Você verá uma mensagem informando que o arquivo .conf não existe. Abaixo haverá a opção para criar o arquivo .conf onde deverá clicar “CLICK TO CREATE” a seguir irá conseguir salvar esta parte.
Quando clicamos em “CLICK TO CREATE” Openlitespeed cria um arquivo de configuração de host virtual que nos permite salvar as configurações
Uma vez que nosso virtual host foi criado, vá novamente em Virtual Hosts –> clique no Virtual Host (helpsysadmin.ml) –> selecione a aba General e modifique as configurações como mostrado abaixo.
Variáveis | Valor |
Document Root | $VH_ROOT/html/ |
Domain Name | helpsysadmin.ml |
Enable Compression | Yes |
Salve as alterações
Novamente vá em Virtual Hosts > clique em seu Virtual Host (helpsysadmin.ml) –> General e edite Index Files
Variáveis | Valor |
Use Server Index Files | No |
Index Files | index.html, index.php |
Auto Index | No |
Auto Index URI |
Novamente vá em Virtual Hosts > clique em seu Virtual Host (helpsysadmin.ml) –> Log e edite Virtual Host Log
Variáveis | Valor |
Use Server’s Log | Yes |
File Name | $VH_ROOT/logs/error.log |
Log Level | ERROR |
Rolling Size (bytes) | 10M |
Novamente vá em Virtual Hosts > clique em seu Virtual Host (helpsysadmin.ml) –> Log e edite Access Log
Variáveis | Valor |
Log Control | Own Log File |
Piped Logger | |
Log Format | |
Log Headers | |
Rolling Size (bytes) | 10M |
Keep Days | 30 |
Bytes log | |
Compress Archive | Yes |
Após criarmos um Virtual Host para nosso domínio, precisamos mapeá-lo para que possamos acessa-lo ao final.
Para fazer isso, vá em Listeners, vamos criar dois registro, um será responsável em configurar nosso domínio na porta 80 , o outro na porta segura 443.
Localize o menu “Listener List” e a direita clique no sinal de “+” para adicionarmos nosso primeiro Listerner.
Preencha os campos conforme a tabela
Variável | Valor |
Listener Name | Porta80 |
IP Address | ANY |
Port | 80 |
Binding | |
Secure | No |
Notes |
Agora adicione um novo Listener para a porta 443 conforme abaixo
Variável | Valor |
Listener Name | Porta443 |
IP Address | ANY |
Port | 443 |
Binding | |
Secure | Yes |
Notes |
Neste ponto temos os Listerners para a porta 80 e 443. Clique no nome de um dos Listernes que você criou, a seguir em “Virtual Host Mappings” clique no sinal “+“.
Na próxima tela em Virtual Host * selecione o nome do seu domínio e abaixo em Domains digite novamente o nome do seu domínio sem www ou http
Execute os mesmos passos com o Listener Porta443 que você criou anteriormente.
Criando pastas para logs e site
Acesse o SSH do seu servidor e digite(substitua o domínio informado pelo que configurou no OpenLiteSpeed)
mkdir /usr/local/lsws/helpsysadmin.ml/ mkdir /usr/local/lsws/helpsysadmin.ml/{html,logs}
Antes de prosseguirmos vamos reiniciar o OpenLiteSpeed e instalar um certificado SSL Let´s Encrypt para o domínio.
É importante que seu domínio esteja apontando para o IP do seu servidor como informamos no princípio deste post
Acesse o painel e reinicie o OLS
Acesse o SSH do seu servidor e instale o certbot
apt install certbot -y
Execute o certbot e responda as perguntas conforme abaixo adaptando para seu domínio
certbot certonly How would you like to authenticate with the ACME CA? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Spin up a temporary webserver (standalone) 2: Place files in webroot directory (webroot) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): helpsysadmin.ml Input the webroot for helpsysadmin.ml: /usr/local/lsws/helpsysadmin.ml/html
Se tudo deu certo, você verá uma mensagem informando que Certificado e a Key foram criados, guarde estas informações. Vamos utilizá-las a seguir
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/helpsysadmin.ml/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/helpsysadmin.ml/privkey.pem Your cert will expire on 2021-04-27. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Volte ao painel do OpenLiteSpeed em Virtual Hosts >> helpsysadmin.ml e selecione a aba SSL.
Edite SSL Private Key & Certificate
Private Key File é o segundo resultado quando solicitou o certificado
Certificate File é o primeiro resultado quando solicitou o certificado
Após salvar as alterações continue na aba SSL, vamos fazer algumas alterações e melhorias
Edite SSL Protocol
Variável | Valor |
Protocol Version | TLS v1.2 TLS v1.3 |
Ciphers | |
Enable ECDH Exchange | |
Enable DH Key Exchange | |
DH Parameter |
Edite Security
Variável | Valor |
SSL Renegotiation ProtectionHTTP/2SSL Renegotiation Protection | Yes |
Enable Session Cache | Yes |
Enable Session Tickets | Yes |
Enable SPDY/HTTP2/HTTP3 | HTTP/3 |
Enable QUIC | Yes |
Como este é o primeiro domínio com certificado SSL precisaremos repetir estes passos em Listeners, a seguir, clique em Porta443 e acesse a aba SSL.
Preencha os campos exatamente como fez em Virtual Hosts anteriormente. Ao final salve e dê um restart no OpenLiteSpeed pelo painel.
Nota: Nos próximos domínios que hospedar, será necessário informar as configurações de SSL apenas no Virtual Host referente ao domínio.
Neste ponto se acessarmos nosso domínio com https veremos uma página 404 pois não enviamos nenhum arquivo a nossa conta.
Nós poderíamos a partir deste ponto abordar como instalar o WordPress, pois como informei no princípio, o OpenLiteSpeed instala como padrão o php 7.3 com algumas extensões.
Já instalamos o php 7.4 com extensões importantes para o WordPress, agora vamos configurá-lo no OpenLiteSpeed.
Acesse o painel do OpenLiteSpeed >> Server Configuration ,
selecione External App e em External Applications clique no simbolo de “+” a seguir em Type Selecione LiteSpeed SAPI App
A seguir clique no ícone Próximo
Preencha os campos conforme a tabela abaixo:
Variável | Valor |
Name * | lsphp74 |
Address * | uds://tmp/lshttpd/lsphp74.sock |
Notes | |
Max Connections * | 10 |
Environment | PHP_LSAPI_CHILDREN=10 LSAPI_AVOID_FORK=200M |
Initial Request Timeout (secs) * | 60 |
Retry Timeout (secs) * | 0 |
Persistent Connection | Yes |
Connection Keep-Alive Timeout | |
Response Buffering * | No |
Start By Server * | Yes (Through CGI Daemon) |
Command | lsphp74/bin/lsphp |
Back Log | 100 |
Instances | 1 |
Run As User | |
Run As Group | |
umask | |
Run On Start Up | |
Max Idle Time | |
Priority | 0 |
Memory Soft Limit (bytes) | 2047M |
Memory Hard Limit (bytes) | 2047M |
Process Soft Limit | 1400 |
Process Hard Limit | 1400 |
Salve as alterações e clique na aba “Script Handler” . Nesta aba atualmente está configurado para roda o php 7.3. Vamos fazer modificações para que nossas aplicações utilizem a partir de agora o php 7.4 que acabamos de configurar.
Na coluna Actions, localize e clique no ícone “Edit”
Em “Handler Name *” modifique para lsphp74 e a seguir clique em “Save” e restart o OpenLiteSpeed para que as configurações sejam ativadas.
O próximo passo é o WordPress. Antes de sairmos do OpenLiteSpeed , vamos ativar o suporte a .htacess que será muito importante no WordPress.
Em Server Configuration > General
Localize e edite Rewrite Control
Altere Auto Load from .htaccess para Yes e salve a alteração.
Agora, no menu Virtual Host, selecione o registro referente a seu domínio.
Localize a aba “Rewrite” e edite “Rewrite Control“
Variável | Valor |
Enable Rewrite | Yes |
Auto Load from .htaccess | Yes |
Log Level |
Salve as alterações, reinicie o OpenLiteSpeed.
Instalando o WordPress e o Plugin Litespeed LS CACHE
Acesse o ssh como root no seu servidor e a seguir o diretório onde ficarão os arquivos do seu site. Salve os arquivos do wordpress
cd /usr/local/lsws/helpsysadmin.ml/html/ wget https://br.wordpress.org/latest-pt_BR.tar.gz tar -xzvf latest-pt_BR.tar.gz mv wordpress/* .
Criando banco de dados e usuário para o WordPress com MariaDB
Acesse o MariaDB com o usuário root e senha que você definiu quando instalou o MariaDB acima
mysql -u root -pSENHAROOT
Crie o banco de dados
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
A seguir vamos criar um usuário (wordpress_user) com todas as permissões neste banco de dados e definir a senha. Sugiro utilizar um nome de usuário e senha seguro. Guarde estas informações, iremos utiliza-las mais a frente.
GRANT ALL ON wordpress.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'senha';
Temos um banco de dados e um usuário com acesso total a este banco para utilizarmos no WordPress. Agora precisamos executar o comando a seguir para recarregar as tabelas e para que a instância atual do MariaDB saiba sobre as alterações que você fez:
FLUSH PRIVILEGES;
Agora, vamos sair do MariaDB.
EXIT;
Volte ao diretório onde estão os arquivos do WordPress, crie o arquivo .htaccess, altere o usuário e grupo dos arquivos para nobody e nogroup. Como padrão o OpenLiteSpeed executa como “user(nobody) : group(nogroup)”, para que não tenhamos problemas de permissões estas alterações são necessárias
cd /usr/local/lsws/helpsysadmin.ml/html/ touch .htaccess chown nobody.nogroup .htaccess chown -R nobody.nogroup
Acesse em seu navegador web o domínio que configurou.
Exemplo: https://helpsysadmin.ml
Você verá uma página explicando o que virá a seguir na configuração do WordPress. Clique em “Vamos lá“
Na página a seguir preencha o nome do banco de dados que criou, usuário e senha. Clique em próximo.
Será exibido uma mensagem informando que não foi possível criar o arquivo wp-config.php e no quadro abaixo o conteúdo que deverá ter este arquivo. Copie o conteúdo, volte para o local de seus arquivos, crie o wp-config.php e cole o conteúdo anterior.. Salve as alterações e volte a configuração do seu domínio em seu browser
cd /usr/local/lsws/helpsysadmin.ml/html nano wp-config.php
Nesta parte você deverá informar o nome do usuário admin, senha e e-mail, clique em prosseguir!
Pronto seu WordPress está instalado.
Agora gostaria de abordar de forma breve um plug-in poderoso para usuários Openlitespeed e Litespeed. Ele é um excelente plugin com recursos básicos e avançados. Sugiro passar um tempo descobrindo o que funciona ou não para seu site. Localize o plug-in LiteSpeed Cache.
Este foi um longo post, mas achei necessário ser assim para abordar estes assuntos com qualidade e não apenas mais um na Web. Espero que tenham gostado e deixe comentários abaixo.