PHP Development Stack v Dockeru

Chybová zpráva

  • Deprecated function: TYPO3\PharStreamWrapper\Manager::initialize(): Implicitly marking parameter $resolver as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of includes/file.phar.inc).
  • Deprecated function: TYPO3\PharStreamWrapper\Manager::initialize(): Implicitly marking parameter $collection as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of includes/file.phar.inc).
  • Deprecated function: TYPO3\PharStreamWrapper\Manager::__construct(): Implicitly marking parameter $resolver as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of includes/file.phar.inc).
  • Deprecated function: TYPO3\PharStreamWrapper\Manager::__construct(): Implicitly marking parameter $collection as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of includes/file.phar.inc).
 PHP Development Stack v Dockeru
06 Led

6. 1. 2026

Pokud vyvíjíte v PHP, pravděpodobně jste už zažili ten klasický moment: „U mě na stroji to funguje!“ A pak strávíte tři hodiny laděním konfigurace serveru, aby se kód vůbec spustil.

Právě proto jsem dal dohromady projekt php-mysql-nginx-docker. Je to vyladěný, lehký a okamžitě použitelný Docker stack, který vám ušetří nervy i čas při nastavování lokálního prostředí.


Proč právě tento stack?

Většina tutoriálů na internetu vám ukáže, jak spustit Hello World. Moje řešení jde dál a nabízí kompletní ekosystém pro moderní PHP vývoj. Co v něm najdete?

  • Nginx: Rychlý webový server nakonfigurovaný přímo pro PHP-FPM.
  • MySQL: Klasika pro ukládání dat, připravená k okamžitému spojení.
  • PHP (různé verze): Čisté prostředí bez balastu, připravené pro váš kód.

Jak začít (Během 2 minut)

Zapomeňte na instalování PHP lokálně do systému. Stačí vám nainstalovaný Docker a tyto tři kroky:

  1. Clone: git clone https://github.com/PavelStrejcek/php-mysql-nginx-docker.git
  2. Výběr verze: Přepněte se na větev, která vám vyhovuje (např. main nebo specifická verze PHP).
  3. Start: Spusťte příkaz:


docker-compose up -d

A je to. Váš server běží na localhost:8080 (nebo dle vašeho nastavení v .env).


Co je „pod kapotou“?

Snažil jsem se, aby docker-compose.yml byl co nejčistší. Každá služba má své jasné místo:

  • Volume mapping: Váš kód se synchronizuje v reálném čase.
  • Persistence dat: O svá testovací data v MySQL nepřijdete ani po restartu kontejnerů.
  • Interní síť: Kontejnery jsou propojeny, takže PHP komunikuje s MySQL jednoduše přes hostname db.

Závěrem

Tento setup používám a doufám, že pomůže i vám zjednodušit začátky nových projektů. Pokud máte nápady na vylepšení, neváhejte otevřít Issue nebo poslat Pull Request!

Líbil se vám tento stack? Dejte projektu Star na GitHubu!