Pesquisa de site

Como instalar o Lighttpd com PHP, MariaDB e Lets Encrypt SSL no Debian 10


Nesta página

  1. Requisitos
  2. Primeiros passos
  3. Instalar o Lighttpd
  4. Instalar servidor MariaDB
  5. Instalar PHP e PHP-FPM
  6. Criar Host Virtual Lighttpd
  7. Proteja Lighttpd com Lets Encrypt Free SSL
  8. Acessar a Interface da Web do Lighttpd
  9. Conclusão

O Lighttpd é um servidor web gratuito, de código aberto e de alta velocidade, especialmente projetado para ambientes de velocidade crítica. Requer baixo consumo de memória em comparação com outros servidores da Web, como Apache e Nginx e especialmente rápido para executar aplicativos AJAX. Lighttpd também nos permite hospedar aplicações web escritas em outra linguagem de programação usando as interfaces FastCGI, SCGI e CGI. Lighttpd é a melhor escolha para você se o seu servidor estiver com problemas de carga.

Neste tutorial, aprenderemos como instalar o Lighttpd no Debian 10 com suporte a PHP-FPM e MariaDB e protegeremos o servidor web com um certificado Lets Encrypt SSL.

Requisitos

  • Um servidor rodando Debian 10.
  • Uma senha root é configurada para o seu servidor.

Usarei o nome de domínio example.com neste tutorial. Substitua example.com em todos os nomes de arquivo e definições de configuração pelo seu próprio nome de domínio abaixo.

Começando

Antes de começar, você precisará atualizar seu sistema com a versão mais recente. Você pode fazer isso executando o seguinte comando:

apt-get update -y
apt-get upgrade -y

Depois que o servidor for atualizado, reinicie o servidor para aplicar as alterações.

Instalar o Lighttpd

Por padrão, o Lighttpd está disponível no repositório padrão do Debian 10. Você pode instalá-lo apenas executando o seguinte comando:

apt-get install lighttpd -y

Quando a instalação estiver concluída, inicie o serviço Lighttpd e habilite-o para iniciar após a reinicialização do sistema com o seguinte comando:

systemctl start lighttpd
systemctl enable lighttpd

Você também pode verificar o status do Lighttpd com o seguinte comando:

systemctl status lighttpd

Você deve obter a seguinte saída:

? lighttpd.service - Lighttpd Daemon
   Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-09-06 02:09:35 EDT; 29s ago
 Main PID: 4445 (lighttpd)
    Tasks: 1 (limit: 1138)
   Memory: 1.4M
   CGroup: /system.slice/lighttpd.service
           ??4445 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

Sep 06 02:09:35 debian systemd[1]: Starting Lighttpd Daemon...
Sep 06 02:09:35 debian systemd[1]: Started Lighttpd Daemon.
Sep 06 02:09:36 debian systemd[1]: /lib/systemd/system/lighttpd.service:6: PIDFile= references path below legacy directory /var/run/, updating 
lines 1-12/12 (END)

Depois de terminar, você pode prosseguir para a próxima etapa.

Instalar servidor MariaDB

Você pode instalar o servidor MariaDB executando o seguinte comando:

apt-get install mariadb-server mariadb-client -y

Depois de instalado, você precisará proteger a instalação do MariaDB. Você pode protegê-lo executando o seguinte script:

mysql_secure_installation
Answer all the questions as shown below:
Change the root password? [Y/n] n
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

Depois de terminar, você pode prosseguir para a próxima etapa.

Instalar PHP e PHP-FPM

Em seguida, você precisará instalar PHP, PHP-FPM e FastCGI em seu sistema. Por padrão, o Debian 10 vem com o PHP versão 7.3. Você pode instalá-lo apenas executando o seguinte comando:

apt-get install php php-cgi php-fpm php-mysql -y

Depois que todos os pacotes estiverem instalados, você precisará editar o arquivo php.ini e definir cgi.fix_pathinfo como 1. Você pode fazer isso com o seguinte comando:

nano /etc/php/7.3/fpm/php.ini

Altere a seguinte linha:

cgi.fix_pathinfo=1

Salve e feche o arquivo quando terminar.

Por padrão, o PHP aponta para o socket UNIX /var/run/php/php7.3-fpm.sock. Portanto, você precisará configurar o pool PHP-FPM para definir que o PHP escute o soquete TCP.

Você pode fazer isso editando o arquivo /etc/php/7.3/fpm/pool.d/www.conf:

nano /etc/php/7.3/fpm/pool.d/www.conf

Encontre a seguinte linha:

listen = /run/php/php7.3-fpm.sock

E substitua-o pela seguinte linha:

listen = 127.0.0.1:9000

Salve e feche o arquivo quando terminar. Em seguida, reinicie o serviço PHP-FPM para aplicar as alterações de configuração:

systemctl restart php7.3-fpm

Em seguida, você precisará modificar o arquivo 15-fastcgi-php.conf:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf

Encontre as seguintes linhas:

"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php.socket",

E substitua-os pelo seguinte:

"host" => "127.0.0.1",
"port" => "9000",

Salve e feche o arquivo quando terminar. Em seguida, habilite os módulos FastCGI e FastCHI-PHP com os seguintes comandos:

lighty-enable-mod fastcgi
lighty-enable-mod fastcgi-php

Por fim, reinicie o serviço Lighttpd para aplicar as alterações:

systemctl restart lighttpd

Criar Host Virtual Lighttpd

Em seguida, você precisará criar um novo arquivo de host virtual para testar o PHP com Lighttpd. Você pode criá-lo com o seguinte comando:

nano /etc/lighttpd/conf-available/example.com.conf

Adicione as seguintes linhas:

$HTTP["host"] == "www.example.com" {
    server.document-root = "/var/www/html/"
    server.errorlog      = "/var/log/lighttpd/example.com-error.log"
}

Salve e feche o arquivo quando terminar. Em seguida, habilite o host virtual com o seguinte comando:

ln -s /etc/lighttpd/conf-available/example.com.conf /etc/lighttpd/conf-enabled/

Em seguida, crie um arquivo index.php de amostra no diretório raiz do documento Lighttpd com o seguinte comando:

nano /var/www/html/index.php

Adicione a seguinte linha:

<?php phpinfo(); ?>

Salve e feche o arquivo. Em seguida, altere a propriedade do diretório raiz do documento Lighttpd para www-data com o seguinte comando:

chown -R www-data:www-data /var/www/html/

Por fim, reinicie o serviço Lighttpd para aplicar todas as alterações de configuração:

systemctl restart lighttpd

Secure Lighttpd com Lets Encrypt Free SSL

Primeiro, você precisará instalar a ferramenta Certbot para proteger seu servidor da Web com o Let's Encrypt. Por padrão, a versão mais recente do Certbot não está disponível no repositório padrão do Debian 10.

Você pode adicionar o repositório Certbot com o seguinte comando:

apt-get install software-properties-common
add-apt-repository ppa:certbot/certbot

Em seguida, atualize o repositório e instale o Certbot com o seguinte comando:

apt-get update -y
apt-get install certbot -y

Em seguida, crie um certificado Let's Encrypt com o seguinte comando:

certbot certonly --webroot -w /var/www/html/ -d www.example.com

Você será solicitado a fornecer seu endereço de e-mail e aceitar o termo de licença conforme mostrado abaixo:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Depois que os certificados forem baixados com sucesso, você deverá ver a seguinte saída:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-12-06. 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

Em seguida, você precisará combinar o certificado e a chave privada em um arquivo. Você pode fazer isso com o seguinte comando:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/letsencrypt/live/example.com/web.pem

Em seguida, você precisará editar o arquivo de host virtual Lighttpd e definir o caminho do certificado Lets Encrypt SSL.

Você pode fazer isso com o seguinte comando:

nano /etc/lighttpd/conf-enabled/example.com.conf

Altere o arquivo como mostrado abaixo:

$HTTP["host"] == "www.example.com" {
    server.document-root = "/var/www/html/"
}

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/example.com/web.pem" # Combined Certificate
ssl.ca-file = "/etc/letsencrypt/live/example.com/chain.pem" # Root CA
server.name = "www.example.com" # Domain Name OR Virtual Host Name
server.document-root = "/var/www/html/" # Document Root
server.errorlog = "/var/log/lighttpd/example.com_error.log"
accesslog.filename = "/var/log/lighttpd/example.com_access.log"
}

$HTTP["scheme"] == "http" {
$HTTP["host"] == "www.example.com" { # HTTP URL
url.redirect = ("/.*" => "https://www.example.com$0") # Redirection HTTPS URL
}
}

Salve e feche o arquivo. Em seguida, reinicie o serviço Lighttpd para aplicar as alterações de configuração:

systemctl restart lighttpd

Acesse a Interface da Web do Lighttpd

Lighttpd é instalado e configurado com suporte PHP e PHP-FPM. Agora, é hora de testá-lo.

Abra seu navegador da Web e digite a URL https://www.example.com. Você será redirecionado para a seguinte página:

A página acima indica que o PHP está funcionando bem com FastCGI.

Conclusão

Parabéns! você instalou e configurou com sucesso o servidor web Lighttpd com PHP-FPM e suporte FastCGI no Debian 10. Agora você pode hospedar seu próprio servidor web com facilidade. Para obter mais informações, visite a página de documentação oficial do Lighttpd em Lighttpd Doc.

Artigos relacionados: