Table of Contents

ISPConfig + PHP-FPM + PHP aplikacije (DokuWiki, WordPress …)

🎯 Namen dokumenta

Ta dokument opisuje:

Velja za


🧠 Povzetek problema (TL;DR)

Če uporabljaš:

⚠️ NE SMEŠ uporabljati absolutnih poti v aplikacijskih konfiguracijah, npr.:

/var/www/clients/clientX/webY/web/...

Če to narediš:


🔍 Root cause (kaj je bilo v resnici narobe)

Ključna kombinacija:

Rezultat:

PHP nima pravice dostopati do direktorija,
čeprav ima filesystem pravilne pravice.

❌ Napačen primer

$conf['savedir'] = '/var/www/clients/client1/web2/web/data';

Zakaj je narobe:


✅ Pravilna rešitev

Uporabljaj relativne poti glede na DocumentRoot:

$conf['savedir'] = './data';

Ali pusti prazno, če aplikacija podpira autodetection:

$conf['basedir'] = '';

📂 Priporočena struktura direktorijev

web/
├── conf/
├── data/
│   ├── pages/
│   ├── cache/
│   └── locks/
├── lib/
├── install.php
└── index.php

🔐 Priporočene pravice (ISPConfig standard)

chown -R webX:clientY web/data web/conf
chmod -R 2775 web/data web/conf
setfacl -R -m u:webX:rwx,g:clientY:rwx web/data web/conf
setfacl -R -d -m u:webX:rwx,g:clientY:rwx web/data web/conf

🛠 Diagnostika (če se zatakne)

Preveri kot site user:

sudo -u webX php -r "var_dump(is_writable('data/pages'));"

Preveri PHP-FPM pool:

grep open_basedir /etc/php/*/fpm/pool.d/webX.conf

✅ Kako preprečiti ponavljanje napak

✔ Vedno uporabljaj relativne poti ✔ Nikoli ne hard-codaj `/var/www/…` ✔ Razumi, da PHP-FPM ≠ CLI ✔ Uporabi checklist pred installerjem


📌 Povzetek v enem stavku

Na ISPConfig + PHP-FPM filesystem pravice niso dovolj
aplikacija mora delovati znotraj open_basedir konteksta.