V AlmaLinux lahko PHP namestiš iz več virov, izbira pa je odvisna od tega, katero različico potrebuješ. Ta članek po vrsti pregleda možnosti v sistemih AlmaLinux 10 in 9, razširitve in nastavitev PHP-FPM. Skupaj s spletnim strežnikom in navideznim gostiteljem ga prikazujeta članka Namestitev Apacheja in PHP-FPM ter Namestitev Nginx mainline.
Korake smo oktobra 2026 preizkusili v sistemih AlmaLinux 10.2 in 9.8; številke različic veljajo za čas preizkusa. Ukaze zaganjaj kot uporabnik root ali s sudo.
Kateri PHP pride s sistemom?
| Sistem | Privzeta | Druge različice v sistemskih repozitorijih |
|---|---|---|
| AlmaLinux 10 | PHP 8.3 (8.3.36) | PHP 8.4 (8.4.27) kot ločeni paketi z imenom php8.4, od izdaje 10.2 |
| AlmaLinux 9 | PHP 8.0 (8.0.30) | PHP 8.1, 8.2 in 8.3 kot modul |
Če potrebuješ PHP 8.5 ali različico, ki tu ni navedena, moraš uporabiti repozitorij Remi (glej 4. možnost). Katera različica je priporočena za WordPress, piše v našem blogovskem zapisu.
Na strežniku lahko ime paketa php hkrati nosi le ena različica. Če želiš vzporedno več različic, to narediš s paketi phpXY iz repozitorija Remi.
1. možnost: privzeti PHP
V AlmaLinux 10 je to PHP 8.3, ki ga sistemske posodobitve popravljajo ves življenjski cikel:
sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-intl php-opcache php-pecl-zip
php -v
Prva vrstica php -v: PHP 8.3.36 (cli). V AlmaLinux 9 bi isti ukaz namestil PHP 8.0, ki ga razvijalci PHP ne podpirajo več, zato tam izberi med moduli (3. možnost).
2. možnost: PHP 8.4 v AlmaLinux 10 iz sistemskega repozitorija
Od Red Hat Enterprise Linux 10.2 (glej opombe ob izdaji Red Hat), s tem pa od AlmaLinux 10.2, je v repozitoriju AppStream tudi PHP 8.4, kot paketi s predpono php8.4- (php8.4-cli, php8.4-fpm, php8.4-mysqlnd, php8.4-gd, php8.4-intl, php8.4-mbstring, php8.4-xml, php8.4-opcache, php8.4-pecl-zip, php8.4-pecl-redis6, php8.4-pecl-apcu in drugi). Na starejši izdaji 10 najprej posodobi sistem (sudo dnf upgrade); številko izdaje pokaže cat /etc/almalinux-release. Seznam paketov:
dnf list --available 'php8.4*'
Na svežem sistemu jih preprosto namesti:
sudo dnf install php8.4-cli php8.4-fpm php8.4-mysqlnd php8.4-gd php8.4-xml php8.4-mbstring php8.4-intl php8.4-opcache
Če že teče PHP 8.3, se namestitev ustavi zaradi spora: „package php8.4-fpm … conflicts with php-fpm < 8.4”. Obe različici ne moreta biti nameščeni hkrati, 8.4 nadomesti 8.3. Za zamenjavo dovoli dnf, da odstrani stare pakete:
sudo dnf install --allowerasing php8.4-cli php8.4-fpm php8.4-mysqlnd
V preizkusu je dnf odstranil paketa php-common in php-fpm različice 8.3 (Removing dependent packages). Za vsak paket razširitve 8.3 v ukazu navedi njegov par php8.4-, sicer z zamenjavo izginejo.
Po zamenjavi:
- ukaz je še vedno
php, storitev še vednophp-fpm, tudi mesto nastavitev se ne spremeni; - storitev
php-fpmpostane onemogočena, ker je bil njen paket znova nameščen. Znova jo vklopi, sicer se po naslednjem ponovnem zagonu ne zažene:
sudo systemctl enable --now php-fpm
V družini paketov php8.4 v času preizkusa niso bile vse razširitve, ki so za 8.3 na voljo iz EPEL (na primer imagick). Če jih tvoja aplikacija potrebuje, uporabi repozitorij Remi.
3. možnost: novejši PHP iz modula v AlmaLinux 9
V AlmaLinux 9 izbirne različice izpiše dnf module list php. Izbira in namestitev PHP 8.3:
sudo dnf module reset php
sudo dnf module enable php:8.3
sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-intl php-opcache php-pecl-zip
4. možnost: PHP iz repozitorija Remi
Z repozitorijem Remi lahko v AlmaLinux 9 in 10 namestiš katero koli različico od PHP 7.4 do 8.5 (v času preizkusa je bila 8.6 na voljo v predizdajni različici RC). Nastavitev repozitorija opisuje članek Namestitev repozitorija Remi v AlmaLinux; nato na primer PHP 8.4:
sudo dnf module reset php
sudo dnf module enable php:remi-8.4
sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-intl php-opcache php-pecl-zip php-pecl-redis
php -v
PHP 8.4.27 (cli) (built: Oct 19 2026 14:38:59) (NTS gcc aarch64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine #NoAI
Iz vrstice Built by Remi's RPM repository je razvidno, da PHP prihaja iz repozitorija Remi. Za ime paketa php-pecl-redis je dnf namestil razširitev php-pecl-redis6. Pozneje lahko na drugo različico preklopiš z ukazom sudo dnf module switch-to php:remi-8.5; ta zamenja tudi nameščene razširitve.
Razširitve
Razširitve so ločeni paketi s predpono php- (oziroma php8.4-). Za WordPress in večino CMS-jev zadoščajo zgornji seznami. Preverjanje:
php -m
dnf list --installed 'php*'
Pogosto zahtevane dodatne razširitve: php-bcmath (natančno računanje, na primer v spletnih trgovinah), php-soap (API-ji SOAP), php-pgsql (PostgreSQL), php-pecl-apcu (predpomnilnik v pomnilniku). Iskanje razpoložljivih razširitev: dnf search php-pecl ali dnf list --available 'php-pecl-*'. Po namestitvi znova zaženi PHP-FPM (sudo systemctl restart php-fpm), sicer spletna stran še teče s starim seznamom razširitev.
A PHP-FPM
PHP spletnih strani poganja storitev PHP-FPM, spletni strežnik ji le posreduje zahteve. Zagon in samodejni zagon:
sudo systemctl enable --now php-fpm
Pomembnejše osnovne nastavitve v datoteki /etc/php-fpm.d/www.conf:
user = apache
group = apache
listen = /run/php-fpm/www.sock
listen.acl_users = apache,nginx
PHP privzeto teče z uporabnikom apache in zahteve sprejema na vtičnici Unix, do katere lahko dostopata uporabnika apache in nginx. Tako ga lahko uporabljata Apache in Nginx brez posebne nastavitve dovoljenj.
- Apache: paket
php-fpmga samodejno poveže z datoteko/etc/httpd/conf.d/php.conf, dovolj je znova zagnatihttpd. - Nginx: v bloku
serverje treba zahteve PHP usmeriti na vtičnico, glej članek o Nginx.
Pogosto spreminjane vrednosti (upload_max_filesize, memory_limit, pm.max_children) navaja 7. točka članka o Apacheju in PHP-FPM.
Preverjanje na spletni strani
V korenskem imeniku spletnega strežnika ustvari testno datoteko, jo odpri, nato izbriši:
echo '<?php echo PHP_VERSION, " ", PHP_SAPI, "\n";' | sudo tee /var/www/html/v.php
curl -s http://localhost/v.php
sudo rm /var/www/html/v.php
V preizkusu z Apachejem je bil odgovor 8.5.12 fpm-fcgi: fpm-fcgi za različico kaže, da je zahtevi stregel PHP-FPM. Če se v brskalniku prikaže koda PHP ali se datoteka prenese, spletni strežnik ni povezan s PHP-FPM.
Menjava različice in vrnitev
Pred menjavo različice shrani spletno stran in podatkovno bazo ter, če je mogoče, na testnem izvodu preveri, ali aplikacija deluje na novi različici. Na VPS je najzanesljivejši posnetek pred menjavo. Vrnitev:
- modul Remi:
sudo dnf module switch-to php:remi-8.3(ali tisti, ki je tekel prej); - nazaj na sistemski PHP:
sudo dnf module reset php, natosudo dnf distro-sync. V preizkusu je to PHP 8.5 iz Remi zamenjalo z lastnimi paketi 8.3.36 AlmaLinux 10, skupaj z razširitvami.
Če nisi prepričan, kateri modul je izbran, to pokaže dnf module list php --enabled (v AlmaLinux 10 za sistemski PHP ni modula, tam se lahko prikaže le modul Remi).
Odstranitev PHP
sudo systemctl disable --now php-fpm
sudo dnf remove 'php*'
sudo dnf module reset php
Vzorec 'php*' odstrani vse pakete in razširitve PHP, zato na strežniku z več aplikacijami pred potrditvijo preglej seznam dnf. Datotek spletnih strani, podatkovne baze in spletnega strežnika to ne prizadene.
Če različic PHP ne želiš upravljati iz ukazne vrstice, na gostovanju cPanel različico in razširitve izbereš na nadzorni plošči, na KVM VPS pa lahko z zgornjimi koraki nastaviš katero koli različico.