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.
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.
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)
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.62 og libxml2-2.13.4
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
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
cURL-8.10.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer, og WDDX
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.
Cyrus SASL-2.1.28, MIT Kerberos V5-1.21.3, 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.
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
--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.
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 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