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.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en LFS 12.0 plattform.
Nedlasting (HTTP): https://www.php.net/distributions/php-8.2.9.tar.xz
Nedlasting MD5 sum: 897c9c416663d03e516a68cb86b598f3
Nedlastingsstørrelse: 11 MB
Estimert diskplass som kreves: 505 MB (med dokumentasjon)
Estimert byggetid: 1.5 SBU (med parallellitet=4; legg til 1,6 SBU for tester)
Valgfri forhåndsbygd dokumentasjon (enkeltfil html): https://www.php.net/distributions/manual/php_manual_en.html.gz
Valgfri forhåndsbygd dokumentasjon (oppdelt html): https://www.php.net/distributions/manual/php_manual_en.tar.gz. Merk at dokumentasjonen finnes på andre språk enn Engelsk på https://www.php.net/download-docs.php
Apache-2.4.57 og libxml2-2.10.4
Aspell-0.60.8, enchant-2.5.0, libxslt-1.1.38, en MTA (som gir en sendmail kommando), pcre2-10.42, Pth-2.0.7, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c, og XMLRPC-EPI
FreeType-2.13.1, libexif-0.6.24, libjpeg-turbo-3.0.0, libpng-1.6.40, libtiff-4.5.1, libwebp-1.3.1, et grafiske miljø, FDF Toolkit, GD, og t1lib
cURL-8.2.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer, og WDDX
Berkeley DB-5.3.28 (Merk at PHP offisielt ikke støtter versjoner over 5,3), libiodbc-3.52.15, lmdb-0.9.31, MariaDB-10.11.4 eller MySQL, OpenLDAP-2.6.6, PostgreSQL-15.4, SQLite-3.42.0, unixODBC-2.3.12, Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, Mini SQL, Monetra, og QDBM
PHP gir også støtte til mange kommersielle databaseverktøy som f.eks Oracle, SAP og ODBC Router.
Cyrus SASL-2.1.28, MIT Kerberos V5-1.21.2, libmcrypt, og mhash
Redaktørens notater: https://wiki.linuxfromscratch.org/blfs/wiki/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.
![[Note]](../images/note.png) 
          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.10.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      \
            --enable-fpm                 \
            --without-pear               \
            --with-fpm-user=apache       \
            --with-fpm-group=apache      \
            --with-fpm-systemd           \
            --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 16000) 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.2.9 &&
install -v -m644    CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
                    /usr/share/doc/php-8.2.9
        
          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.2.9 &&
gunzip -v /usr/share/doc/php-8.2.9/php_manual_en.html.gz
        For “Mange HTML filer” tarball:
tar -xvf ../php_manual_en.tar.gz \
    -C /usr/share/doc/php-8.2.9 --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
          --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.
        
          --with-fpm-systemd: Denne
          parameteren tillater FastCGI Process Manager å integrere med
          systemd.
        
          --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.
        
            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.
          
            For å starte php-fpm nissen ved oppstart,
            installer systemd enheten fra blfs-systemd-units-20230816 pakken ved å
            kjøre følgende kommando som root
            bruker:
          
make install-php-fpm