Problema
După intrarea în zona de configurare globală în panoul de administrare, și apoi după ce faceți clic pe „Save” sau „Apply” pentru a salva opţiunile proprii de configurare a site-ului, apare următorul mesaj de eroare: “An Error has occurred! Unable to open configuration.php file to write!”, eventual însoțit de: „FTP::write: Bad response” dacă lucrați în modul activat FTP.
Cauza
Script-ul de actualizare de configurare în Joomla! a fost în imposibilitatea de a schimba conținutul fișierului „configuration.php„, pentru a reflecta modificările efectuate pe pagina de configurare globală. Joomla! fie a fost în imposibilitatea de a scrie pe fişier, și/sau în imposibilitatea de a face fişierul inscriptibil (de exemplu, R/W) (în cazul Joomla! 1.5.x). Cel mai frecvent motiv pentru aceasta este faptul că fișierul „configuration.php” este deținut de un utilizator logic diferit de cel care încearcă să facă schimbarea. Dacă încercaţi să schimbaţi configurația globală cu FTP activat, acesta din urmă va fi, de obicei, ID-ul de autentificare FTP; cu FTP dezactivat acesta va fi un proces de identitate a serverului web (deseori numit ca ceva de genul „Apache” sau „www-data”). (Puteți verifica, de obicei, detaliile despre proprietarul fişierului prin conectarea la site-ul dvs. cu un program de FTP Alternativ, puteți folosi eXtplorer). Din păcate, veți fi dezautentificat de schimbarea modului adecvat de actualizare a configurației globale întrucât activarea și dezactivarea modului FTP (și deci schimbând astfel identitatea logică în încercarea de a schimba configurația) este determinată de datele de configurare globală din acel fișier .
Soluții sugerate
- Schimbaţi dreptului de proprietate asupra fişierului „configuration.php” pentru a se potrivi, fie cu ID-ul FTP de acces, dacă se utilizează „FTP activat” pentru site, fie cu identitatea procesului de server web, dacă utilizați „FTP dezactivat”.
NOTA: Acest lucru nu este posibil de realizat din Joomla!.
Dacă aveți controlul total al serverului (de exemplu server local sau server virtual), atunci ar trebui să puteţi face acest lucru, folosind un utilitar adecvat (cum ar fi „chown” pentru un server Linux). Pe un server partajat, trebuie să contactați suportul tehnic pentru organizația dvs. sau ISP-ul, explicaţi problema, și să cereți schimbarea corespunzătoare a dreptului de proprietate a fișierului. - Instalați componenta eXtplorer (extensie Joomla) – dacă nu este deja instalată. Acest lucru vă va permite să vizualizați și manipulaţi fișiere atât în modul „file” (folosind identitatea utilizatorului pentru procesul de server web) sau modul „ftp”, folosind identitatea dvs. de utilizator pentru conectare FTP. Deși probabil nu veţi fi capabil să schimbaţi dreptul de proprietate al fișierui cu acest instrument, puteți folosi unul dintre modurile de mai sus pentru a face „configuration.php” inscriptibil pentru toți utilizatorii. Acest lucru vă va permite să schimbați configurația globală o dată – sau mai mult, dacă includeți în aceasta o schimbare a modului FTP, astfel încât să se potrivească proprietarul de fișier „configuration.php„.
NOTA: schimbarea modului FTP va afecta dreptul de proprietate aplicată la fișierele încărcate pe site în conformitate cu noua setare (de exemplu, atunci când instalați extensii). - Faceţi ca serverul web să ruleze PHP ca CGI sau FastCGI. Acest lucru asigură că codul PHP este executat folosind același ID de utilizator ca cel utilizat atunci când se încarcă codul Joomla folosind FTP. Astfel, nu există niciun conflict întrucât ID-ul procesului de schimbare PHP a fișierului „configuration.php” este la fel ca proprietarul fișierului. Dacă nu știți cum să setați CGI sau FastCGI, contactați administratorul serverului sau furnizorul de servicii de găzfuire pentru sfaturi.
Explicaţii
Cele de mai sus sunt explicații simplificate, dar următoarele aspecte pot fi de interes și valoroase și, de asemenea, pot ajuta utilizatorii experți să formuleze propria lor soluție la această problemă.
- Fișierul „configuration.php” este generat automat în rădăcina site-ului (din „configuration.php-dist„) în timpul instalării site-ului, și încorporează în el informațiile specifice ale site-ului date în timpul procesului de instalare. Modificările efectuate în zona de configurare global în administrarea „back-end” sunt scrise în „configuration.php”, atunci când se apasă pe unul din butoanele „Save” sau „Apply„.
- Ori de câte ori Joomla! încearcă să actualizeze „configuration.php„, se încearcă la început să fie făcut inscriptibil, și după actualizare fişierul este făcut la loc neinscriptibil (de exemplu, read-only), ca o măsură de securitate.
- Fișierele de pe serverul web care găzduieşte site-ul Joomla! va fi deținut de către una din mai multe entități, în funcție de modul în care acestea au fost plasate sau create pe server. În general, fișiere pe un site Joomla! vor fi deținute de către una dintre cele două identități de utilizator:
- Fișierele pe care le încărcați prin FTP sau instalate cu modul FTP activ vor fi, în general, alocate ca proprietate a unui ID de utilizator care corespunde ID-ului de autentificare FTP pentru site,
- Fișierele instalate din Joomla! și cu modul FTP inactiv vor fi, în general, alocate ca proprietate a ID-ului de utilizator „fantomă” care a folosit pentru a rula principalele procese de server web şi scripturile Joomla! (adesea numit ceva în genul „apache” sau „www-data”).
Tradus şi adaptat din joomla.org
Lasă un răspuns