Servidor Web · 8 min read · Oct 31, 2025
Instalando Lighttpd com PHP 7 (PHP-FPM) e MySQL 5.7 no Ubuntu 16.04 LTS
Lighttpd é um servidor web seguro, rápido e compatível com padrões, projetado para ambientes críticos em termos de velocidade. Este tutorial mostra como você pode instalar o Lighttpd em um servidor Ubuntu 16.04 com suporte a PHP 7 (através do PHP-FPM) e MySQL 5.7. PHP-FPM (FastCGI Process Manager) é uma implementação alternativa do PHP FastCGI com alguns recursos adicionais úteis para sites de qualquer tamanho, especialmente sites mais movimentados. Eu uso o PHP-FPM neste tutorial em vez do spawn-fcgi do Lighttpd.
1 Nota Preliminar
Neste tutorial, eu uso o nome do host server1.example.com com o endereço IP 192.168.1.100. Essas configurações podem diferir para você, então você deve substituí-las onde apropriado.
Estou executando todos os passos deste tutorial com privilégios de root, então certifique-se de que você está logado como root:
sudo -s2 Instalando MySQL 5.7
Primeiro, instalamos o MySQL assim:
apt-get -y install mysql-server mysql-clientVocê será solicitado a fornecer uma senha para o usuário root do MySQL - essa senha é válida para o usuário root@localhost, bem como para [email protected], então não precisamos especificar uma senha root do MySQL manualmente mais tarde:
Nova senha para o usuário “root” do MySQL: <– sua senha root sql Repita a senha para o usuário “root” do MySQL: <– sua senha root sql

O instalador definiu uma senha root do MySQL, mas há mais algumas configurações que devem ser alteradas para uma instalação segura do MySQL. Isso pode ser feito com o comando mysql_secure_installation.
mysql_secure_installationO comando é interativo:
root@server1:~# mysql_secure_installationProteger a implantação do servidor MySQL.Digite a senha para o usuário root: <-- Digite a senha root do MySQLO PLUGIN VALIDATE PASSWORD pode ser usado para testar senhas
e melhorar a segurança. Ele verifica a força da senha
e permite que os usuários definam apenas aquelas senhas que são
suficientemente seguras. Você gostaria de configurar o plugin VALIDATE PASSWORD?Pressione y|Y para Sim, qualquer outra tecla para Não: <-- Pressione y se você quiser essa função ou pressione Enter caso contrário.
Usando a senha existente para root.
Mudar a senha para root? ((Pressione y|Y para Sim, qualquer outra tecla para Não) : <-- Pressione enter... pulando.
Por padrão, uma instalação do MySQL tem um usuário anônimo,
permitindo que qualquer pessoa faça login no MySQL sem ter que ter
uma conta de usuário criada para ela. Isso é destinado apenas para
testes, e para tornar a instalação um pouco mais suave.
Você deve removê-los antes de passar para um ambiente de produção.Remover usuários anônimos? (Pressione y|Y para Sim, qualquer outra tecla para Não) : <-- y
Sucesso.
Normalmente, o root deve ser permitido conectar-se apenas de
'localhost'. Isso garante que alguém não possa adivinhar a
senha root pela rede.Desabilitar login remoto para root? (Pressione y|Y para Sim, qualquer outra tecla para Não) : <-- y
Sucesso.Por padrão, o MySQL vem com um banco de dados chamado 'test' que
qualquer um pode acessar. Isso também é destinado apenas para testes,
e deve ser removido antes de passar para um ambiente de produção.
Remover o banco de dados de teste e o acesso a ele? (Pressione y|Y para Sim, qualquer outra tecla para Não) : <-- y
- Removendo banco de dados de teste...
Sucesso.- Removendo privilégios no banco de dados de teste...
Sucesso.Recarregar as tabelas de privilégios garantirá que todas as mudanças
feitas até agora tenham efeito imediato.Recarregar tabelas de privilégios agora? (Pressione y|Y para Sim, qualquer outra tecla para Não) : <-- y
Sucesso.Tudo pronto!3 Instalando Lighttpd
Lighttpd está disponível como um pacote do Ubuntu. Portanto, podemos instalá-lo diretamente com apt do repositório de pacotes do Ubuntu Xenial Xerus:
apt-get -y install lighttpdAgora dirija seu navegador para http://192.168.1.100/, e você deve ver a página de placeholder do Lighttpd:

O diretório raiz do documento padrão do Lighttpd é /var/www/html no Ubuntu, e o arquivo de configuração é /etc/lighttpd/lighttpd.conf. Configurações adicionais são armazenadas em arquivos no diretório /etc/lighttpd/conf-available - essas configurações podem ser habilitadas com o comando lighttpd-enable-mod que cria um symlink do diretório /etc/lighttpd/conf-enabled para o arquivo de configuração apropriado em /etc/lighttpd/conf-available. Você pode desabilitar configurações com o comando lighttpd-disable-mod.
4 Instalando PHP 7.0
Podemos fazer o PHP funcionar no Lighttpd através do PHP-FPM que instalamos assim:
apt-get -y install php7.0-fpm php7.0PHP-FPM é um processo daemon (com o script init php5-fpm) que executa um servidor FastCGI no socket /var/run/php/php7.0-fpm.sock.
5 Configurando Lighttpd e PHP 7.0
Para habilitar o PHP no Lighttpd, devemos modificar /etc/php/7.0/fpm/php.ini e descomentar a linha cgi.fix_pathinfo=1:
nano /etc/php/7.0/fpm/php.ini[...]
; cgi.fix_pathinfo fornece suporte *real* para PATH_INFO/PATH_TRANSLATED para CGI. O comportamento anterior do PHP era definir PATH_TRANSLATED como SCRIPT_FILENAME, e não entender o que é PATH_INFO. Para mais informações sobre PATH_INFO, veja as especificações do cgi. Definir isso como 1 fará com que o PHP CGI corrija seus caminhos para se conformar à especificação. Um valor de zero faz com que o PHP se comporte como antes. O padrão é 1. Você deve corrigir seus scripts para usar SCRIPT_FILENAME em vez de PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]O arquivo de configuração do Lighttpd para PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf é adequado para uso com spawn-fcgi, no entanto, queremos usar o PHP-FPM, portanto, criamos um backup do arquivo (chamado 15-fastcgi-php.conf.bak) e modificamos 15-fastcgi-php.conf da seguinte forma:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak
nano 15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Iniciar um servidor FastCGI para php (precisa do pacote php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"socket" => "/var/run/php/php7.0-fpm.sock",
"broken-scriptfilename" => "enable"
))
)Para habilitar a configuração fastcgi, execute os seguintes comandos:
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-phpIsso cria os symlinks /etc/lighttpd/conf-enabled/10-fastcgi.conf que aponta para /etc/lighttpd/conf-available/10-fastcgi.conf e /etc/lighttpd/conf-enabled/15-fastcgi-php.conf que aponta para /etc/lighttpd/conf-available/15-fastcgi-php.conf:
ls -l /etc/lighttpd/conf-enabledroot@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Abr 27 11:26 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Abr 27 11:26 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
lrwxrwxrwx 1 root root 42 Abr 21 11:10 90-javascript-alias.conf -> ../conf-available/90-javascript-alias.conf
root@server1:/etc/lighttpd/conf-available#Então recarregamos o Lighttpd:
service lighttpd force-reloadNota: Se você receber erros de localidade, pode remover o erro usando
apt-get -y install language-pack-en-base
dpkg-reconfigure locales6 Testando PHP 7.0 / Obtendo Detalhes Sobre Sua Instalação do PHP
O diretório raiz do site padrão é /var/www/html. Agora criaremos um pequeno arquivo PHP (info.php) nesse diretório e o chamaremos em um navegador. O arquivo exibirá muitos detalhes úteis sobre nossa instalação do PHP, como a versão do PHP instalada.
nano /var/www/html/info.phpAgora chamamos esse arquivo em um navegador (por exemplo, http://192.168.1.100/info.php):

Como você vê, o PHP 7.0 está funcionando, e está funcionando através do FPM/FastCGI, como mostrado na linha do Server API. Se você rolar para baixo, verá todos os módulos que já estão habilitados no PHP5. O MySQL não está listado lá, o que significa que ainda não temos suporte ao MySQL no PHP.
7 Obtendo suporte ao MySQL no PHP
Para obter suporte ao MySQL no PHP, podemos instalar o pacote php7.0-mysql. É uma boa ideia instalar alguns outros módulos do PHP também, pois você pode precisar deles para suas aplicações. Você pode procurar módulos PHP disponíveis assim:
apt-cache search php7.0Escolha os que você precisa e instale-os assim:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettextAPCu é uma extensão para o módulo Opcache do PHP que vem com o PHP 7, ela adiciona alguns recursos de compatibilidade para software que suporta o cache APC (por exemplo, plugins de cache do Wordpress).
APCu pode ser instalado da seguinte forma:
apt-get -y install php-apcuAgora recarregue o PHP-FPM:
service php7.0-fpm reloadAgora recarregue http://192.168.1.100/info.php em seu navegador e role para baixo até a seção de módulos novamente. Você deve agora encontrar muitos novos módulos lá, incluindo o módulo mysqli e mysqlnd:

8 phpMyAdmin
phpMyAdmin é uma interface web através da qual você pode gerenciar seus bancos de dados MySQL. É uma boa ideia instalá-lo:
apt-get -y install phpmyadminVocê verá as seguintes perguntas:
Servidor web para reconfigurar automaticamente: <-- lighttpd
Configurar banco de dados para phpmyadmin com dbconfig-common? <-- Sim
Senha da aplicação MySQL para phpmyadmin: <-- Pressione EnterSe você receber o seguinte erro:
Execute /etc/init.d/lighttpd force-reload para habilitar as mudanças
dpkg: erro ao processar o pacote phpmyadmin (--configure):
sublprocesso do script de pós-instalação instalado retornou o status de saída de erro 2
E: Sub-processo /usr/bin/dpkg retornou um código de erro (1)Então execute esses comandos:
/etc/init.d/lighttpd force-reload
apt-get -y install phpmyadminDepois disso, você pode acessar o phpMyAdmin em http://192.168.1.100/phpmyadmin/:

9 Fazendo o PHP-FPM usar uma Conexão TCP (Opcional)
Por padrão, o PHP-FPM está ouvindo no socket /var/run/php/php7.0-fpm.sock. Também é possível fazer com que o PHP-FPM use uma conexão TCP. Para fazer isso, abra /etc/php/7.0/fpm/pool.d/www.conf…
nano /etc/php/7.0/fpm/pool.d/www.conf… e faça a linha listen ficar assim:
[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]Isso fará com que o PHP-FPM ouça na porta 9000 no IP 127.0.0.1 (localhost). Certifique-se de usar uma porta que não esteja em uso no seu sistema.
Então recarregue o PHP-FPM:
service php7.0-fpm reloadEm seguida, abra o arquivo de configuração do PHP do Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf e substitua a linha do socket por linhas de host e porta:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Iniciar um servidor FastCGI para php (precisa do pacote php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)Finalmente, recarregue o Lighttpd:
service lighttpd force-reload10 Links
- Lighttpd: http://www.lighttpd.net/
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Ubuntu: http://www.ubuntu.com/
- phpMyAdmin: http://www.phpmyadmin.net/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.