<?> PHP NOVA invictum.hr
Izdanje 2026.
Poglavlje 38

Postavljanje na produkciju

Pripremamo ponovljiv deployment s ispravnim ovlastima, migracijama, cacheom, health provjerama, backupom i planom povratka.

32 min čitanja Napredno razina PHP 8.5 ciljna verzija

Nakon ovog poglavlja

Što ćete znati napraviti

  • Izraditi produkcijski checklist prije prve objave.
  • Provesti deployment bez ručnog uređivanja koda na serveru.
  • Nadzirati zdravlje i uvježbati povrat podataka.

Najmanje potrebno

Verzije, ekstenzije i ovlasti

Server treba podržanu PHP verziju, potrebne ekstenzije, web-poslužitelj, bazu i scheduler ili queue prema projektu. Aplikacija radi pod neprivilegiranim korisnikom. Samo direktoriji za runtime zapis dobivaju pravo pisanja.

Document root usmjerava se na public. APP_DEBUG je isključen, tajne su izvan repozitorija, HTTPS obavezan, a vrijeme sinkronizirano. Prije deploya provjeravamo dovoljno diska i valjan certifikat.

Preflight
php -v
php -m
composer check-platform-reqs
composer validate --strict
composer audit

Artefakt, ne ručni zahvat

Ista sekvenca za svako izdanje

Kod se gradi iz označenog commita ili CI artefakta. composer install koristi lock datoteku i produkcijske opcije. Migracije moraju biti kompatibilne s verzijom aplikacije koja još kratko radi tijekom izmjene.

Praktičan raspored koristi direktorij releases i simboličku poveznicu current. Nakon pripreme novog izdanja atomski prebacujemo current, ponovno učitamo PHP procese i provjerimo health endpoint. Povrat znači vratiti prethodni release; migracija mora imati zaseban siguran plan.

Generički deployment tok
composer install --no-dev --prefer-dist --optimize-autoloader --no-interaction
php bin/migrate.php --no-interaction
php bin/cache-warmup.php
# preusmjeri current na novo izdanje
# reload PHP-FPM

Objava nije kraj

Health, logovi, metrike i oporavak

Liveness provjera potvrđuje da proces odgovara, readiness da može obraditi stvaran zahtjev s ključnim ovisnostima. Strukturirani logovi, stopa 5xx odgovora, trajanje zahtjeva, queue zaostajanje i disk daju rani signal problema.

Backup bez testiranog restorea samo je nada. Definirajte RPO — koliko podataka smijete izgubiti — i RTO — koliko dugo oporavak smije trajati. Kopiju držite izvan istog servera, šifrirajte i redovito probno vratite.

  • Automatski backup baze i korisničkih datoteka.
  • Provjera integriteta i upozorenje na neuspjeh.
  • Dokumentiran restore postupak.
  • Periodična probna obnova u izolirano okruženje.

Primijenite naučeno

Vježba: Runbook za prvu objavu

Napišite izvršiv popis koraka za projekt knjige.

  1. Dodajte preflight, instalaciju, migraciju, prebacivanje i smoke test.
  2. Dodajte odgovornu osobu i kriterij za rollback.
  3. Zapišite backup i restore provjeru prije promjene.

Za provjeru i nastavak

Službeni izvori