PHP-8.4.4

Introdução ao PHP

PHP é o PHP Hypertext Preprocessor. Usado principalmente em sites dinâmicos, ele permite que o código de programação seja diretamente incorporado na marcação HTML. Ele também é útil como uma linguagem de script de propósito geral.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://www.php.net/distributions/php-8.4.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c9aa75fada9f41e9f0e02642b51225cc

  • Tamanho da transferência: 13 MB

  • Espaço em disco estimado exigido: 589 MB (com documentação e testes)

  • Tempo de construção estimado: 1,3 UPC (com paralelismo=4; adicionar 2,5 UPC para testes)

Transferências Adicionais

Dependências do PHP

Recomendadas

Utilitários e Bibliotecas de Sistema Opcionais

Aspell-0.60.8.1, enchant-2.8.2, libxslt-1.1.42, um MTA (que forneça um comando sendmail), pcre2-10.45, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c e XMLRPC-EPI

Utilitários e Bibliotecas Gráficos Opcionais

FreeType-2.13.3, libexif-0.6.25, libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0, libwebp-1.5.0, um ambiente gráfico, FDF Toolkit, GD e t1lib

Utilitários Opcionais da Web

cURL-8.12.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer e WDDX

Utilitários e Bibliotecas Opcionais de Gerenciamento de Dados

lmdb-0.9.31, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, SQLite-3.49.1, unixODBC-2.3.12, Berkeley DB (obsoleto) Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, libiodbc, Mini SQL, Monetra e QDBM

PHP também fornece suporte para muitas ferramentas comerciais de base de dados, como Oracle, SAP e ODBC Router.

Utilitários e Bibliotecas Opcionais de Segurança/Encriptação

Cyrus SASL-2.1.28, MIT Kerberos V5-1.21.3, libmcrypt e mhash

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/php

Instalação do PHP

Você pode usar PHP para scripts do lado do servidor, scripts de linha de comando ou aplicativos GUI do lado do cliente. Este livro fornece instruções para configurar PHP para scripts do lado do servidor, pois é a forma mais comum.

[Nota]

Nota

PHP tem muito mais opções do configure que habilitarão suporte para várias coisas. Você pode usar ./configure --help para ver uma lista completa das opções disponíveis. Também, o uso do site do PHP é altamente recomendado, pois os documentos deles on-line são muito bons. Um exemplo de um comando configure que utiliza muitas das dependências mais comuns pode ser encontrado em https://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt.

Se, por qualquer motivo, você não tiver libxml2-2.13.6 instalado, você precisa adicionar --disable-libxml ao comando configure nas instruções abaixo. Observe que isso impedirá que o comando pear seja construído.

Instale PHP executando os seguintes comandos:

./configure --prefix=/usr                \
            --sysconfdir=/etc            \
            --localstatedir=/var         \
            --datadir=/usr/share/php     \
            --mandir=/usr/share/man      \
            --without-pear               \
            --enable-fpm                 \
            --with-fpm-user=apache       \
            --with-fpm-group=apache      \
            --with-config-file-path=/etc \
            --with-zlib                  \
            --enable-bcmath              \
            --with-bz2                   \
            --enable-calendar            \
            --enable-dba=shared          \
            --with-gdbm                  \
            --with-gmp                   \
            --enable-ftp                 \
            --with-gettext               \
            --enable-mbstring            \
            --disable-mbregex            \
            --with-readline              &&
make

Para testar os resultados, emita: make test. Several tests (out of over 20000) may fail, in which case you are asked whether you want to send the report to the PHP developers. If you want to automate the test, you may prefix the command with yes "n" | .

Agora, como o(a) usuário(a) root:

make install                                     &&
install -v -m644 php.ini-production /etc/php.ini &&

install -v -m755 -d /usr/share/doc/php-8.4.4 &&
install -v -m644    CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
                    /usr/share/doc/php-8.4.4

Os arquivos pré definidos de configuração para o gerenciador de processos fastCGI são instalados somente se eles ainda não existirem no sistema. Se esta for a primeira instalação, eles deveriam ser renomeados, como o(a) usuário(a) root:

if [ -f /etc/php-fpm.conf.default ]; then
  mv -v /etc/php-fpm.conf{.default,} &&
  mv -v /etc/php-fpm.d/www.conf{.default,}
fi

A documentação HTML pré-construída é empacotada em dois formatos: um tarball contendo muitos arquivos individuais, útil para carregamento rápido no teu navegador, e um arquivo individual grande, que é útil para usar o utilitário de pesquisa do teu navegador. Se você baixou um, ou ambos, os arquivos de documentação, emita os seguintes comandos como o(a) usuário(a) root para instalá-los (observe que estas instruções assumem documentos em inglês; modifique os nomes dos tarballs abaixo se necessário).

Para o arquivo HTML Único:

install -v -m644 ../php_manual_en.html.gz \
    /usr/share/doc/php-8.4.4 &&
gunzip -v /usr/share/doc/php-8.4.4/php_manual_en.html.gz

Para o tarball Muitos arquivos HTML:

tar -xvf ../php_manual_en.tar.gz \
    -C /usr/share/doc/php-8.4.4 --no-same-owner

O pear empacotado não é instalado por causa de um defeito que poderia poluir o sistema de arquivos com vários arquivos e diretórios ocultos. Se o pear for necessário, execute os seguintes comandos para instalá-lo:

wget https://pear.php.net/go-pear.phar
php ./go-pear.phar

Explicações do Comando

--datadir=/usr/share/php: Isso contorna um defeito no mecanismo de construção, que instala alguns dados em um local errado.

--enable-fpm: Esse parâmetro permite construir o Gerenciador de Processos fastCGI.

--without-pear: Essa chave desabilita a instalação do software pear incluído.

--with-config-file-path=/etc: Esse parâmetro faz com que PHP procure o arquivo de configuração php.ini em /etc.

--with-zlib: Esse parâmetro adiciona suporte para compressão Zlib.

--enable-bcmath: Habilita funções matemáticas de precisão no estilo do bc.

--with-bz2: Adiciona suporte para funções de compressão do Bzip2.

--enable-calendar: Esse parâmetro fornece suporte para conversão de calendário.

--enable-dba=shared: Esse parâmetro habilita o suporte para funções de camada de abstração de base de dados (estilo dbm).

--enable-ftp: Esse parâmetro habilita funções de FTP.

--with-gettext: Habilita funções que usam a tradução de texto Gettext.

--enable-mbstring: Esse parâmetro habilita o suporte a sequências de caracteres de multi byte.

--with-readline: Esse parâmetro habilita o suporte Readline de linha de comando.

--disable-libxml: Essa opção permite construir o PHP sem libxml2 instalado.

--with-apxs2: Em vez de construir o gerenciador de processos fastCGI, é possível construir um módulo do apache. Isso tem alguma penalidade de desempenho para servidores com carga pesada, mas pode ser mais fácil de configurar. Essa chave é incompatível com as chaves --enable-fpm e --with-fpm-....

--with-mysqli=shared: Essa opção inclui suporte ao MySQLi.

--with-mysql-sock=/run/mysqld/mysqld.sock: Local do ponteiro do soquete Unix do MySQL.

--with-pdo-mysql=shared: Essa opção inclui suporte a PDO: MySQL.

--with-tidy=shared: Essa opção inclui suporte a biblioteca tidy.

Configurando PHP

Arquivos de Configuração

/etc/php.ini, /etc/pear.conf, /etc/php-fpm.conf e /etc/php-fpm.d/www.conf

Informação de Configuração

O arquivo usado como o arquivo pré definido de configuração /etc/php.ini é recomendado pela equipe de desenvolvimento do PHP. Esse arquivo modifica o comportamento pré definido do PHP. Se nenhum /etc/php.ini for usado, todas as definições de configuração cairão para as pré definidas. Você deveria revisar os comentários nesse arquivo e garantir que as mudanças sejam aceitáveis em teu ambiente específico.

O gerenciador de processos fastCGI usa o arquivo de configuração /etc/php-fpm.conf. O arquivo pré definido enviado com o PHP inclui todos os /etc/php-fpm.d/*.conf em sequência. Existe um arquivo /etc/php-fpm.d/www.conf enviado, que contém os parâmetros relacionados à interação com o servidor Web Apache.

Você deve ter observado o seguinte a partir da saída gerada do comando make install:

You may want to add: /usr/lib/php to your php.ini include_path

Se desejado, adicione a entrada usando o seguinte comando como o(a) usuário(a) root:

sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \
    /etc/php.ini

Para habilitar o suporte fastCGI no servidor web Apache, duas diretivas LoadModule precisam ser adicionadas ao arquivo httpd.conf. Elas estão comentadas, de forma que apenas emita o seguinte comando como usuário(a) root:

sed -i -e '/proxy_module/s/^#//'      \
       -e '/proxy_fcgi_module/s/^#//' \
       /etc/httpd/httpd.conf

Esses módulos aceitam várias diretivas ProxyPass. Uma possibilidade é (como o(a) usuário(a) root):

echo \
'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \
/etc/httpd/httpd.conf

Além disso, pode ser útil adicionar uma entrada para index.php para a diretiva DirectoryIndex do arquivo httpd.conf. Por fim, adicionar uma linha para configurar a extensão .phps para mostrar o fonte PHP destacado pode ser desejável:

AddType application/x-httpd-php-source .phps

Você precisará reiniciar o servidor web Apache depois de fazer quaisquer modificações no arquivo httpd.conf.

Script de Inicialização

Para iniciar automaticamente o processo de segundo plano php-fpm quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/php oriundo do pacote blfs-bootscripts-20250225 como o(a) usuário(a) root:

make install-php

Conteúdo

Aplicativos Instalados: phar (link simbólico), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg e phpize
Bibliotecas Instaladas: dba.so e opcache.so em /usr/lib/php/extensions/no-debug-non-zts-20230831
Diretórios Instalados: /etc/php-fpm.d, /usr/{include,lib,share}/php e /usr/share/doc/php-8.4.4

Descrições Curtas

php

é uma interface de linha de comando que te habilita a analisar e a executar código PHP

pear

é o gerenciador de pacotes PHP Extension and Application Repository (PEAR). Isso não é instalado por pré definição

php-fpm

é o gerenciador de processos fastCGI para PHP

phpdbg

é o depurador interativo de PHP