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: 195 ]

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

Hardening NTP/Chrony no Linux

Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla

Montagem de Cluster

Como utilizar de forma correta os repositórios e pacotes Backports

INSTALAR (e jogar) COUNTER STRIKE 1.6 (install cs 1.6) NO LINUX

Leitura recomendada

O Filho à Casa Torna

Remastersys: Crie seu próprio Live-CD do Ubuntu Linux

Logrotate, uma importante ferramenta de administração dos logs do sistema

Os Caminhos Para Certificação LPI1

Abrindo os logs automaticamte em consoles e monitorando-os pelo browser

  
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