start
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| start [2026/01/04 14:53] – created sistemc | start [2026/01/04 15:10] (current) – [🧱 WordPress (isti problemi, druga oblika)] sistemc | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ISPConfig | + | ====== 🧠 ISPConfig |
| - | 🎯 Namen dokumenta | + | |
| - | Ta dokument opisuje: | + | Dokumentacija temelji na realnih incidentih in napakah pri nameščanju |
| + | PHP aplikacij (DokuWiki, WordPress, Nextcloud) na ISPConfig + Apache + PHP-FPM. | ||
| - | zakaj pride do “permission” napak, | + | ===== 🔥 Incidenti (resnični primeri) ===== |
| + | * [[incidents: | ||
| + | * [[incidents: | ||
| + | * [[incidents: | ||
| + | * [[incidents: | ||
| + | * [[incidents: | ||
| + | * [[incidents: | ||
| + | * [[incidents: | ||
| - | kako pravilno namestiti | + | ===== 🛠️ ISPConfig – kako DEJANSKO deluje ===== |
| + | * [[ISPConfig + PHP-FPM + aplikacije | ||
| + | * [[ispconfig: | ||
| + | * [[ispconfig: | ||
| + | * [[ispconfig: | ||
| + | * [[ispconfig: | ||
| + | * [[ispconfig: | ||
| - | kako preprečiti ponavljanje istih napak pri novih straneh | + | ===== 🧩 PHP-FPM ===== |
| + | * [[php_fpm: | ||
| + | * [[php_fpm: | ||
| + | * [[php_fpm: | ||
| + | * [[php_fpm: | ||
| + | * [[php_fpm: | ||
| - | Velja za: | + | ===== 🌐 Apache ===== |
| + | * [[apache:authz_core|authz_core – zakaj Apache blokira datoteke]] | ||
| + | * [[apache: | ||
| + | * [[apache: | ||
| + | * [[apache: | ||
| + | * [[apache: | ||
| - | DokuWiki | + | ===== 📦 DokuWiki |
| + | * [[apps: | ||
| + | * [[apps: | ||
| + | * [[apps: | ||
| + | * [[apps: | ||
| + | * [[apps: | ||
| - | WordPress | + | ===== 🧱 WordPress |
| + | * [[Odprava robots.txt napake v Google Search Console]] | ||
| + | * [[apps: | ||
| + | * [[apps: | ||
| + | * [[apps: | ||
| + | * [[apps: | ||
| - | Nextcloud | + | ===== 🔍 Diagnostika (orodja, ki so rešila situacijo) ===== |
| + | * [[diagnostics: | ||
| + | * [[diagnostics: | ||
| + | * [[diagnostics: | ||
| + | * [[diagnostics: | ||
| - | Laravel / Symfony | + | ===== 📋 Checklisti ===== |
| + | * [[checklists: | ||
| + | * [[checklists: | ||
| + | * [[checklists: | ||
| + | * [[checklists: | ||
| - | vse PHP aplikacije na ISPConfig | + | ===== 🧠 Lessons Learned ===== |
| + | * [[lessons: | ||
| + | * [[lessons: | ||
| + | * [[lessons: | ||
| + | * [[lessons: | ||
| - | 1️⃣ Povzetek problema (TL;DR) | + | ===== 📓 Osebni zapiski ===== |
| + | * [[notes: | ||
| + | * [[notes: | ||
| + | * [[notes: | ||
| - | Če uporabljaš: | ||
| - | |||
| - | ISPConfig | ||
| - | |||
| - | PHP-FPM | ||
| - | |||
| - | Apache ali Nginx | ||
| - | |||
| - | ⚠️ NE SMEŠ uporabljati absolutnih poti v aplikacijskih konfiguracijah, | ||
| - | |||
| - | / | ||
| - | |||
| - | |||
| - | Če to narediš, bo: | ||
| - | |||
| - | CLI kazal, da je vse OK | ||
| - | |||
| - | PHP is_writable() kazal OK | ||
| - | |||
| - | aplikacija (installer) pa bo še vedno javljala napake | ||
| - | |||
| - | 2️⃣ Root cause (kaj je bilo v resnici narobe) | ||
| - | Ključna kombinacija | ||
| - | |||
| - | ISPConfig uporablja open_basedir | ||
| - | |||
| - | PHP-FPM omeji dostop PHP-ja na določene poti | ||
| - | |||
| - | aplikacija (npr. DokuWiki) uporablja absolutne poti | ||
| - | |||
| - | aplikacija interno dela dodatne varnostne checke | ||
| - | |||
| - | ➡️ Ti checki padejo, čeprav ima PHP pravice. | ||
| - | |||
| - | To NI klasičen permission problem, ampak: | ||
| - | |||
| - | konflikt med open_basedir in absolutnimi potmi | ||
| - | |||
| - | 3️⃣ Tipični simptomi | ||
| - | |||
| - | Če vidiš kaj od tega, je skoraj zagotovo to ta problem: | ||
| - | |||
| - | DokuWiki | ||
| - | datadir (pages) is not found or not writable | ||
| - | |||
| - | WordPress | ||
| - | |||
| - | ne more pisati v wp-content/ | ||
| - | |||
| - | random “permission denied”, čeprav so pravice pravilne | ||
| - | |||
| - | Splošno | ||
| - | |||
| - | PHP test skripta kaže WRITE=OK | ||
| - | |||
| - | installer ali aplikacija javi napako | ||
| - | |||
| - | po popravku pravic se NIČ ne spremeni | ||
| - | |||
| - | 4️⃣ ZLATO PRAVILO (velja za vse aplikacije) | ||
| - | ❌ NIKOLI na ISPConfig + PHP-FPM | ||
| - | / | ||
| - | |||
| - | ✅ VEDNO | ||
| - | |||
| - | relativne poti | ||
| - | |||
| - | ali poti znotraj document root-a | ||
| - | |||
| - | Primeri: | ||
| - | |||
| - | ./data | ||
| - | ./uploads | ||
| - | ./cache | ||
| - | ./files | ||
| - | |||
| - | 5️⃣ DokuWiki – pravilna konfiguracija | ||
| - | conf/ | ||
| - | $conf[' | ||
| - | $conf[' | ||
| - | |||
| - | |||
| - | ❗ Absolutne poti ne uporabljaj. | ||
| - | |||
| - | 6️⃣ WordPress – enako pravilo | ||
| - | |||
| - | WordPress večinoma dela pravilno sam, težava nastane, če: | ||
| - | |||
| - | ročno definiraš poti | ||
| - | |||
| - | cache plugin nastavi absolutne poti | ||
| - | |||
| - | ❌ Napačno | ||
| - | define(' | ||
| - | |||
| - | ✅ Pravilno | ||
| - | define(' | ||
| - | |||
| - | |||
| - | ali | ||
| - | |||
| - | define(' | ||
| - | |||
| - | 7️⃣ Vedno preveri open_basedir (prvi korak) | ||
| - | grep -R " | ||
| - | |||
| - | |||
| - | Primer: | ||
| - | |||
| - | php_admin_value[open_basedir] = / | ||
| - | |||
| - | |||
| - | ➡️ To pomeni: | ||
| - | |||
| - | PHP vidi samo te poti | ||
| - | |||
| - | aplikacija mora uporabljati relativne poti | ||
| - | |||
| - | 8️⃣ Minimalni PHP sanity test (za vsako aplikacijo) | ||
| - | sudo -u web2 php -r ' | ||
| - | echo " | ||
| - | $path=" | ||
| - | echo " | ||
| - | echo " | ||
| - | echo " | ||
| - | ' | ||
| - | |||
| - | |||
| - | Če dobiš: | ||
| - | |||
| - | is_dir=YES | ||
| - | writable=YES | ||
| - | |||
| - | |||
| - | ➡️ PHP bo delal | ||
| - | ➡️ če aplikacija še vedno jamra → konfiguracija aplikacije je napačna | ||
| - | |||
| - | 9️⃣ Zakaj se zdi, da se “vrtimo v krogu” | ||
| - | |||
| - | Ker so bili: | ||
| - | |||
| - | ✔ permissions pravilni | ||
| - | |||
| - | ✔ owner/group pravilni | ||
| - | |||
| - | ✔ PHP-FPM servis aktiven | ||
| - | |||
| - | ✔ socket obstajal | ||
| - | |||
| - | Ampak: | ||
| - | |||
| - | ❌ aplikacija je uporabljala absolutne poti | ||
| - | |||
| - | ❌ open_basedir je to blokiral | ||
| - | |||
| - | To je najbolj zahrbtna napaka, ker: | ||
| - | |||
| - | sistemski admin vidi “vse OK” | ||
| - | |||
| - | aplikacija pa ima svoj varnostni model | ||
| - | |||
| - | 🔟 Kako to preprečiti za VSE bodoče strani | ||
| - | Priporočena praksa | ||
| - | |||
| - | V glavi vsakega projekta si zapiši: | ||
| - | |||
| - | Če je ISPConfig + PHP-FPM → nikoli absolutne poti v aplikaciji | ||
| - | |||
| - | To velja za: | ||
| - | |||
| - | Wiki | ||
| - | |||
| - | WordPress | ||
| - | |||
| - | Nextcloud | ||
| - | |||
| - | Laravel | ||
| - | |||
| - | Symfony | ||
| - | |||
| - | vse PHP CMS-e | ||
| - | |||
| - | 1️⃣1️⃣ Kaj NE priporočam (razen če veš, kaj delaš) | ||
| - | |||
| - | odstranjevanje open_basedir | ||
| - | |||
| - | globalno rahljanje PHP omejitev | ||
| - | |||
| - | ❌ slabša varnost | ||
| - | ❌ ISPConfig update lahko vse povozi | ||
| - | |||
| - | 1️⃣2️⃣ Orodje za prihodnost | ||
| - | |||
| - | Uporabi ali razširi skripto: | ||
| - | |||
| - | isp_dokuwiki_doctor.sh | ||
| - | |||
| - | |||
| - | Ideja: | ||
| - | |||
| - | en skript | ||
| - | |||
| - | preveri: | ||
| - | |||
| - | docroot | ||
| - | |||
| - | open_basedir | ||
| - | |||
| - | writable mape | ||
| - | |||
| - | absolutne poti v configih | ||
| - | |||
| - | ➡️ 10 sekund diagnostike namesto 2 ur kroženja. | ||
start.1767538385.txt.gz · Last modified: by sistemc
