PHP-8.4.11
      
      
        
          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.4.
        
        
          Informação do Pacote
        
        
          
            - 
              
                Transferência (HTTP): https://www.php.net/distributions/php-8.4.11.tar.xz
              
             
            - 
              
                Transferência (FTP): 
              
             
            - 
              
                Soma de verificação MD5 da transferência:
                d08a7fbf770f2b9218a18eb70b2e9717
              
             
            - 
              
                Tamanho da transferência: 13 MB
              
             
            - 
              
                Espaço em disco estimado exigido: 395 MB (com testes)
              
             
            - 
              
                Tempo de construção estimado: 0,7 UPC (adicionar 2,6 UPC para
                testes; ambos com paralelismo=4)
              
             
          
         
        
          Transferências Adicionais
        
        
        
          Dependências do PHP
        
        
          Recomendadas
        
        
          Apache-2.4.65 e libxml2-2.14.5
        
        
          Utilitários e Bibliotecas de Sistema Opcionais
        
        
          Aspell-0.60.8.1, enchant-2.8.12, libxslt-1.1.43, 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.50,
          libtiff-4.7.0, libwebp-1.6.0, um ambiente gráfico,
          FDF
          Toolkit, GD e t1lib
        
        
          Utilitários Opcionais da Web
        
        
          cURL-8.15.0, tidy-html5-5.8.0,
          Caudium, Hyperwave e
          WDDX
        
        
          Utilitários e Bibliotecas Opcionais de Gerenciamento de Dados
        
        
          lmdb-0.9.33, MariaDB-11.8.3
          ou MySQL,
          OpenLDAP-2.6.10, PostgreSQL-17.6, SQLite-3.50.4,
          unixODBC-2.3.12, Berkeley
          DB (deprecated) 
          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, 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
          
          
            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.14.5
            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.11 &&
install -v -m644    CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
                    /usr/share/doc/php-8.4.11
        
          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.11 &&
gunzip -v /usr/share/doc/php-8.4.11/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.11 --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.11
            
           
         
        
          
            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
                   
                 |