Pesquisa de site

Como instalar Lighttpd com PHP e grátis Vamos criptografar SSL no Debian 11


Lighttpd é um servidor web simples, rápido e seguro. É muito pequeno e não requer muita memória e uso de CPU, o que o torna um dos melhores servidores para hospedar qualquer aplicativo. Ele foi projetado para ambientes de missão crítica. Ele pode lidar com até 10.000 conexões paralelas em um único servidor. Ele oferece muitos recursos, incluindo reescrita de URL, compactação de saída, mecanismo de evento, FastCGI, SCGI, Auth e muito mais.

Neste tutorial, mostraremos como instalar Lighttpd com PHP e Let's Encrypt SSL no Debian 11.

Pré-requisitos

  • Um servidor rodando Debian 11.
  • Um nome de domínio válido apontado com o IP do servidor.
  • Uma senha root é configurada no servidor.

Instalar Lighttpd

Por padrão, o pacote Lighttpd está incluído no repositório oficial do Debian 11. Você pode instalá-lo executando o seguinte comando:

apt-get install lighttpd -y

Depois que o Lighttpd estiver instalado, inicie o serviço Lighttpd e habilite-o para iniciar na reinicialização do sistema:

systemctl start lighttpd
systemctl enable lighttpd

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

systemctl status lighttpd

Você obterá a seguinte saída:

? lighttpd.service - Lighttpd Daemon
     Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:01:06 UTC; 12s ago
    Process: 4663 ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf (code=exited, status=0/SUCCESS)
   Main PID: 4668 (lighttpd)
      Tasks: 1 (limit: 2341)
     Memory: 932.0K
        CPU: 226ms
     CGroup: /system.slice/lighttpd.service
             ??4668 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

Feb 12 07:01:06 debian11 systemd[1]: Starting Lighttpd Daemon...
Feb 12 07:01:06 debian11 systemd[1]: Started Lighttpd Daemon.

Agora, abra seu navegador e acesse a página do Lighttpd usando o URL http://ip-do-seu-servidor. Você deverá ver a página de teste do Lighttpd na tela a seguir:

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

Instale PHP e PHP-FPM

Em seguida, execute o seguinte comando para instalar os pacotes PHP e PHP-FPM em seu sistema.

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

Após a instalação, edite o arquivo php.ini e defina cgi.fix_pathinfo como 1

nano /etc/php/7.4/fpm/php.ini

Altere a seguinte linha:

cgi.fix_pathinfo=1

Salve e feche o arquivo quando terminar.

Para fazer o Lighttpd funcionar com o PHP-FPM, você precisará substituir a configuração padrão do PHP-CGI e o soquete PHP-FPM:

Primeiro, edite o arquivo de configuração PHP-FPM:

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

Encontre a seguinte linha:

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

E substitua-o pela seguinte linha:

listen = 127.0.0.1:9000

Salve e feche o arquivo e reinicie o PHP-FPM para aplicar as alterações:

systemctl restart php7.4-fpm

Você também pode verificar o status do PHP-FPM usando o seguinte comando:

systemctl status php7.4-fpm

Você obterá a seguinte saída:

? php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:04:35 UTC; 1min 7s ago
       Docs: man:php-fpm7.4(8)
    Process: 15141 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=e>
   Main PID: 15138 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2341)
     Memory: 8.8M
        CPU: 54ms
     CGroup: /system.slice/php7.4-fpm.service
             ??15138 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ??15139 php-fpm: pool www
             ??15140 php-fpm: pool www

Feb 12 07:04:35 debian11 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Feb 12 07:04:35 debian11 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

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

Configurar Lighttpd para PHP-FPM

Em seguida, você precisará editar o arquivo de configuração Lighttpd e alterá-lo usando o Fast CGI:

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 os substituiu pelas seguintes linhas:

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

Salve e feche o arquivo e ative os módulos Fast CGI usando 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

Lighttpd também permite hospedar vários sites usando hospedagem virtual. Vamos criar um novo arquivo de configuração de host virtual para hospedar um site chamado test.example.com.

nano /etc/lighttpd/conf-available/test.conf

Adicione as seguintes linhas:

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

Salve e feche o arquivo e ative o host virtual com o seguinte comando:

ln -s /etc/lighttpd/conf-available/test.conf /etc/lighttpd/conf-enabled/

A seguir, crie um arquivo index.php:

nano /var/www/html/index.php

Adicione a seguinte linha:

<?php
phpinfo();
?>

Salve e feche o arquivo e defina a permissão e propriedade adequadas com o seguinte comando:

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

Em seguida, reinicie o serviço Lighttpd para aplicar as alterações:

systemctl restart lighttpd

Agora, abra seu navegador e verifique seu site usando o URL http://test.example.com. Você deverá ver a página de teste do PHP na tela a seguir:

Lighttpd seguro com Let's Encrypt

Lighttpd também permite proteger o site com Let's Encrypt SSL. Para fazer isso, primeiro instale o cliente Certbot com o seguinte comando:

apt-get install certbot -y

Em seguida, execute o seguinte comando para baixar o Let's Encrypt SSL para o seu site:

certbot certonly --webroot -w /var/www/html/ -d test.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): [email 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
Once the certificates are downloaded successfully, you should see the following output:

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

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

Você pode fazer isso com o seguinte comando:

nano /etc/lighttpd/conf-enabled/test.conf

Altere o arquivo conforme mostrado abaixo:

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

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/test.example.com/web.pem" 
ssl.ca-file = "/etc/letsencrypt/live/test.example.com/chain.pem"
server.name = "test.example.com" 
server.document-root = "/var/www/html/"
server.errorlog = "/var/log/lighttpd/example.com_error.log"
accesslog.filename = "/var/log/lighttpd/example.com_access.log"
}

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

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

systemctl restart lighttpd

Agora você pode acessar seu site com segurança usando o URL https://test.example.com.

Conclusão

Parabéns! você instalou com sucesso o Lighttpd com PHP e Let's Encrypt SSL no Debian 11. Agora você pode começar a implantar seu site usando o servidor web Lighttpd. Sinta-se à vontade para me perguntar se tiver alguma dúvida.

Artigos relacionados: