Instalação de Servidor · 7 min read · Dec 23, 2025
Instalando Lighttpd com PHP (modo PHP-FPM) e MySQL ou MariaDB no Ubuntu 15.10
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 instalar o Lighttpd em um servidor Ubuntu 15.10 com suporte a PHP (através do PHP-FPM) e MySQL ou MariaDB. 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 for apropriado.
Estou executando todos os passos deste tutorial com privilégios de root, então certifique-se de que você está logado como root antes de prosseguir:
sudo su2 Instalando MySQL / MariaDB
O Ubuntu fornece pacotes para o servidor de banco de dados MySQL original (MySQL 5.6) e o fork do MySQL MariaDB (10). A maioria dos usuários prefere usar o MariaDB hoje, pois é um pouco mais rápido que o MySQL e o desenvolvimento avança mais rápido. Eu deixo a decisão sobre o que instalar para você aqui e explicarei ambas as opções. Siga as instruções no capítulo 2.1 ou 2.2, mas não ambos.
2.1 Instalação do MySQL
Instale o MySQL assim:
apt-get -y install mysql-server-5.6 mysql-client-5.6Você 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 [email protected], então não precisamos especificar uma senha de root do MySQL manualmente mais tarde:
Nova senha para o usuário “root” do MySQL: <– sua-senharoottmysql
Repita a senha para o usuário “root” do MySQL: <– sua-senharoottmysql
2.2 Instalação do MariaDB
Instale o MariaDB assim:
apt-get -y install mariadb-server mariadb-clientAgora definimos uma senha de root para o MariaDB.
mysql_secure_installationVocê será solicitado a responder estas perguntas:
Digite a senha atual para root (pressione enter para nenhum): <-- pressione enter
Definir senha de root? [Y/n] <-- y
Nova senha: <-- Digite a nova senha de root do MariaDB aqui
Reinsira a nova senha: <-- Repita a senha
Remover usuários anônimos? [Y/n] <-- y
Desabilitar login remoto do root? [Y/n] <-- y
Recarregar tabelas de privilégios agora? [Y/n] <-- y3 Instalando Lighttpd
O Lighttpd está disponível como um pacote do Ubuntu, portanto, podemos instalá-lo assim:
apt-get -y install lighttpdAgora direcione seu navegador para http://192.168.1.100/index.lighttpd.html, 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 5.6
Podemos fazer o PHP5 funcionar no Lighttpd através do PHP-FPM que instalamos assim:
apt-get -y install php5-fpm php5O PHP-FPM é um processo daemon (com a unidade de serviço systemd php5-fpm.service) que executa um servidor FastCGI no socket /var/run/php5-fpm.sock.
5 Configurando Lighttpd e PHP
Para habilitar o PHP5 no Lighttpd, devemos modificar /etc/php5/fpm/php.ini e descomentar a linha cgi.fix_pathinfo=1:
nano /etc/php5/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 o PHP se comportar 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-spawnfcgi.conf) e modificamos 15-fastcgi-php.conf da seguinte forma:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
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 php5-cgi)
fastcgi.server += ( ".php" =>
((
"socket" => "/var/run/php5-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 Nov 11 13:59 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Nov 11 13:59 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.confEntão recarregamos o Lighttpd:
service lighttpd force-reload6 Testando PHP5 / Obtendo Detalhes Sobre Sua Instalação do PHP5
O diretório raiz do site web 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ê pode ver, o PHP 5.6 está funcionando, e está funcionando através do FPM/FastCGI, como mostrado na linha Server API. Se você rolar mais 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 PHP5
Para obter suporte ao MySQL no PHP, podemos instalar o pacote php5-mysqlnd. Este é preferido em relação ao pacote php5-mysql pois contém um driver MySQL mais novo que suporta tanto MySQL quanto MariaDB. É uma boa ideia instalar alguns outros módulos PHP5 também, pois você pode precisar deles para suas aplicações. Você pode procurar por módulos PHP5 disponíveis assim:
apt-cache search php5Escolha os que você precisa e instale-os assim:
apt-get -y install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xslO Xcache é um cache de opcode PHP gratuito e aberto para armazenar em cache e otimizar o código intermediário PHP. É semelhante a outros caches de opcode PHP, como eAccelerator e APC. É fortemente recomendado ter um desses instalados para acelerar sua página PHP.
O Xcache pode ser instalado da seguinte forma:
apt-get -y install php5-xcacheAgora recarregue o PHP-FPM:
service php5-fpm reloadAgora recarregue http://192.168.1.100/info.php em seu navegador e role para baixo novamente até a seção de módulos. Você deve agora encontrar muitos novos módulos lá, incluindo o módulo MySQL:

8 phpMyAdmin
O 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 do usuário administrativo do banco de dados: <-- Digite a senha root do MySQL/MariaDB
Senha da aplicação MySQL para phpmyadmin: <-- Pressione ENTER Depois, 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á escutando no socket /var/run/php5-fpm.sock. Também é possível fazer o PHP-FPM usar uma conexão TCP. Para fazer isso, abra /etc/php5/fpm/pool.d/www.conf…
nano /etc/php5/fpm/pool.d/www.conf… e faça a linha listen ficar assim:
[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]Isso fará com que o PHP-FPM escute na porta 9000 no IP 127.0.0.1 (localhost). Certifique-se de usar uma porta que não esteja em uso em seu sistema.
Então recarregue o PHP-FPM:
service php5-fpm reloadEm seguida, abra o arquivo de configuração PHP do Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf e substitua a linha do socket pelas 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 php5-cgi)
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)Finalmente, recarregue o Lighttpd:
service lighttpd force-reload10 Download da imagem da máquina virtual deste tutorial
Este tutorial está disponível como uma imagem de máquina virtual pronta para uso no formato ovf/ova para assinantes do Howtoforge. O formato da VM é compatível com VMWare e Virtualbox. A imagem da máquina virtual usa os seguintes detalhes de login:
Login SSH / Shell
Nome de usuário: administrador
Senha: howtoforge
Este usuário tem direitos sudo.
Login MySQL / MariaDB
Nome de usuário: root
Senha: howtoforge
O IP da VM é 192.168.1.100, ele pode ser alterado no arquivo /etc/network/interfaces. Por favor, altere todas as senhas acima para proteger a máquina virtual.
11 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.