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
Apache-2.4.63 e libxml2-2.13.6
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
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
|