O problemă de WordPress în 2012. Care vă pricepeţi?

Că mie-mi scapă… În decembrie, cînd a apărut WP 3.3, am păţit ceva similar. Am avut o conversaţie pe mail cu unul dintre programatorii de bază ai WordPress şi, în principiu, o rezolvasem. Ţinea de ceva eroare de copiere a unei imagini dintr-un folder temporar în directorul în care trebuie să zacă fotografia (în principiu, ştiţi povestea, /wp-content/uploads/2012/01, cam aşa arată path-ul). Am rezolvat-o din wp-config.php cu două linii de cod:

define(‘WP_TEMP_DIR’, “/home/username/public_html/wp-content/uploads/temp”);
putenv(‘TMPDIR=’ . “/home/username/public_html/wp-content/uploads/temp”);

Scurt şi cuprinzător, cu permisiuni 755 pe “temp”, a funcţionat liniştit pînă cînd… a trebuit să creeze două directoare noi: 2012 şi 2012/01. Moment în care s-a blocat şi n-a mai vrut să creeze ori să copieze nimic. Bun, zic, le creez manual din clientul FTP. Degeaba, cîtă vreme, deşi găseşte directorul, dă eroare funcţia de copiere (funcţia copy(); a PHP-ului, ca să înţelegeţi la ce mă refer).

Ştiu că mai sus am scris “temp”, iar în poză se vede “tmp”. Am redenumit. Eh, indiferent de situaţie, “tmp” cu permisiuni 755 dă eroarea de mai sus, iar cu permisiuni 777, pe cea de mai jos. Deci, practic, n-am rezolvat nimic.

Idei?

PS: N-ar fi bai, că sînt în stare să uploadez şi manual, doar că-mi dă peste cap ideea de featured image.

UPDATE // REZOLVAREA DILEMEI:

În principiu, problema e modul în care rulează Apache-ul. Dacă rulează în DSO, apare problema de mai sus, că WordPress-ul încearcă să execute comenzile sub numele contului de hosting, dar n-are permisiuni. Permisiunile sînt, practic, pe userul “nobody”, default-ul Apache-ului în DSO. Şi atunci, rezolvarea este – cel puţin teoretic – să setezi permisiuni 777 pe “uploads” sau pe /2012/ cu specificaţia să aplice acelaşi mod şi la subdirectoare. Teoretic, ar trebui să meargă. Practic, la mine, nu mai ţin minte dac-a mers, că-s căpos şi am pus 777 doar ocazional, pentru maximum un minut, cînd mai făceam diverse teste, mai demult. Deh, sînt păţit. Azi, s-au ocupat băieţii de la Webfactor de rezolvări.

Dacă îţi place acest blog şi vrei să-l susţii, cumpără de la eMag folosind acest link.

13 comentarii

  1. I tried to copy a file from /tmp to /var/www/html.
    But i always get an permission denied (even after a chmod 0777 to the /var/www/html directory)

    vezi aici: http://php.net/manual/en/function.copy.php

    intreaba-ti provider-ul daca are SELinux activat

  2. Mie imi apareau ca fiind copiate fara eroare, doar ca nu apareau in galerie. cu un 777 pe 2012/01 a mers

  3. Sigur ai dat drepturi recursiv acolo?

    Chiar nu ma pricep la wordpress, dar pare ca ai dat drepturi doar pe 2012, nu si pe 2012/01.

  4. nu e musai 777 si un 775 e de ajuns. Vezi si ownerul sa fie userul de ftp care-l ai setat in wp. Bafta!

  5. ownerul directorului sa fie user-ul de ftp care e setat in wp. Nu sa fie setat contul de ftp in wp. Am intalnit si eu problema asta dupa ce am mutat vreo 2 bloguri. Am creat de manuta pe vreo 3 ani de-acum incolo directoarele respective cu ownerul ftp [cu . (punct) in loc de @, gen http://ftp.domeniu.tld nu ftp@domeniu.tld] le-am dat un chmod 775 si merg de zbarnaie. Cand vad ca nu mai merg e sigur ca s-au terminat anii si lunile si trebuie create altele. Daca am vazut ca merge asa nu mi-am mai batut capul sa sap mai adanc. Daca e sa gasesti un mod mai elegant sau vreun php-ist mai destept, da-ne si noua de veste!

    • @m3bis: ownerul directorului este username-ul contului de hosting, n-ar trebui sa fie probleme, cu atit mai mult cu cit a mers pina acum linistit. Teoretic, e acelasi user de ftp, deci n-ar trebui sa fie probleme, plus ca e definit si-n wp-config ca FTP_USER.

  6. nu baga in seama http//-ul ala de dinaintea userului, a fost bagat automat.

  7. Depinde cum ii configurat sa ruleze php-ul ca modul in apache sau stand alone. In cazul in care este compilat ca modul va trebui sa rulee scriptul php cu userul serverului web aka. nobody.

  8. domnu’ subiectiv, dacă nu te descurci, cheamă un depanator acasă, da’ să știi că-s cam scumpi și nici nu mai sînt meseriași ca pă timpuri.

  9. e doișpe noaptea. o venit depanatoru’? să ne ții la curent, bine?

  10. Buna all am si eu o problema nu pot actualiza si instala nimic din site ca cica lipseste director temporar am wp 4 care se pricepe astept macar un diacnostic