PHP-8.3.12

Introduksjon til PHP

PHP er PHP Hypertext Preprocessor. Primært brukt i dynamiske nettsider, gjør det mulig å programmere kode direkte innebygd i HTML markeringen. Den er også nyttig som et generelt skriptspråk.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

  • Nedlasting (HTTP): https://www.php.net/distributions/php-8.3.12.tar.xz

  • Nedlasting MD5 sum: eb5a29392a0b2fb18b2d836967abb12e

  • Nedlastingsstørrelse: 12 MB

  • Estimert diskplass som kreves: 527 MB (med dokumentasjon og tester)

  • Estimert byggetid: 1.4 SBU (med parallellitet=4; legg til 1.9 SBU for tester)

Ytterligere Nedlastinger

PHP Avhengigheter

Anbefalt

Valgfrie Systemverktøy og Biblioteker

Aspell-0.60.8.1, enchant-2.8.2, libxslt-1.1.42, en MTA (som gir en sendmail kommando), pcre2-10.44, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c, og XMLRPC-EPI

Valgfrie Grafikkverktøy og Biblioteker

FreeType-2.13.3, libexif-0.6.24, libjpeg-turbo-3.0.1, libpng-1.6.44, libtiff-4.7.0, libwebp-1.4.0, et grafiske miljø, FDF Toolkit, GD, og t1lib

Valgfrie Nettverktøy

cURL-8.10.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer, og WDDX

Valgfrie Databehandlingsverktøy og Biblioteker

lmdb-0.9.31, MariaDB-11.4.3 eller MySQL, OpenLDAP-2.6.8, PostgreSQL-17.0, SQLite-3.46.1, unixODBC-2.3.12, Berkeley DB (deprecated) Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, libiodbc, Mini SQL, Monetra, og QDBM

PHP gir også støtte til mange kommersielle databaseverktøy som f.eks Oracle, SAP og ODBC Router.

Valgfrie Sikkerhetsverktøy/Krypteringsverktøy og Biblioteker

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

Redaktørens notater: https://wiki.linuxfromscratch.org/blfs/wiki/php

Installasjon av PHP

Du kan bruke PHP for server-side skripting, kommandolinjeskripting eller GUI applikasjoner på klientsiden. Denne boken gir instruksjoner for å sette opp PHP for server-side skripting ettersom det er den vanligste formen.

[Notat]

Notat

PHP har mange flere configure alternativer som vil muliggjøre støtte for ulike ting. Du kan bruke ./configure --help for å se en fullstendig liste over tilgjengelige alternativer. Også bruk av PHP nettsiden anbefales på det sterkeste, siden deres nettbaserte dokumenter er veldig bra. Et eksempel på en configure kommando som bruker mange av de vanligste avhengighetene finner du på https://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt.

Hvis du av en eller annen grunn ikke har libxml2-2.13.4 installert, må du legge til --disable-libxml til configure kommandoen i instruksjonene nedenfor. Merk at dette vil forhindre pear kommandoen fra å bli bygget.

Installer PHP ved å kjøre følgende kommandoer:

./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

For å teste resultatene, kjør: make test. Flere tester (av over 18000) kan mislykkes, i så fall blir du spurt om du vil sende rapporten til PHP utviklerne. Hvis du ønsker å automatisere testen, kan du prefikse kommandoen med yes "n" | .

Nå, som root bruker:

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

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

Standard konfigurasjonsfilene for fastCGI prosessbehandleren er bare installert hvis den ikke allerede finnes på systemet. Hvis dette er den første installasjonen, bør de gis nytt navn, som root bruker:

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

Den forhåndsbygde HTML dokumentasjonen er pakket i to former: en tarball som inneholder mange individuelle filer, nyttig for rask innlasting i din nettleser, og en stor individuell fil, som er nyttig for å bruke søkeverktøyet til nettleseren din. Hvis du lastet ned en av, eller begge, av dokumentasjonsfiler, kjør følgende kommandoer som root brukeren for å installere dem (merk disse instruksjonene forutsetter engelske dokumenter, endre tarball navnene nedenfor hvis nødvendig).

For «Singel HTML» fil:

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

For «Mange HTML filer» tarball:

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

Den medfølgende pear er ikke installert på grunn av en feil som kan forurense filsystemet med flere skjulte filer og kataloger. Hvis pear er nødvendig, kjør følgende kommandoer for å installere den:

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

Parameterforklaringer

--datadir=/usr/share/php: Dette arbeider rundt en feil i byggemaskineriet, som installerer noen data til feil plassering.

--enable-fpm: Denne parameteren tillater byggingen av fastCGI Process Manager.

--without-pear: Denne bryteren deaktiverer installasjon av medfølgende pear programvare.

--with-config-file-path=/etc: Denne parameteren gjør at PHP leter etter php.ini konfigurasjonsfilen i /etc.

--with-zlib: Denne parameteren legger til støtte for Zlib kompresjon.

--enable-bcmath: Aktiverer bc stilpresisjons matematiske funksjoner.

--with-bz2: Legger til støtte for Bzip2 kompresjonsfunksjoner.

--enable-calendar: Denne parameteren gir støtte for kalenderkonvertering.

--enable-dba=shared: Denne parameteren aktiverer støtte for database (dbm-stil) abstraksjonslagsfunksjoner.

--enable-ftp: Denne parameteren aktiverer FTP funksjoner.

--with-gettext: Aktiverer funksjoner som bruker Gettext tekstoversettelse.

--enable-mbstring: Denne parameteren muliggjør støtte for multibyte strenger.

--with-readline: Denne parameteren aktiverer kommandolinje Readline støtte.

--disable-libxml: Dette alternativet tillater å bygge PHP uten libxml2 installert.

--with-apxs2: I stedet for å bygge fastCGI prosess behandleren, er det mulig å bygge en apache modul. Dette har en viss ytelsesstraff for tungt belastede servere, men kan være lettere å sette opp. Denne bryteren er inkompatibel med --enable-fpm og --with-fpm-... brytere.

--with-mysqli=shared: Dette alternativet inkluderer MySQLi støtte.

--with-mysql-sock=/run/mysqld/mysqld.sock: Plassering av MySQL unix socket pekeren.

--with-pdo-mysql=shared: Dette alternativet inkluderer PDO: MySQL støtte.

--with-tidy=shared: Dette alternativet inkluderer tidy bibliotek brukerstøtte.

Konfigurere PHP

Konfigurasjonsfiler

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

Konfigurasjonsinformasjon

Filen som brukes som standard /etc/php.ini konfigurasjonsfilen anbefales av PHP utviklingsteam. Denne filen endrer standardoppførselen til PHP. Hvis ingen /etc/php.ini brukes, faller alle konfigurasjonsinnstillinger til standardinnstillingene. Du burde se gjennom kommentarene i denne filen og sørg for at endringene er akseptable i ditt spesielle miljø.

FastCGI prosessbehandleren bruker konfigurasjonsfilen /etc/php-fpm.conf. Standardfilen levert med PHP inkluderer alle /etc/php-fpm.d/*.conf etter tur. Det er en sendt /etc/php-fpm.d/www.conf fil, som inneholder parametrene knyttet til interaksjonen med Apache Internett server.

Du har kanskje lagt merke til følgende fra utdataen av make install kommandon:

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

Hvis ønskelig, legg til oppføringen ved å bruke følgende kommando som root bruker:

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

For å aktivere fastCGI støtte i Apache nettserver, to LoadModule direktiver må legges til httpd.conf filen. De er kommentert ut, så bare gi følgende kommando som root bruker:

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

Disse modulene godtar forskjellige ProxyPass direktiver. En mulighet er (som root bruker):

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

I tillegg kan det være nyttig å legge til en oppføring for index.php til DirectoryIndex direktivet til httpd.conf filen. Til slutt å legger til en linje for å sette opp .phps utvidelse for å vise fremhevet PHP kilde kan være ønskelig:

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

Du må starte på nytt Apache Internett server etter å ha gjort endringer i httpd.conf filen.

Oppstartsskript

For å starte php-fpm nissen automatisk når systemet startes på nytt, installer /etc/rc.d/init.d/php oppstartsskript fra blfs-bootscripts-20240913 pakken som root bruker:

make install-php

Innhold

Installerte Programmer: phar (symlenke), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg, og phpize
Installerte Biblioteker: dba.so og opcache.so i /usr/lib/php/extensions/no-debug-non-zts-20230831
Installerte Mapper: /etc/php-fpm.d, /usr/{include,lib,share}/php, og /usr/share/doc/php-8.3.12

Korte Beskrivelser

php

er et kommandolinjegrensesnitt som lar deg analysere og kjøre PHP kode

pear

er PHP Extension and Application Repository (PEAR) pakken behandler. Dette er ikke installert som standard

php-fpm

er fastCGI prosessbehandler for PHP

phpdbg

er den interaktive PHP feilsøkeren