User Tools

Site Tools


ispconfig_php-fpm_aplikacije_dokuwiki_wordpress

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

🎯 Namen dokumenta

Ta dokument opisuje:

  • zakaj pride do permission napak, čeprav so pravice videti pravilne
  • kako pravilno namestiti PHP aplikacije na ISPConfig
  • kako preprečiti ponavljanje istih napak pri novih spletnih straneh

Velja za

  • DokuWiki
  • WordPress
  • Nextcloud
  • Laravel / Symfony
  • vse PHP aplikacije na ISPConfig + PHP-FPM

🧠 Povzetek problema (TL;DR)

Če uporabljaš:

  • ISPConfig
  • PHP-FPM
  • Apache ali Nginx

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

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

Če to narediš:

  • CLI orodja kažejo, da je vse OK
  • `is_writable()` vrne TRUE
  • aplikacija (installer) pa še vedno javlja permission napake

🔍 Root cause (kaj je bilo v resnici narobe)

Ključna kombinacija:

  • ISPConfig uporablja PHP-FPM pool-e
  • PHP-FPM ima nastavljen open_basedir
  • aplikacija uporablja hard-coded absolutno pot
  • pot ni vključen v open_basedir

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:

  • pot je absolutna
  • vezana na en web ID
  • krši PHP-FPM `open_basedir`

✅ 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.
ispconfig_php-fpm_aplikacije_dokuwiki_wordpress.txt · Last modified: by sistemc