Hur man installerar PHP 8.1 på Fedora 37/36/35

PHP 8.1 är en betydande uppdatering av PHP-språket som släpptes den 25 november 2021. Detta är en standarduppgradering för framtiden från den befintliga PHP 8.0-versionen. Den nya PHP 8.1 ger uppräkningar, fibrer, aldrig återvändande typ, slutklasskonstanter, skärningstyper och skrivskyddade egenskaper bland nya funktioner och ändringar. Jag skulle besöka den officiella versionen av PHP-webbplatsen tillkännagivande avsnitt för den fullständiga ändringsloggen uppdateras ständigt när mindre utgåvor pushas.

I följande handledning kommer du att lära dig hur du importerar REMI PHP-modulen och installerar PHP 8.1 på din Fedora 37/36/35-server eller arbetsstationsskrivbord, tillsammans med några tips om att konfigurera Nginx med FPM med kommandoradsterminalen.

Rekommenderade steg före installation

Uppdatera först ditt system för att säkerställa att alla befintliga paket är uppdaterade. Detta säkerställer att inga konflikter uppstår så bra som möjligt under installationen.

sudo dnf upgrade --refresh -y

Importera PHP Remi Repository på Fedora Linux

För närvarande finns PHP 8.1 i Fedora. Ändå bör du importera PHP Remi-förvaret för att få de senaste stabila uppdateringarna, samma version installerad i Fedora kommer från Remi oavsett, så det är likadant, bara snabbare att ta emot uppdateringar.

Först, importera och installera Remi-repo; använd följande terminalkommando. Kom ihåg att matcha Remi-repo med din Fedora-distributionsversion.

Importera Remi PHP Repository för Fedora 37

sudo dnf install http://rpms.remirepo.net/fedora/remi-release-37.rpm -y

Importera Remi PHP Repository för Fedora 36

sudo dnf install http://rpms.remirepo.net/fedora/remi-release-36.rpm -y

Importera Remi PHP Repository för Fedora 35

sudo dnf install http://rpms.remirepo.net/fedora/remi-release-35.rpm -y

Verifiera sedan installationen.

dnf repolist | grep remi

Exempel utmatning:

[joshua@fedora-linux ~]$ dnf repolist | grep remi
remi                        Remi's RPM repository - Fedora 37 - x86_64
remi-modular                Remi's Modular repository - Fedora 37 - x86_64

Situationsmässigt – Ta bort befintlig PHP-installation på Fedora Linux

Ta bort den tidigare versionen för användare som vill installera PHP 8.1 men som redan har installerat PHP eller PHP-FPM. Ta till exempel bort PHP 8.0 för PHP 8.1.

Se till att säkerhetskopiera alla konfigurationsfiler.

sudo dnf remove php php-fpm -y

Ta sedan bort resten av pakettilläggen.

sudo dnf remove php* -y

Att återställa PHP-modullistan är enkelt med följande kommando:

sudo dnf module list reset php -y

Nu kan du fortsätta till nästa del av handledningen.

Aktivera PHP 8.1 (Remi) Repository på Fedora Linux

Ett snabbt tips är att använda dnf-modullista kommandot för att se de tillgängliga alternativen och standardinställningarna.

Följande dnf-modullista-kommando kan göra detta:

sudo dnf module list php

Du kommer att uppmanas att importera GPG-nyckeln för Remis repository. Typ (Y) för att fortsätta om du stöter på det.

Aktivera sedan PHP 8.1 med följande kommando:

sudo dnf module enable php:remi-8.1 -y

Exempel utmatning:

============================================================================
 Package                Architecture          Version                Repository              Size
============================================================================
Enabling module streams:
 php                                          remi-8.1                                           

Transaction Summary
============================================================================

Installera PHP 8.1 på Fedora Linux

Nu när du har lagt till Remi PHP-förvaret och aktiverat PHP 8.1 att vara standardversionen på ditt Fedora-system, kan du installera PHP 8.1 med följande kommando:

Apache (httpd) användare:

sudo dnf install php -y

Nginx-användare:

sudo dnf install php-fpm -y

Eventuellt, om du vill installera mest använda tilläggen för PHP 8.1, använd följande kommando:

sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache

Obs, ta bort de alternativ du inte vill ha. Detta är valfritt, och det rekommenderas starkt att endast installera och behålla de moduler du behöver från en prestanda- och säkerhetsstandard.

Du kan använda följande kommando för att se moduler som laddas när som helst.

php -m

Exempel på utdata (de kommer att variera till 100 %):

[PHP Modules]
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
igbinary
imagick
intl
json
libxml
mbstring
memcache
memcached
msgpack
mysqli
mysqlnd
openssl
pcntl
pcov
pcre
PDO
pdo_mysql
Phar
readline
redis
Reflection
session
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

Beroende på hur många moduler du har installerat kan detta vara ganska stort, och det rekommenderas alltid att hålla ett öga på detta och ta bort alla du inte behöver.

Slutligen, använd följande kommando för alla som är intresserade av att installera utvecklingsgrenen.

sudo dnf install php-devel

Ytterligare utvecklingsverktyg, såsom felsökningsverktyg, använd följande kommando.

sudo dnf install php-xdebug php-pcov

Detta kommer att installera många beroenden, och om du inte utvecklar med PHP eller har några speciella krav för att installera det, använd inte den här versionen.

Nu när du har installerat PHP 8.1 och tilläggen kontrollera versionen med följande kommando:

php -v

Exempel utmatning:

PHP 8.1.13 (cli) (built: Nov 22 2022 14:42:07) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.13, Copyright (c), by Zend Technologies
    with Xdebug v3.1.6, Copyright (c) 2002-2022, by Derick Rethans

PHP-FPM-installationer av PHP 8.1 på Fedora Linux

Till skillnad från PHP-FPM-installationer på Debian/Ubuntu som använder (www-data) användare, detta är inte fallet med RHEL-familjens installationer. Som standard på Fedora är PHP-FPM-tjänsten designad för att köras av (Apache) användare, vilket är felaktigt eftersom vi använder Nginx, vilket behövde korrigeras.

Öppna först följande (www.conf) konfigurationsfil:

sudo nano /etc/php-fpm.d/www.conf

Byt sedan ut (Apache) användare och grupp med (Nginx) användare och grupp.

Exempel med användarnamn ursprungligen Apache:

exempel ändra php fpm från apache-exempel till nginx på fedora linux före exempel

Exempel med byte av användarnamn till Nginx:

exempel ändra php fpm från apache-exempel till nginx på fedora linux komplett exempel

För att spara, tryck (CTRL+O) för nanoredigeraren, avsluta sedan (CTRL+X).

Nu kommer du också att ladda om eller starta om din PHP-FPM-tjänst.

sudo systemctl restart php-fpm

Nginx-konfiguration

Nginx-serverblocket behöver följande exempel nedan för att Nginx ska kunna bearbeta PHP-filerna.

Nedan är ett exempel för alla server {} block som bearbetar PHP-filer som behöver plats ~ .php$ lagt till.

ENDAST exempel:

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

Testa Nginx för att se till att du inte har några fel med justeringarna som gjorts med koden ovan; Skriv följande.

sudo nginx -t

Exempel utmatning:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starta om Nginx-tjänsten för att installationen ska vara klar.

sudo systemctl restart nginx


Inte vad du letade efter? Försök att söka efter ytterligare tutorials.