Como instalar o Lighttpd com PHP, MariaDB e Lets Encrypt SSL no Debian 10
Nesta página
- Requisitos
- Primeiros passos
- Instalar o Lighttpd
- Instalar servidor MariaDB
- Instalar PHP e PHP-FPM
- Criar Host Virtual Lighttpd
- Proteja Lighttpd com Lets Encrypt Free SSL
- Acessar a Interface da Web do Lighttpd
- 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.