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.