Nainštalujte PHP 8.1 a nastavte lokálne vývojové prostredie na Ubuntu


Predchádzajúcu verziu tohto tutoriálu napísala alenaholligan.

Úvod

PHP je populárny open-source skriptovací jazyk na strane servera navrhnutý na vývoj webu a poháňa významnú časť internetu od blogov a e-shopov až po veľké aplikácie. S každým novým vydaním PHP prináša lepší výkon, bezpečnosť a moderné vývojové funkcie, ktoré pomáhajú vývojárom vytvárať robustný a škálovateľný softvér.

PHP 8.1 je stabilná verzia s dlhodobou podporou, ktorá prináša významné vylepšenia a nové jazykové funkcie pri zachovaní spoľahlivosti. Inštalácia PHP 8.1 na Ubuntu zabezpečuje, že vaše lokálne vývojové prostredie je aktuálne, bezpečné a kompatibilné s bežne používanými rámcami a platformami ako WordPress, Laravel a vlastné PHP aplikácie.

Tento návod vás prevedie inštaláciou PHP 8.1 na Ubuntu, jeho konfiguráciou s Apache alebo Nginx, nastavením základných PHP rozšírení a inštaláciou Composeru pre správu závislostí. Tiež sa naučíte, ako overiť svoju inštaláciu a riešiť bežné problémy.

Nasadzujte svoje PHP aplikácie z GitHubu pomocou platformy Linux-Console.net App. Nechajte Linux-Console.net, aby sa postaral o škálovanie vašej aplikácie.

Hlavné poznatky

  • Inštalácia PHP 8.1 na Ubuntu 22.04: Ubuntu 22.04 LTS obsahuje PHP 8.1 vo svojich predvolených repozitároch, čo vám umožňuje nainštalovať stabilnú verziu PHP s dlhodobou podporou pomocou apt bez potreby tretích strán PPAs. Toto zabezpečuje predvídateľné aktualizácie, bezpečnostné záplaty a kompatibilitu s modernými PHP frameworkmi.

  • Nezbytné PHP rozšírenia pre reálne projekty: Väčšina PHP aplikácií určených na produkciu sa spolieha na rozšírenia ako mysql, curl, xml, mbstring, zip, gd a bcmath. Ich včasná inštalácia zabraňuje chybám počas behu a zaručuje kompatibilitu s frameworkmi ako Laravel, Symfony a WordPress.

  • Výber medzi Apache a Nginx pre vývoj PHP: Apache môže vykonávať PHP priamo pomocou mod_php, zatiaľ čo Nginx vyžaduje PHP‑FPM na spracovanie požiadaviek. Obe prístupy fungujú dobre pre lokálny vývoj, ale PHP‑FPM lepšie odráža moderné produkčné prostredie a lepšie sa škáluje pri zaťažení.

  • Composer ako základ moderných PHP workflowov: Composer spravuje závislosti projektu cez composer.json a composer.lock, čím zabezpečuje konzistentné zostavenie na rôznych počítačoch. Je nevyhnutný na inštaláciu frameworkov, generovanie autoloaderov a udržiavanie spoľahlivých verzií závislostí v spoluprácou vytváraných PHP projektoch.

  • Konfigurácia PHP špeciálne pre vývoj: Vývojové prostredia profitujú z podrobného hlásenia chýb, vyšších limitov pamäte a dlhšieho času vykonávania. Úprava týchto nastavení v php.ini pomáha rýchlo odhaliť chyby počas vývoja, ale pri nasadení do produkcie ich treba vždy vrátiť späť.

  • Riešenie problémov a overovanie sú súčasťou nastavenia: Overenie PHP pomocou php -v, kontrola načítaných rozšírení a prehliadanie logov Apache, Nginx alebo PHP‑FPM sú kľúčové kroky. Väčšina problémov pri nastavení vzniká z dôvodu chýbajúcich rozšírení, oprávnení alebo nesprávne nakonfigurovaných direktív webového servera.

Predpoklady

Na dokončenie tohto tutoriálu potrebujete:

  • Lokálny počítač alebo virtuálny server s operačným systémom Ubuntu (kompatibilný s Ubuntu 22.04 LTS a novšími verziami)
  • Administrátorský (sudo) prístup k zariadeniu
  • Aktívne pripojenie na internet
  • Základná znalosť príkazového riadka

Ak nastavujete nový server s Ubuntu, pozrite si náš návod na počiatočné nastavenie servera s Ubuntu.

Krok 1 — Nastavenie PHP 8.1

Dokončíte inštaláciu a nastavenie cez príkazový riadok, čo je ne-grafický spôsob interakcie s počítačom. To znamená, že namiesto klikania na tlačidlá budete zadávať text a dostávať spätnú väzbu od počítača tiež cez text.

Príkazový riadok, známy aj ako shell alebo terminál, vám môže pomôcť upravovať a automatizovať mnoho úloh, ktoré každý deň robíte na počítači, a je nevyhnutným nástrojom pre softvérových vývojárov. Existuje veľa terminálových príkazov, ktoré sa môžete naučiť a umožnia vám robiť výkonnejšie veci. Článok Úvod do Linuxového terminálu vám môže pomôcť lepšie sa zorientovať v termináli.

Poznámka: Ak ste v Ubuntu nováčik, zvážte preštudovanie našej dokumentácie k Ubuntu pre ďalšie pokyny k správe systému.

Na Ubuntu môžete nájsť aplikáciu Terminál kliknutím na ikonu Ubuntu v ľavom hornom rohu obrazovky a do vyhľadávacieho poľa zadajte terminál. Kliknite na ikonu aplikácie Terminál, aby ste ju otvorili. Prípadne môžete súčasne stlačiť klávesy CTRL, ALT a T na klávesnici a aplikácia Terminál sa otvorí automaticky.

Poznámka: Na Ubuntu 22.04 LTS je PHP 8.1 k dispozícii v predvolených repozitároch. Keď nainštalujete PHP bez určenia verzie na Ubuntu 22.04, systém automaticky nainštaluje PHP 8.1.

Ak potrebujete spravovať viacero verzií PHP alebo nainštalovať inú verziu, zvážte použitie phpenv alebo phpbrew na správu verzií.

Spustite nasledujúce príkazy na aktualizáciu zoznamu dostupných balíkov a potom nainštalujte PHP 8.1:

sudo apt update
sudo apt install --no-install-recommends php8.1

Prepínač --no-install-recommends zabezpečí, že sa nebudú inštalovať ďalšie balíky, ako napríklad webový server Apache.

Skontrolujte informácie o verzii PHP pomocou nasledujúceho príkazu:

php -v

Dostanete výstup ako tento:

PHP 8.1.2-1ubuntu2.22 (cli) (built: Jul 15 2025 12:11:22) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.22, Copyright (c), by Zend Technologies

Táto konfigurácia bola testovaná na Ubuntu 22.04 LTS pomocou balíčkov PHP 8.1 z oficiálnych repozitárov Ubuntu.

Nainštalujte základné PHP rozšírenia pre webový vývoj:

sudo apt install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath

Tento príkaz nainštaluje nasledujúce moduly:

  • php8.1-cli - príkazový interpret, užitočný na testovanie PHP skriptov zo shellu alebo na vykonávanie všeobecných úloh shell skriptovania
  • php8.1-common - dokumentácia, príklady a bežné moduly pre PHP
  • php8.1-mysql - na prácu s databázami MySQL
  • php8.1-zip - na prácu s komprimovanými súbormi
  • php8.1-gd - na prácu s obrázkami
  • php8.1-mbstring - používa sa na prácu s ne-ASCII reťazcami
  • php8.1-curl - umožňuje vám robiť HTTP požiadavky v PHP
  • php8.1-xml - na prácu s XML dátami
  • php8.1-bcmath - používa sa pri práci s desatinnými číslami s presnosťou

Konfiguračné súbory PHP sú uložené v /etc/php/8.1/. Hlavný konfiguračný súbor je php.ini, ktorý sa môže nachádzať v rôznych adresároch v závislosti od vašej konfigurácie:

  • Konfigurácia CLI: /etc/php/8.1/cli/php.ini
  • Konfigurácia Apache: /etc/php/8.1/apache2/php.ini (ak je nainštalovaný Apache)
  • Konfigurácia PHP-FPM: /etc/php/8.1/fpm/php.ini (ak je PHP-FPM nainštalovaný)

Overiť nainštalované rozšírenia:

php -m

Toto zobrazuje všetky načítané PHP moduly. Ak php -v ukazuje inú verziu než očakávate, máte pravdepodobne nainštalovaných viacero verzií PHP. Použite php8.1 -v na overenie PHP 8.1 konkrétne.

Nainštalovali ste PHP a overili verziu, ktorú máte spustenú. Tiež ste nainštalovali všetky potrebné PHP moduly a boli ste schopní zobraziť moduly, ktoré máte načítané.

Krok 2 — Konfigurácia PHP s Apache

Nainštalujte modul Apache PHP:

sudo apt install libapache2-mod-php8.1

Povoľte modul a reštartujte Apache:

sudo a2enmod php8.1
sudo systemctl restart apache2

Pochopenie mod_php: Modul mod_php vkladá PHP priamo do procesu Apache. Keď Apache dostane požiadavku na PHP súbor, spracuje ho interne pomocou vloženého PHP interpretéra. To sa líši od Nginxu, ktorý vyžaduje samostatnú službu PHP-FPM. Príkaz a2enmod vytvorí symbolický odkaz v /etc/apache2/mods-enabled/ na aktiváciu modulu.

Overte, či Apache spracováva PHP správne, vytvorením testovacieho súboru v dokumentovom koreňovom adresári Apache (zvyčajne /var/www/html):

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Navštívte http://localhost/info.php vo vašom prehliadači. Mali by ste vidieť stránku s konfiguračnými informáciami PHP. Po otestovaní tento súbor odstráňte kvôli bezpečnosti:

sudo rm /var/www/html/info.php

Riešenie problémov s Apache PHP

Ak Apache nezačne po inštalácii mod_php:

Skontrolujte chybový záznam Apache:

sudo tail -20 /var/log/apache2/error.log

Bežné problémy zahŕňajú:

  • Konfliktné PHP moduly: Ak máte viaceré verzie PHP, najprv deaktivujte ostatné PHP moduly príkazom sudo a2dismod php7.4 (ak sú prítomné)
  • Chyby syntaxe v konfigurácii Apache: Spustite sudo apache2ctl configtest na kontrolu

Ak navštívite localhost a uvidíte „It works!“, ale PHP súbory sa zobrazujú ako obyčajný text:

To znamená, že Apache nespracováva PHP. Skontrolujte:

  1. Overte, či je modul povolený:
apache2ctl -M | grep php
  1. Ak sa nič nezobrazí, modul nie je načítaný. Znova ho povolte:
sudo a2enmod php8.1
sudo systemctl restart apache2
  1. Skontrolujte, či má váš PHP súbor správnu príponu (.php) a obsahuje PHP kód

Ak dostanete chybu 403 Zakázané:

Skontrolujte oprávnenia súboru:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

Bezpečnostná poznámka: Funkcia phpinfo() zobrazuje podrobné informácie o systéme. Nikdy nenechávajte súbory obsahujúce phpinfo() na produkčných serveroch.

Konfigurácia virtuálneho hostiteľa Apache

Pre lokálny vývoj s vlastnými doménami vytvorte virtuálny hostiteľ:

sudo nano /etc/apache2/sites-available/example.local.conf

Pridajte túto konfiguráciu:

<VirtualHost *:80>
    ServerName example.local
    DocumentRoot /var/www/example.local
    <Directory /var/www/example.local>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
  • ServerName: Názov domény pre tento virtuálny hostiteľ
  • DocumentRoot: Kde sa nachádzajú vaše PHP súbory
  • AllowOverride All: Umožňuje súborom .htaccess prepisovať nastavenia Apache (potrebné pre frameworky ako Laravel)
  • Require all granted: Umožňuje prístup do adresára

Vytvorte adresár, povoľte stránku a reštartujte Apache:

sudo mkdir -p /var/www/example.local
sudo chown -R www-data:www-data /var/www/example.local
sudo a2ensite example.local.conf
sudo systemctl restart apache2

Pridajte doménu do vášho súboru /etc/hosts pre lokálny prístup:

echo "127.0.0.1 example.local" | sudo tee -a /etc/hosts

Výber medzi Apache a Nginx

Pred konfiguráciou vášho webového servera zvážte, ktorý z nich najlepšie vyhovuje vašim potrebám:

FunkciaApache s mod_phpNginx s PHP-FPM
Spracovanie PHPVložené v procese ApacheSamostatná služba PHP-FPM
Využitie pamäteVyššie (PHP v každom procese Apache)Nižšie (samostatný procesný pool)
VýkonVhodné pre nízku až strednú premávkuLepšie pre vysokú premávku a súbežné požiadavky
KonfiguráciaJednoduchšie počiatočné nastavenieZložitejšie (vyžaduje konfiguráciu PHP-FPM)
Podpora .htaccessNativná podporaNie je podporované (musí sa nakonfigurovať v blokoch servera)
Produkčné použitieBežné pri zdieľanom hostinguBežné v moderných nasadeniach
Krivka učeniaJednoduchšie pre začiatočníkovStrmšia učebná krivka
Efektívnosť zdrojovMenej efektívny pri vysokom zaťaženíEfektívnejší pri vysokom zaťažení

Kedy zvoliť Apache:

  • Poznáte Apache alebo potrebujete podporu pre .htaccess
  • Nastavenie jednoduchého vývojového prostredia
  • Práca s rámcami, ktoré sa silno spoliehajú na .htaccess (niektoré inštalácie WordPressu)
  • Uprednostňujete jednoduchšie počiatočné nastavenie

Kedy si vybrať Nginx:

  • Potrebujete lepší výkon pri veľkom zaťažení
  • Chcete napodobniť moderné výrobné prostredia
  • Budujete aplikácie, ktoré sa dokážu škálovať
  • Uprednostňujete modernejšiu architektúru

Obe fungujú rovnako dobre pre lokálny vývoj. Voľba často závisí od osobných preferencií alebo existujúcej infraštruktúry.

Krok 3 — Konfigurácia PHP s Nginx

Nainštalujte PHP-FPM (Správca procesov FastCGI):

sudo apt install php8.1-fpm

Spustite a povoľte PHP-FPM:

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

Pochopenie PHP-FPM a FastCGI: Na rozdiel od Apache mod_php, Nginx nespracováva PHP priamo. PHP-FPM (FastCGI Process Manager) beží ako samostatná služba, s ktorou Nginx komunikuje pomocou protokolu FastCGI. FastCGI je binárny protokol pre komunikáciu programov s webovými servermi – je rýchlejší než tradičné CGI, pretože udržiava procesy aktívne medzi požiadavkami.

Keď Nginx dostane požiadavku na PHP súbor, presmeruje ju na PHP-FPM pomocou Unix socketu (alebo TCP pripojenia). PHP-FPM spracuje PHP kód a vráti výsledok Nginx, ktorý ho potom pošle klientovi. Toto oddelenie umožňuje PHP-FPM spravovať vlastný bazén procesov, čím sa zlepšuje výkon a správa zdrojov.

Konfigurácia blokov servera Nginx

Vytvorte konfiguráciu blokovania servera:

sudo nano /etc/nginx/sites-available/example.local

Pridajte túto konfiguráciu:

server {
    listen 80;
    server_name example.local;
    root /var/www/example.local;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Vysvetlenie konfigurácie:

  • root: Adresár, kde sa nachádzajú vaše PHP súbory
  • location ~ \.php$: Zodpovedá všetkým požiadavkám končiacim na .php pomocou regulárneho výrazu
  • include snippets/fastcgi-php.conf: Zahŕňa predvolenú FastCGI konfiguráciu Nginxu (nastavuje SCRIPT_FILENAME a ďalšie potrebné premenné)
  • fastcgi_pass unix:/var/run/php/php8.1-fpm.sock: Unix soket, na ktorom PHP-FPM počúva. Takto komunikuje Nginx s PHP-FPM. Cesta k soketu je definovaná v /etc/php/8.1/fpm/pool.d/www.conf

Povoľte stránku a otestujte konfiguráciu:

sudo mkdir -p /var/www/example.local
sudo chown -R www-data:www-data /var/www/example.local
sudo ln -s /etc/nginx/sites-available/example.local /etc/nginx/sites-enabled/
sudo nginx -t

Ak test prejde, reštartujte Nginx:

sudo systemctl restart nginx

Pridajte doménu do /etc/hosts:

echo "127.0.0.1 example.local" | sudo tee -a /etc/hosts

Vytvorte testovací PHP súbor:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.local/info.php

Navštívte http://example.local/info.php. Mali by ste vidieť konfiguračnú stránku PHP. Po overení odstráňte testovací súbor:

sudo rm /var/www/example.local/info.php

Riešenie problémov s Nginx a PHP

Ak sa vám zobrazí chyba „502 Bad Gateway“:

To znamená, že Nginx nemôže komunikovať s PHP-FPM. Skontrolujte:

  1. Skontrolujte, či PHP-FPM beží:
sudo systemctl status php8.1-fpm
  1. Skontrolujte, či je cesta k zásuvke správna. Umiestnenie zásuvky je definované v /etc/php/8.1/fpm/pool.d/www.conf:
grep listen /etc/php/8.1/fpm/pool.d/www.conf

Mali by ste vidieť niečo ako listen=/run/php/php8.1-fpm.sock. Cesta vo vašej konfigurácii Nginxu sa musí presne zhodovať. Všimnite si, že /var/run je často symbolický odkaz na /run, takže obidve cesty fungujú.

  1. Skontrolujte oprávnenia súboru socketu:
ls -la /var/run/php/php8.1-fpm.sock

Zásuvka by mala patriť používateľovi www-data alebo používateľovi, pod ktorým beží Nginx. Ak sú práva nesprávne:

sudo chown www-data:www-data /var/run/php/php8.1-fpm.sock
  1. Skontrolujte chybový záznam Nginx:
sudo tail -20 /var/log/nginx/error.log

Môžete vidieť chyby ako:

connect() to unix:/var/run/php/php8.1-fpm.sock failed (2: No such file or directory)

To naznačuje, že cesta k soketu je nesprávna alebo PHP-FPM nebeží.

Ak sa súbory PHP sťahujú namiesto spustenia:

To znamená, že Nginx neposiela PHP súbory do PHP-FPM. Skontrolujte:

  • Blok location ~ \.php$ existuje vo vašej konfigurácii servera
  • Direktíva fastcgi_pass ukazuje na správnu soketu
  • Po vykonaní zmien ste reštartovali Nginx

Ak sa vám zobrazí chyba „Súbor nenájdený“:

Skontrolujte, či snippets/fastcgi-php.conf existuje:

ls -la /etc/nginx/snippets/fastcgi-php.conf

Tento súbor nastavuje SCRIPT_FILENAME, ktorý hovorí PHP-FPM, ktorý súbor má vykonať. Bez toho PHP-FPM nevie, ktorý súbor spracovať.

Krok 4 — Konfigurácia PHP pre vývoj

Nakonfigurujte PHP pre vývoj úpravou hlásenia chýb, nastavení zobrazovania a limitov pamäte v php.ini. Tieto nastavenia sa líšia od produkčných konfigurácií.

PHP používa samostatné konfiguračné súbory pre použitie v CLI (príkazový riadok) a webovom serveri. Upravte príslušný súbor:

Pre CLI (pri spustení PHP z terminálu):

sudo nano /etc/php/8.1/cli/php.ini

Pre webový server (Apache alebo Nginx s PHP-FPM):

# For Apache
sudo nano /etc/php/8.1/apache2/php.ini

# For PHP-FPM (Nginx)
sudo nano /etc/php/8.1/fpm/php.ini

Poznámka: Ak používate zároveň CLI a webový server, musíte nakonfigurovať oba súbory samostatne. Zmeny v cli/php.ini neovplyvnia webové požiadavky a zmeny v apache2/php.ini alebo fpm/php.ini neovplyvnia skripty CLI.

Základné nastavenia vývoja

Nájdite tieto nastavenia vo vašom súbore php.ini a aktualizujte ich:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = America/New_York

Čo robí každé nastavenie:

  • display_errors=On: Zobrazuje chyby PHP priamo v prehliadači (užitočné pri ladení, nebezpečné v produkcii)
  • display_startup_errors=On: Zobrazuje chyby, ktoré sa vyskytujú počas spúšťania PHP
  • error_reporting=E_ALL: Hlási všetky typy chýb (varovania, upozornenia atď.)
  • log_errors=On: Zapisuje chyby do súboru protokolu
  • error_log: Kde PHP zapisuje záznamy chýb
  • memory_limit=256M: Maximálna pamäť, ktorú môže skript použiť (zvýšte, ak sa zobrazia chyby „pamäť vyčerpaná“)
  • upload_max_filesize=64M: Maximálna veľkosť pre nahrávané súbory
  • post_max_size=64M: Maximálna veľkosť pre POST dáta (musí byť väčšia ako upload_max_filesize)
  • max_execution_time=300: Maximálny čas, počas ktorého môže skript bežať (v sekundách)
  • date.timezone: Nastavuje predvolené časové pásmo (použite svoje miestne časové pásmo: Asia/Kolkata, Europe/London, UTC a pod.)

Varovanie pre produkciu: Nikdy nepoužívajte tieto nastavenia vývoja v produkcii. Vždy nastavte display_errors=Off a používajte vhodné úrovne hlásenia chýb na živých serveroch.

Po vykonaní zmien reštartujte svoj webový server:

# For Apache
sudo systemctl restart apache2

# For PHP-FPM
sudo systemctl restart php8.1-fpm

Overovanie vašej konfigurácie

Skontrolujte, či sa vaše zmeny prejavili:

# For CLI
php -i | grep display_errors

# For web server (create a test file)
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/test.php

Navštívte testovací súbor vo vašom prehliadači a vyhľadajte display_errors. Malo by to ukazovať On. Odstráňte testovací súbor po overení.

Ak sa vaše zmeny nezobrazia:

  1. Uistite sa, že ste upravili správny súbor php.ini (CLI vs webový server)
  2. Skontrolujte pravopis názvov nastavení (rozlišujú veľké a malé písmená)
  3. Reštartujte svoj webový server po vykonaní zmien
  4. Niektoré nastavenia môžu byť prepísané súborom .htaccess (Apache) alebo php.ini vo vašom adresári projektu

Mohli by ste začať používať PHP hneď teraz, ale pravdepodobne budete chcieť používať rôzne knižnice na rýchle vytváranie PHP aplikácií. Pred tým, než otestujete svoje PHP prostredie, najprv nastavte správcu závislostí pre vaše projekty.

Krok 5 — Nastavenie Composer pre správu závislostí (voliteľné)

Knižnice sú zbierky kódu, ktoré vám môžu pomôcť riešiť bežné problémy bez toho, aby ste museli všetko písať sami. Keďže je k dispozícii mnoho knižníc, používanie správcu závislostí vám pomôže spravovať viacero knižníc, keď získate väčšie skúsenosti s písaním PHP.

Composer je nástroj na správu závislostí v PHP. Umožňuje vám deklarovať knižnice, od ktorých váš projekt závisí, a bude ich inštalovať a aktualizovať.

Hoci je podobný, Composer nie je správca balíkov v rovnakom zmysle ako yum alebo apt. Zaoberá sa „balíkmi“ alebo knižnicami, ale spravuje ich na báze jednotlivých projektov, inštalujúc ich do adresára (napr. vendor) vo vnútri vášho projektu. Štandardne nič neinštaluje globálne. Preto je to správca závislostí. Podporuje však globálny projekt pre pohodlie prostredníctvom príkazu global.

Táto myšlienka nie je nová a Composer je silne inšpirovaný Nodeovým npm a Ruby bundler.

Predpokladajme:

  • Máte projekt, ktorý závisí od niekoľkých knižníc.
  • Niektoré z týchto knižníc závisia od iných knižníc.

Skladateľ:

  • Umožňuje vám deklarovať knižnice, na ktorých závisíte.
  • Zistí, ktoré verzie ktorých balíkov sa dajú a je potrebné nainštalovať, a nainštaluje ich stiahnutím do vášho projektu.
  • Umožňuje vám aktualizovať všetky vaše závislosti jedným príkazom.
  • Umožňuje vám zobraziť kapitolu Základné používanie pre podrobnejšie informácie o deklarovaní závislostí.

Stiahnite si inštalátor Composer-a:

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

Overte integritu inštalátora kontrolou jeho SHA-384 hash. Získajte najnovší hash:

HASH=$(curl -sS https://composer.github.io/installer.sig)

Overte, či sa zhoda hašu:

php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"

Mal by si vidieť:

Installer verified

Ak vidíte Installer corrupt, sťahovanie bolo neúplné alebo upravené. Stiahnite inštalátor znova a overte jeho hash. Ak problém pretrváva, skontrolujte svoje internetové pripojenie alebo skúste stiahnuť zo siete iného poskytovateľa.

Nainštalujte Composer globálne:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Dostanete výstup podobný tomuto:

All settings correct for using Composer
Downloading...

Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Otestujte svoju inštaláciu:

composer

Dostanete výstup ako nasledujúci:

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.3.5 2022-04-13 16:43:00

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display help for the given command. When no command is given display help for the list command
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi|--no-ansi           Force (or disable --no-ansi) ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
      --no-scripts               Skips the execution of all scripts defined in composer.json file.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .

Týmto sa overuje, že Composer bol úspešne nainštalovaný vo vašom systéme a je dostupný v celom systéme.

Poznámka: Ak si prajete mať samostatné spustiteľné súbory Composer pre každý projekt, ktorý hosťujete na svojom serveri, môžete ho nainštalovať lokálne, pre každý projekt zvlášť. Táto metóda je užitočná aj v prípade, že váš systémový používateľ nemá oprávnenie inštalovať softvér pre celý systém.

Na toto použite príkaz php /tmp/composer-setup.php bez akýchkoľvek argumentov. Tento príkaz vygeneruje súbor composer.phar vo vašom aktuálnom priečinku, ktorý môžete spustiť pomocou php composer.phar.

Krok 6 — Používanie Composeru v PHP projekte

Ako posledný krok môžete voliteľne inicializovať svoj projekt pomocou composer init. Tým sa vytvorí súbor composer.json, ktorý bude spravovať závislosti vášho projektu. Inicializácia projektu vám tiež umožní definovať detaily projektu, ako je Autor a Licencia, a používať funkciu autoload Composeru. Závislosti môžete definovať teraz alebo pridať neskôr.

Vytvorte adresár projektu a inicializujte Composer:

cd ~
mkdir example-project
cd example-project
composer init

Spustením tohto príkazu sa spustí inštalačný sprievodca. Údaje, ktoré zadáte v sprievodcovi, je možné neskôr aktualizovať, takže sa pokojne môžete držať predvolených nastavení a jednoducho stlačiť ENTER. Ak nie ste pripravení nainštalovať žiadne závislosti, môžete zvoliť no. Zadajte svoje údaje pri každom výzve:

                                            
  Welcome to the Composer config generator  
                                            


This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [sammy/example-project]:  sammy/project1
Description []:
Author [n to skip]: Sammy <sammy@linux-console.net>
Minimum Stability []: 
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []: 

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

Add PSR-4 autoload mapping? Maps namespace "Sammy\Project1" to the entered relative path. [src/, n to skip]: n

{
    "name": "sammy/project1",
    "type": "project",
    "authors": [
        {
            "name": "Sammy",
            "email": "sammy@linux-console.net"
        }
    ],
    "require": {}
}

Do you confirm generation [yes]? yes

Predtým ako potvrdíte generovanie, uvidíte ukážku súboru composer.json, ktorý sprievodca vytvorí. Ak všetko vyzerá v poriadku, môžete potvrdiť predvolenú možnosť áno. Ak potrebujete začať odznova, vyberte nie.

Prvýkrát, keď definujete akúkoľvek závislosť, Composer vytvorí priečinok vendor. Všetky závislosti sa inštalujú do tohto priečinka vendor. Composer tiež vytvorí súbor composer.lock. Tento súbor určuje presnú verziu každej závislosti a podzávislosti používanú vo vašom projekte. To zaručuje, že akýkoľvek počítač, na ktorom sa váš program spustí, bude používať presne tú istú verziu každého balíka.

Poznámka: Zložka vendor by nikdy nemala byť commitovaná do vášho systému správy verzií (VCS). Zložka vendor obsahuje iba balíčky, ktoré ste nainštalovali od iných dodávateľov. Títo jednotliví dodávatelia spravujú svoj kód vo svojich vlastných systémoch správy verzií. Mali by ste sledovať iba kód, ktorý sami píšete. Namiesto commitovania zložky vendor stačí commitovať iba súbory composer.json a composer.lock. Viac informácií o ignorovaní konkrétnych súborov sa dozviete v príručke How To Use Git: A Reference Guide.

Teraz, keď máte nainštalovaný PHP a spôsob, ako spravovať závislosti vášho projektu pomocou Composeru, ste pripravení otestovať svoje prostredie.

Krok 7 — Testovanie prostredia PHP

Vytvorte a spustite základný PHP skript na otestovanie vašej inštalácie:

nano hello.php

Pridajte nasledujúci PHP kód:

<?php
echo 'Hello World!';
?>

Uložte a zatvorte súbor (stlačte CTRL+X, potom Y a nakoniec ENTER). Spustite skript:

php hello.php

Ak je PHP spracované správne, uvidíte iba znaky v úvodzovkách:

Hello World!

PHP úspešne spracoval skript, čo znamená, že vaše prostredie PHP je úspešne nainštalované a ste pripravení pokračovať vo svojej programátorskej ceste.

Krok 8 — Nastavenie reálnych PHP projektov

Moderné PHP frameworky ako Laravel, Symfony a WordPress vyžadujú špecifické PHP rozšírenia a Composer. Nainštalujte framework pomocou Composer alebo inštalátora frameworku, potom nakonfigurujte svoj webový server tak, aby smeroval do verejného adresára projektu.

Nastavenie Laravelu

Nainštalujte Laravel pomocou Composer:

composer create-project laravel/laravel my-laravel-app
cd my-laravel-app

Tento príkaz stiahne Laravel a všetky jeho závislosti. Proces môže trvať niekoľko minút.

Laravel vyžaduje tieto PHP rozšírenia (nainštalované v Kroku 1):

  • php8.1-mbstring - Spracovanie viacbajtových reťazcov
  • php8.1-xml - spracovanie XML
  • php8.1-curl - HTTP požiadavky
  • php8.1-zip - Spracovanie archívov
  • php8.1-bcmath - Matematika s ľubovoľnou presnosťou

Ak Laravel hovorí „chýba mbstring“, aj keď ste ho nainštalovali:

To zvyčajne znamená, že rozšírenie je nainštalované, ale nie je načítané. Skontrolujte:

  1. Overte, či je rozšírenie nainštalované:
php -m | grep mbstring
  1. Ak chýba, nainštalujte ho:
sudo apt install php8.1-mbstring
  1. Ak je nainštalovaný, ale nezobrazuje sa, reštartujte webový server:
# For Apache
sudo systemctl restart apache2

# For PHP-FPM
sudo systemctl restart php8.1-fpm
  1. Skontrolujte, ktorý súbor php.ini sa používa. Inštalátor Laravel používa CLI PHP, takže skontrolujte:
php --ini

Uistite sa, že rozšírenie je povolené v súbore php.ini v CLI.

Overovanie inštalácie Laravel:

Po dokončení inštalácie spustite vývojový server Laravelu:

php artisan serve

Mal by si vidieť:

INFO  Server running on [http://127.0.0.1:8000]

Navštívte http://localhost:8000 vo vašom prehliadači. Mali by ste vidieť úvodnú stránku Laravelu.

Pre prostredia podobné produkcii s Apache alebo Nginx:

Nakonfigurujte svoj webový server tak, aby smeroval do adresára public (nie do koreňa projektu). Súbor public/index.php v Laravel je vstupným bodom pre všetky požiadavky.

Poznámka: Viac sa o Laravel naučíte v našom návode Ako nainštalovať Laravel na Ubuntu.

Nastavenie WordPress

Stiahnite a rozbaľte WordPress:

cd /var/www
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo chown -R www-data:www-data /var/www/wordpress

WordPress vyžaduje databázu MySQL alebo MariaDB. Nainštalujte MySQL, ak je to potrebné:

sudo apt install mysql-server
sudo mysql_secure_installation

Skript mysql_secure_installation vás vyzve na:

  • Nastavte koreňové heslo
  • Odstrániť anonymných používateľov
  • Zakázať vzdialené prihlásenie ako root
  • Odstrániť testovaciu databázu
  • Znova načítať tabuľky oprávnení

Vytvorte databázu a používateľa pre WordPress:

sudo mysql -u root -p

V príkazovom riadku MySQL:

CREATE DATABASE wordpress_db;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Nahraďte secure_password silným heslom. WordPress tieto prihlasovacie údaje použije na pripojenie k databáze.

Ak sa WordPress nedokáže pripojiť k databáze:

  1. Overte, či MySQL beží:
sudo systemctl status mysql
  1. Otestujte pripojenie k databáze:
mysql -u wpuser -p wordpress_db

Ak to zlyhá, skontrolujte:

  • Používateľské meno a heslo sú správne
  • Databáza existuje: SHOW DATABASES;
  • Používateľ má oprávnenia: SHOW GRANTS FOR 'wpuser'@'localhost';
  1. Skontrolujte, či je nainštalované rozšírenie MySQL pre PHP:
php -m | grep mysql

Ak chýba, nainštalujte ho:

sudo apt install php8.1-mysql
sudo systemctl restart apache2  # or php8.1-fpm for Nginx

Dokončenie inštalácie WordPress:

Nakonfigurujte svoj webový server tak, aby smeroval na /var/www/wordpress (pozrite Krok 2 pre Apache alebo Krok 3 pre Nginx). Navštívte stránku vo vašom prehliadači. WordPress vás vyzve, aby ste:

  1. Vyberte svoj jazyk
  2. Zadajte prihlasovacie údaje do databázy (použite databázu, používateľské meno a heslo, ktoré ste vytvorili)
  3. Dokončiť inštaláciu

Poznámka: Pre podrobnú inštaláciu WordPressu si pozrite Ako nainštalovať WordPress s LAMP na Ubuntu.

Nastavenie Symfony

Nainštalujte Symfony pomocou Composer:

composer create-project symfony/website-skeleton my-symfony-app
cd my-symfony-app

Symfony vyžaduje rovnaké rozšírenia ako Laravel. Spustite vývojový server:

symfony server:start

Alebo použite vstavaný server PHP:

php -S localhost:8000 -t public

Ak inštalácia Symfony zlyhá kvôli chybám rozšírení:

Skontrolujte, či sú všetky potrebné rozšírenia nainštalované a načítané:

php -m | grep -E 'mbstring|xml|curl|zip|bcmath'

Ak niektoré chýbajú, nainštalujte ich a reštartujte svoj webový server.

Krok 9 — Najlepšie postupy pre lokálny vývoj

Zabezpečte svoje lokálne prostredie, používajte systém kontroly verzií, nastavte správne oprávnenia súborov a nakonfigurujte nastavenia špecifické pre prostredie. Tieto postupy zabraňujú bezpečnostným problémom a uľahčujú vývoj.

Bezpečnostné úvahy

Aj pri lokálnom vývoji dodržiavajte najlepšie bezpečnostné postupy:

  1. Zakázať nebezpečné PHP funkcie v produkcii: Funkcie ako exec(), system() a shell_exec() by mali byť obmedzené v produkčných súboroch php.ini.

  2. Používajte premenné prostredia: Ukladajte citlivé konfigurácie do súborov .env (nikdy ich nezverejňujte do verziovacieho systému). Laravel a Symfony to podporujú natívne.

  3. Nastavte správne oprávnenia súborov: Súbory webového servera by mali byť čitateľné používateľom webového servera, ale nemali by byť zapisovateľné:

sudo chown -R www-data:www-data /var/www/your-project
sudo find /var/www/your-project -type d -exec chmod 755 {} \;
sudo find /var/www/your-project -type f -exec chmod 644 {} \;

Prečo sú tieto oprávnenia dôležité: Složky potrebujú 755 (čítanie, zápis, spustenie pre vlastníka; čítanie a spustenie pre ostatných), aby ich webový server mohol prechádzať. Súbory potrebujú 644 (čítanie a zápis pre vlastníka; iba čítanie pre ostatných), aby ich webový server mohol čítať, ale nemohol ich upravovať. To zabraňuje škodlivým skriptom prepísať vaše súbory.

Integrácia verzovacieho systému

Vždy používajte verzionovanie pre svoje PHP projekty. Inicializujte Git vo svojom projektovom adresári:

cd /var/www/your-project
git init

Vytvorte súbor .gitignore na vylúčenie nepotrebných súborov:

/vendor/
/node_modules/
.env
.DS_Store
*.log

Optimalizácia výkonu

Pre lepší výkon v lokálnom vývoji:

  • Povoliť OPcache: OPcache je súčasťou PHP 8.1 a zlepšuje výkon ukladaním skompilovaného PHP kódu do vyrovnávacej pamäte.

  • Použite optimalizáciu autoloadera Composeru:

composer install --optimize-autoloader --no-dev
  • Konfigurujte PHP-FPM pooly pre lepšie riadenie zdrojov pri používaní Nginx.

Krok 10 — Riešenie bežných problémov

Bežné problémy pri inštalácii PHP zahŕňajú chýbajúce rozšírenia, nesprávne povolenia súborov, chyby konfigurácie webového servera a konflikty verzií. Väčšinu problémov je možné vyriešiť kontrolou inštalácie rozšírení, overením povolení súborov a prehliadnutím záznamov webového servera.

PHP rozšírenia sa nenačítavajú

Ak príkaz php -m nezobrazuje rozšírenie, ktoré ste práve nainštalovali:

  • Overte, či je skutočne nainštalovaný:
dpkg -l | grep php8.1-extension_name
  • Skontrolujte, či existuje súbor rozšírenia:
ls /usr/lib/php/*/extension_name.so
  • Overte, či je to povolené v php.ini. Niektoré rozšírenia je potrebné povoliť výslovne:
grep -i extension_name /etc/php/8.1/*/php.ini
  • Reštartujte svoj webový server:
# For Apache
sudo systemctl restart apache2

# For PHP-FPM
sudo systemctl restart php8.1-fpm
  • Skontrolujte, ktorý súbor php.ini sa používa:
php --ini

Uistite sa, že kontrolujete správny súbor php.ini (CLI vs webový server).

Ak sa rozšírenie stále nezobrazuje:

  • Niektoré rozšírenia vyžadujú ďalšie systémové knižnice. Skontrolujte dokumentáciu rozšírenia.
  • Overte si, či ste nainštalovali správnu verziu (php8.1-extension, nie php8.0-extension)
  • Skontrolujte konfliktné verzie PHP, ktoré by mohli spôsobovať problémy

500 Chyba vnútorného servera

Chyba 500 znamená, že server narazil na problém, ale nemôže zobraziť podrobnosti. Skontrolujte protokoly chýb:

# Apache
sudo tail -20 /var/log/apache2/error.log

# Nginx
sudo tail -20 /var/log/nginx/error.log

# PHP-FPM
sudo tail -20 /var/log/php8.1-fpm.log

Bežné príčiny a riešenia:

  1. Nesprávne oprávnenia súborov: Súbory PHP musia byť čitateľné používateľom webového servera
sudo chown -R www-data:www-data /var/www/your-project
sudo find /var/www/your-project -type f -exec chmod 644 {} \;
sudo find /var/www/your-project -type d -exec chmod 755 {} \;
  1. Chýbajúce PHP rozšírenia: Skontrolujte protokol chýb pre správy ako „Volanie na nedefinovanú funkciu“. Nainštalujte chýbajúce rozšírenie a reštartujte webový server.

  2. Syntaktické chyby v PHP súboroch: V zázname chýb sa zobrazí súbor a číslo riadku. Bežné problémy:

    • Chýbajúce bodkočiarky
    • Neuzavreté zátvorky alebo úvodzovky
    • Používanie nedefinovaných funkcií alebo tried
  3. Nesprávna konfigurácia webového servera:

    • Apache: Skontrolujte konfiguráciu virtuálneho hostiteľa, načítanie modulov
    • Nginx: Overenie cesty k socketu PHP-FPM, konfigurácia FastCGI
  4. Prekročený limit pamäte PHP: Zvýšte memory_limit v php.ini, ak sa vám zobrazujú chyby „Vyčerpaná povolená veľkosť pamäte“

Konflikty verzií PHP

Ak php -v zobrazuje inú verziu, než ste očakávali, máte nainštalovaných viacero verzií PHP.

Skontrolujte, ktoré verzie sú nainštalované:

dpkg -l | grep php | grep -E 'php[0-9]'

Použite správnu verziu výslovne:

php8.1 -v
php8.1 -m

Aktualizujte svoj webový server na používanie PHP 8.1:

Pre Apache vypnite ostatné PHP moduly a povoľte PHP 8.1:

sudo a2dismod php7.4 php8.0  # if they exist
sudo a2enmod php8.1
sudo systemctl restart apache2

Pre PHP-FPM zastavte ostatné verzie a spustite PHP 8.1:

sudo systemctl stop php7.4-fpm php8.0-fpm  # if they exist
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

Nastavte PHP 8.1 ako predvolenú verziu pre CLI:

sudo update-alternatives --set php /usr/bin/php8.1

Problémy s pamäťou kompozitora

Ak Composer vyčerpá pamäť, uvidíte chybu ako:

Fatal error: Allowed memory size of 134217728 bytes exhausted

Opraviť to spustením Composeru s väčšou pamäťou:

php -d memory_limit=512M /usr/local/bin/composer install

Alebo zvýšte limit pamäte PHP v php.ini:

memory_limit = 512M

Ak inštalácia Composeru zlyhá kvôli nezhode hash hodnoty:

Overenie hash môže zlyhať, ak:

  • Inštalátor bol aktualizovaný od vášho posledného stiahnutia (stiahnite znova, aby ste získali najnovší hash)
  • Váš súbor na stiahnutie bol poškodený (skúste to stiahnuť znova)
  • Ste za proxy serverom, ktorý upravuje súbory (skontrolujte svoje sieťové nastavenia)

Problémy s pripojením k databáze

Ak sa vaša PHP aplikácia nemôže pripojiť k MySQL/MariaDB, môžete vidieť chyby ako:

SQLSTATE[HY000] [2002] No such file or directory

alebo

Access denied for user 'username'@'localhost'

Kroky na riešenie problémov:

  1. Skontrolujte, či je databázová služba spustená:
sudo systemctl status mysql

Ak nefunguje, spustite ho:

sudo systemctl start mysql
sudo systemctl enable mysql
  1. Skontrolujte, či je nainštalované rozšírenie MySQL pre PHP:
php -m | grep mysql

Ak chýba, nainštalujte ho:

sudo apt install php8.1-mysql
sudo systemctl restart apache2  # or php8.1-fpm for Nginx
  1. Overte poverenia a oprávnenia databázy. Otestujte pripojenie:
mysql -u username -p database_name

Ak to zlyhá, skontrolujte:

  • Používateľské meno a heslo sú správne
  • Databáza existuje: SHOW DATABASES;
  • Používateľ má oprávnenia: SHOW GRANTS FOR 'username'@'localhost';

Poznámka: Pre nastavenie MySQL pozrite si Návod na inštaláciu MySQL na Ubuntu.

Súbor PHP sa zobrazuje ako obyčajný text namiesto vykonávania

Ak sa váš PHP súbor zobrazuje v prehliadači ako obyčajný text:

  1. Skontrolujte príponu súboru: Musí to byť .php, nie .txt alebo .html

  2. Overiť, či PHP spracováva súbory:

    • Apache: Skontrolujte, či je povolený mod_php: apache2ctl -M | grep php
    • Nginx: Skontrolujte, či PHP-FPM beží a či je cesta k socketu správna
  3. Skontrolujte oprávnenia súboru: Webový server musí byť schopný súbor čítať

  4. Overte, či súbor obsahuje PHP kód: Uistite sa, že začína <?php alebo <?

  5. Skontrolujte konfiguráciu webového servera:

    • Apache: Virtuálny hostiteľ nemusí byť správne nakonfigurovaný
    • Nginx: Blok location ~ \.php$ môže chýbať alebo byť nesprávny

Problémy s nahrávaním súborov

Ak sa nahrávanie súborov nepodarí, môže sa zobraziť chyba ako:

The uploaded file exceeds the upload_max_filesize directive

Skontrolujte tieto nastavenia php.ini:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

Dôležité: post_max_size musí byť väčšie ako upload_max_filesize. Ak nastavíte upload_max_filesize=100M, nastavte post_max_size=110M alebo viac.

Ak nahrávanie stále zlyháva:

  1. Skontrolujte protokol chýb pre konkrétne chybové hlásenia
  2. Overte, či adresár na nahrávanie existuje a je zapisovateľný:
sudo chmod 755 /path/to/upload/directory
sudo chown www-data:www-data /path/to/upload/directory
  1. Skontrolujte miesto na disku: df -h
  2. Overte, či formulár používa enctype="multipart/form-data"

Reštartujte svoj webový server po vykonaní zmien v php.ini.

Často kladené otázky

Ako nainštalujem PHP 8.1 na Ubuntu?

Nainštalujte PHP 8.1 pomocou správcu balíkov Ubuntu: sudo apt update && sudo apt install php8.1. PHP 8.1 je dostupné v predvolených repozitároch Ubuntu, takže nie sú potrebné žiadne ďalšie zdroje balíkov.

Ktoré rozšírenia PHP sú nevyhnutné pre vývoj?

Základné rozšírenia zahŕňajú php8.1-cli, php8.1-mysql, php8.1-curl, php8.1-xml, php8.1-mbstring, php8.1-zip, php8.1-gd a php8.1-bcmath. Tieto pokrývajú pripojenie k databáze, HTTP požiadavky, prácu s reťazcami a spracovanie obrázkov.

Ako nakonfigurovať PHP s Apache alebo Nginx?

Pre Apache nainštalujte libapache2-mod-php8.1 a povolte ho pomocou sudo a2enmod php8.1. Pre Nginx nainštalujte php8.1-fpm a nakonfigurujte Nginx tak, aby posielal PHP požiadavky na socket PHP-FPM pomocou FastCGI.

Ako môžem overiť, či je PHP správne nainštalované?

Spustite php -v na kontrolu verzie PHP. Vytvorte testovací súbor s <?php phpinfo(); ?> a pristúpte k nemu cez váš webový server, aby ste videli podrobné informácie o konfigurácii PHP.

Môžem spustiť Laravel alebo WordPress lokálne s týmto nastavením?

Áno. Laravel vyžaduje Composer a štandardné PHP rozšírenia uvedené vyššie. WordPress okrem PHP potrebuje databázu MySQL. Obe platformy fungujú s konfiguráciami Apache aj Nginx.

Ako nainštalovať Composer pre PHP projekty?

Stiahnite si inštalátor Composer, overte jeho hash a nainštalujte ho globálne: sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer. Overte príkazom composer --version.

Ako vyriešiť problémy s chýbajúcimi rozšíreniami PHP?

Skontrolujte nainštalované rozšírenia pomocou php -m. Chýbajúce rozšírenia nainštalujte pomocou sudo apt install php8.1-názov_rozšírenia a potom reštartujte svoj webový server.

Ako nastavím hlásenie chýb PHP pre vývoj?

Upravte php.ini a nastavte display_errors=On, error_reporting=E_ALL a log_errors=On. Nezabudnite zakázať zobrazovanie chýb v produkčnom prostredí.

Aký je rozdiel medzi Apache a Nginx pre PHP?

Apache používa mod_php na priame spracovanie PHP (PHP je vložené do procesu Apache), zatiaľ čo Nginx vyžaduje PHP-FPM (FastCGI Process Manager) na spracovanie PHP požiadaviek (PHP beží ako samostatná služba). Pozrite si časť „Výber medzi Apache a Nginx“ vyššie pre podrobnú porovnávaciu tabuľku. Obe prístupy fungujú dobre; vyberte si podľa vašich požiadaviek na výkon, znalosti a existujúcu infraštruktúru.

Môžem na rovnakom systéme nainštalovať viacero verzií PHP?

Áno, používaním nástrojov ako phpenv alebo phpbrew. Avšak pre väčšinu vývojových scenárov stačí jedna verzia PHP. Správcov verzií používajte, keď potrebujete testovať aplikácie proti rôznym verziám PHP.

Záver

Teraz máte plne nakonfigurované vývojové prostredie PHP 8.1 na Ubuntu s podporou pre webové servery Apache aj Nginx. Vaše nastavenie zahŕňa základné rozšírenia PHP, Composer na správu závislostí a správnu konfiguráciu pre lokálny vývoj.

Pred začatím ďalšieho projektu zvážte nastavenie integrovaného vývojového prostredia (IDE) ako VS Code s rozšíreniami pre PHP na zvýraznenie syntaxe, ladenie a podporu IntelliSense.

Keď máte svoje prostredie pripravené, môžete sa ďalej venovať vývoju v PHP:

  • Naučte sa základy PHP s návodom Ako pracovať s reťazcami v PHP
  • Vytvárajte API pomocou Návod na používanie webových API v PHP
  • Pochopte funkcie v návode Ako používať funkcie v PHP
  • Nastavte databázy s Návodom na inštaláciu a používanie PostgreSQL na Ubuntu

Pre produkčné nasadenia zvážte použitie platformy Linux-Console.net App Platform na nasadenie vašich PHP aplikácií priamo z GitHub s automatickým škálovaním a SSL certifikátmi.

Ďakujeme, že sa učíte s komunitou Linux-Console.net.