Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru FTP Layer pe Joomla

Joomla, la fel ca multe alte CMS-uri open source, a fost creat pornind de la ideea ca serverul web are suport PHP folosind SuPHP sau CGI/FastCGI+SuExec cazuri in care utilizatorul sub care ruleaza threadul serverului web este utilizatorul proprietar al fisierului care urmeaza sa fie interpretat.

Daca serverul web are suport PHP folosind DSO (mod_php in Apache) treburile se complica pentru ca scriptul va fi interpretat de utilizatorul folosit de serverul web, de obicei nobody, utilizator care are drepturi limitate asupra fisierelor si directoarelor utilizatorului. Drept urmare apar cateva neplaceri care sunt derutante pentru webmasterii mai putin experimentati. Problemele cel mai des intalnite sunt setarea permisiunilor corecte pentru anumite fisiere sau directoare si conflictul de utilizatori pentru modulele incarcate prin interfata de administrare.

Astfel, in cazul in care scriptul este interpretat de un utilizator diferit de proprietarul fisierului, utilizatorul este conditionat sa puna permisiuni 777 pentru directoare ceea ce pot face siteul vulnerabil fata de unele servicii vulnerabile care ruleaza pe sistem sau fata de utilizatorii rau intentionati in cazul serverelor in regim shared prost administrate.

O parte mai neplacuta, datorata aceleiasi situatii, este faptul ca modulele instalate din panoul de administrare vor fi instalate avand ca proprietar utilizatorul sub care ruleaza serverul web, utilizator diferit de proprietarul contului. Urmarea cea mai neplacuta este faptul ca asupra fisierelor instalate prin interfata web nu se vor putea face modificari prin FTP deoarece apare un conflict de utilizatori si impliciti de permisiuni.

Solutia unei astfel de situatii este utilizarea facilitatii „FTP Layer” din Joomla. FTP Layer este o functionalitate implementata in CMS datorita careia modulele vor fi copiate pe server printr-un cont FTP ceea ce face ca proprietarul fisierelor sa fie utilizatorul FTP, nu utilizatorul sub care ruleaza serverul web, deci problemele legate de permisiiuni si conflictul de utilizatori va disparea.

Pentru a activa optiunea „FTP Layer” intram in panoul de administrare in sectiunea „Site » Global Configuration » Server„, zona „FTP Settings„. Aici punem „Enable FTP” pe „Yes” si completam datele de conectare la serverul FTP:
ftp-layer

Dupa ce au fost facute si salvate setarile corecte noile module/componente Joomla vor fi instalate sub utilizatorul FTP specificat in formularul de mai sus.

Pentru persoanele ceva mai tehnice, aceleasi modificari se pot face si din fisierul configuration.php, fisier care contine toate datele de configurare a CMS-ului. Ca sa facem manual aceste modificari deschidem fisierul configuration.php cu un editor de text si cautam variabilele care incep cu $ftp_ iar apoi le editam ca in exemplul urmator:

        var $ftp_enable = '1';
        var $ftp_host = '127.0.0.1';
        var $ftp_port = '21';
        var $ftp_user = 'username';
        var $ftp_pass = 'password';
        var $ftp_root = '/public_html/joomla';

Semnificatia variabilelor este dupa cum urmeaza:

  • $ftp_enable – Poate lua valorile 1 sau 0. Valoarea 1 ii spune CMS-ului sa foloseasca FTP Layer.
  • $ftp_host – Specifica hostul la care se conecteaza clientul FTP. In 99% din cazuri e 127.0.0.1 (sau localhost).
  • $ftp_port – Portul pentru comunicarea FTP este 21. Nu se modifica decat in situatii exceptionale.
  • $ftp_user – Utilizatorul folosit pentru FTP. Este numele utilizatorului principal sau, in cazuri exceptionale, un alias.
  • $ftp_pass – Parola pentru contul FTP folosit.
  • $ftp_root – Calea catre directorul in care e instalat CMS-ul.

Atat varianta modificarii din panoul de administrare cat si cea a editarii fisierului configuration.php au acelasi efect, dar e de preferat editarea fisierului pentru ca in cazul in care se prefera editarea din panoul de administrare, fisierul configuration.php trebuie sa aiba setate in prealabil permisiuni de scriere pentru utilizatorul nobody ceea ce prezinta un risc din punct de vedere al securitatii.

PHP

Comments are closed.