Instalar e Configurar a santíssima trindade (PAP) no Void Linux

Compilação, instalação e configuração do Apache, PostgreSQL e PHP, últimas versões até o momento, no Void Linux.
SEQÜÊNCIA DE INSTALAÇÃO compilando os fontes: 1- Apache; 2- PostgreSQL e 3- PHP.

[ Hits: 672 ]

Por: Buckminster em 02/04/2026


PHP



PHP (php-fpm) no Void

$ sudo xbps-install -Su

Acesse:
https://www.php.net/ Download.
Ao lado clique em Source Tarballs

Escolha a Current Stable, por exemplo:
php-8.5.4.tar.gz (sig) [23,558Kb]

Instalando dependências:
$ sudo xbps-install -S base-devel libxml2-devel bzip3-devel libpng-devel libjpeg-turbo-devel libwebp-devel freetype-devel zlib-devel openssl-devel sqlite-devel libcurl-devel oniguruma-devel apr-devel apr-util-devel pkg-config postgresql-libs-devel libzip-devel

Escolha a versão do momento:
$ cd Downloads
$ wget https://www.php.net/distributions/php-8.5.4.tar.gz
$ ls
$ tar xvf php-8.5.4.tar.gz
$ sudo mkdir - p /opt/php85
$ mkdir -p ~/php85-build
$ cd ~/php85-build
$ cp -r ~/Downloads/php-8.5.4 .
$ ls
$ cd php-8.5.4

Configurando
$ ./configure --prefix=/opt/php85 \
--enable-fpm \
--with-apxs2=/opt/apache24/bin/apxs \
--with-openssl \
--with-zlib \
--enable-mbstring \
--enable-ctype \
--with-zlib \
--with-zip=/usr/lib/libzip.so \
--with-bz2=/usr/lib/libbzip3.so \
--with-curl \
--enable-soap \
--enable-sockets \
--enable-exif \
--with-jpeg \
--with-webp \
--with-freetype \
--enable-gd \
--enable-pdo \
--with-pgsql=/opt/postgres18 \
--with-pdo-pgsql=/opt/postgres18
Terminará:
...
config.status: executing default commands

+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+

Thank you for using PHP.


$ make -j$(nproc)
Aguarde terminar.
Terminará:
...
Build complete.
Don't forget to run 'make test'


Rodaremos direto (sempre se deve rodar "make install" com "sudo"):
$ sudo make install
Terminará:
...
Installing man pages: /opt/php85/php/man/man1/
page: phpize.1
page: php-config.1


Linkando as bibliotecas com o sistema:
$ echo "/opt/php85/lib" | sudo tee /etc/ld.so.conf.d/php85.conf
$ sudo ldconfig

Exportando a variável de ambiente:
$ echo 'export PATH=/opt/php85/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

Verificando a instalação:
$ php -v
PHP 8.5.4 (cli) (built: Mar 30 2026 12:26:30) (ZTS)
Copyright (c) The PHP Group
Zend Engine v4.5.4, Copyright (c) Zend Technologies
with Zend OPcache v8.5.4, Copyright (c), by Zend Technologies


Caso aparecer algum warning veja a qual biblioteca ele se refere e instale ela e recompile o PHP com --enable-nome_biblio ou --with-nome_biblio. Veja ./configure --help para maiores informações.

Como compilamos o PHP com as libs embutidas no binário não se faz necessário habilitar extensões, a não ser que tu compilar com, por exemplo, --enable-sockets=shared daí se faz necessário habilitar a extensão respectiva.

Para ver as todas as extensões compiladas e habilitadas:
$ /opt/php85/bin/php -m

Para ver uma extensão em específico:
$ /opt/php85/bin/php -m | grep nome_extensao

Exemplo:
$ /opt/php85/bin/php -m | grep zip
zip

Configurando o PHP-FPM

$ sudo cp /opt/php85/etc/php-fpm.conf.default /opt/php85/etc/php-fpm.conf
$ sudo cp /opt/php85/etc/php-fpm.d/www.conf.default /opt/php85/etc/php-fpm.d/www.conf

Editar pool do PHP-FPM

Abra o arquivo do pool principal:

$ sudo vim /opt/php85/etc/php-fpm.d/www.conf
Verifique e ajuste (a partir da linha ~28):

user = seu_usuaurio <<< aqui vai usuario e grupo do usuario do sistema, não do php.
group = seu_grupo
...
; listen = 127.0.0.1:9000
listen = /opt/php85/var/run/php-fpm.sock
...
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
listen.owner = apache24
listen.group = apache24
listen.mode = 0660


Salve e saia.

Isso garante que o Apache pode se comunicar com o PHP-FPM via socket.

Se preferir TCP deixe:
listen = 127.0.0.1:9000
mas coloque também no httpd.conf.

Criando arquivo e permissionando:
$ sudo mkdir -p /opt/php85/var/run
$ sudo chmod 755 /opt/php85/var/run

Configurar Apache para usar PHP-FPM

No httpd.conf, carregue os módulos:

$ sudo vim /opt/apache24/conf/httpd.conf

A partir da linha ~66:
LoadModule proxy_module modules/mod_proxy.so
...
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
...
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php_module modules/libphp.so
LoadModule php_module /opt/apache/modules/libphp.so <<< acrescente este e descomente os outros acima.

Depois, no VirtualHost ou no Directory:
<VirtualHost *:80>
    ServerName dev.local
    DocumentRoot "/home/usuaurio/projetos"
    <Directory "/home/usuario/projetos">
        AllowOverride All
        Require all granted
    </Directory>
<VirtualHost>

Linha ~273:
#
<Files ".ht*">
   Require all denied
</Files>

Acrescente na posição abaixo de "Files .ht*":
 <FilesMatch \.php$>
        SetHandler "proxy:unix:/opt/php85/var/run/php-fpm.sock|fcgi://localhost/"
        # Se estiver usando TCP:
        # SetHandler "proxy:fcgi://127.0.0.1:9000"
  </FilesMatch>

Acrescente duas linhas na posição ~415:
    #AddHandler cgi-script .cgi
    AddHandler php-script .php
    DirectoryIndex index.php index.html
Salve e saia.

Linkar php-fpm aos Serviços( sv) do Void

1. Criar a estrutura do serviço
O runit procura por um executável chamado run dentro de uma pasta com o nome do serviço.
$ sudo mkdir -p /etc/sv/php85-fpm

2. Criar o script de inicialização (run)
Crie o arquivo e cole o conteúdo abaixo:
$ sudo vim /etc/sv/php85-fpm/run

Conteúdo do arquivo:
#!/bin/sh
exec 2>&1
# Garante que o PHP-FPM rode em primeiro plano (-F) para o runit monitorar
exec /opt/php85/sbin/php-fpm -F

3. Dar permissão de execução
O script precisa ser executável para o runit conseguir iniciá-lo:
$ sudo chmod +x /etc/sv/php85-fpm/run

Criando e permitindo arquivo de log:
$ sudo mkdir -p /opt/php85/var/log
$ sudo chmod -R 755 /opt/php85/var/log

4. Ativar o serviço (Linkar ao SV)
Para "linkar ao sv" e fazer o serviço iniciar automaticamente, crie um link simbólico para /var/service:
$ sudo ln -s /etc/sv/php85-fpm /var/service/

$ sudo sv enable php85-fpm
$ sudo sv restart apache24
$ sudo sv restart postgres18
$ sudo sv start php85-fpm
ok: run: php85-fpm: (pid 25095) 27s

Conferindo as permissões:
$ ls -l /opt/php85/var/run/php-fpm.sock
srw-rw---- 1 apache24 apache24 0 mar 17 13:04 /opt/php85/var/run/php-fpm.sock

Como gerenciar o serviço a partir de agora:
O Void Linux usa o comando sv para controlar os serviços.
Void Linux Handbook:
Verificar status: sudo sv status php-fpm
Reiniciar (após mudar o php.ini): sudo sv restart php-fpm
Parar: sudo sv stop php-fpm
Iniciar: sudo sv start php-fpm

Caso não subir o PHP, execute para ver os erros:
$ sudo /opt/php85/sbin/php-fpm --nodaemonize --fpm-config /opt/php85/etc/php-fpm.conf

php.ini

Localizando o local correto para o arquivo:
$ /opt/php85/bin/php -i | grep "Configuration File"
...
Configuration File (php.ini) Path => /opt/php85/lib
Loaded Configuration File => (none)


Mimetizando:
$ sudo cp /home/$USER/php85-build/php-8.5.4/php.ini-development /opt/php85/lib/php.ini
$ sudo vim /opt/php85/lib/php.ini

Timezone: procure por date.timezone e coloque "America/Sao_Paulo".
Erros: Garanta que display_errors = On esteja ativo enquanto você configura seu site (em produção, mude para Off).
Uploads: Ajuste upload_max_filesize = 64M e post_max_size = 64M (o padrão costuma ser apenas 2MB).

Confirme a localização agora certa:
$ /opt/php85/bin/php -i | grep "Configuration File"
Configuration File (php.ini) Path => /opt/php85/lib
Loaded Configuration File => /opt/php85/lib/php.ini


Crie o arquivo:
$ sudo vim /opt/apache24/htdocs/info.php

Coloque dentro:
<?php
phpinfo();
Salve e saia.

Reinicie o Apache:
$ sudo sv restart apache24

Abra o navegador e digite:
localhost/info.php
Aparecerão as informações do PHP.
Procure pela linha:
Server API FPM/FastCGI.
Procure pelas extensões pdo_pgsql e pgsql.

Para Recompilar

$ cd ~/php85-build/php-8.5.4
$ make clean
$ make distclean
$ ./configure etc, etc, etc...
$ make -j$(nproc)
$ sudo make install

Linkando as bibliotecas com o sistema:
$ echo "/opt/php85/lib" | sudo tee /etc/ld.so.conf.d/php85.conf
$ sudo ldconfig

Exportando a variável de ambiente:
$ echo 'export PATH=/opt/php85/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

Verificando a instalação:
$ php -v
PHP 8.5.4 (cli) (built: Mar 30 2026 12:26:30) (ZTS)
Copyright (c) The PHP Group
Zend Engine v4.5.4, Copyright (c) Zend Technologies
with Zend OPcache v8.5.4, Copyright (c), by Zend Technologies


A partir daqui, no caso de uma recompilação para acrescentar funcionalidades, somente é necessário reiniciar os serviços Apache, Postgres e PHP.

Para remover

$ cd /opt

Removendo o link:
$ sudo rm /var/service/php85

Removendo o diretório /opt/php85:
$ sudo rm -rf php85

Faça uma busca por reminiscências (remova somente as referências que instalamos):
$ sudo find / | grep php85 | less

Obs.: Para navegar na busca use as setas de direção e "Page Up-Page Down", para sair digite q (tecla q).

Remova:
$ sudo rm -rf /home/$USER/php85-build
$ sudo rm -rf /etc/sv/php85

Vamos para as conclusões!

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Apache
   3. PostgreSQL
   4. PHP
   5. Conclusão
Outros artigos deste autor

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Instalação do Ventoy, programa para criar pendrives inicializáveis

Como um monte de letras de um código fonte transforma-se em voltagens?

IPv6, DNSv6 e DHCPv6

Instalar certificado SSL/TLS digital válido gratuito no Linux

Leitura recomendada

Instalando o KBFX e mudando a imagem do Menu K de uma vez por todas

Utilização do x11vnc para administração remota de computadores Linux

Faça um incrível espetáculo de efeitos visuais com vídeo em tempo real

Rode o Blackbox no Windows XP

Instalar o Gitea no Ubuntu

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts