Problem s robot loader, cache, permissions, hosting

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tomas.stofik
Člen | 33
+
0
-

Zdravim Vas. Momentalne riesim tento problem uz asi na troch poslednych verziach nette.
Ide o to ze nahodim len zakladny sandbox kde sa uvodna stranka zobrazi bez problemu no ak sa snazim prejst na podstranku resp. nacitat iny ako Homepage presenter stale Mi vyhodi tuto chybu:

fopen(/home/ftpuser/domainname/web/temp/cache/_Nette.RobotLoader/_9f51f4c05aa0288b218a6faa606c939b): failed to open stream: Permission denied

Vsetky subory vytvaram a kopirujem cez rovnaky suborovy manazer takze nehrozi zamena prav ani nic podobne.
Doteraz som nemal potrebu nikdy na hostingu nastavovat permissions a stale to fungovalo.
Tentokrat som ich aj zmenil no nepomohlo ani to.
No akonahle prejdem na iny presenter vytvoria sa v adresari cache subory ktore nemozem mazat a upravit.
Mozem ich akurat citat. Ak sa ich snazim mazat vyhodi mi to chybu 550 (permission denied) cize nette vytvara subory ako keby pod svojimi permissions.
Uz som presiel kopu vlakien na forach aj mimo nette no nic. Nikto sa s tymto nestretol.
Niesom zaciatocnik no toto ma fakt prekvapilo ako nic :(

Budem velmi vdacny za kazdu radu.

Dakujem

MW
Člen | 626
+
0
-

Podle hlasky to nemá pravo zapisu do Temp.. zkus tam nastavit 775 ..

tomas.stofik
Člen | 33
+
0
-

Ono to praveze ma pravo zapisu nakolko na uvodnej stranke sa nic nedeje.
Skor by som povedal ze ak sa vobec jedna o pravo zapisu tak jedine do konkretneho suboru.
Proste ako keby by nette vytvorilo subory v cache s inymi permissions alebo pod inym userom.
Ked sa subory v cache vytvoria nemozem s nimi uz robit nic. Jediny sposom mazania na ktory som prisiel je iterovanie nad adresarom pomocou funkcie unlink, ziadny iny sposob nefungoval (vratane striedania roznym file managerov).

MW napsal(a):

Podle hlasky to nemá pravo zapisu do Temp.. zkus tam nastavit 775 ..

wicked
Člen | 290
+
0
-

Klasický by mělo stačit na adresář temp a log nastavit práva 777 a je to.

Mysteria
Člen | 797
+
0
-

Když už jsme u toho, neřešil jste někdo problém, že si u nějakých hostingů Nette vytváří cache a logy pod jiným userem, než když uploadujete normálně přes FTP, takže všechno funguje, ale ručně ty složky přes FTP nesmažete?

Editoval Mysteria (23. 3. 2014 11:27)

tomas.stofik
Člen | 33
+
0
-

Presne toto je moj problem a ani nesnivam o tom co by to mohlo byt.
Req. checker presiel na 98% (akurat mi chyba podpora GD kniznice – ale to s tym urcite nic spolocne nema)
Jedina cesta ako zmazat tie subory je pomocou php (unlink, rename, … ) iny sposob som nenasiel.
Zda sa Mi to ako nepochopitelne a uz ma to trapi dost dlho, s obrovskou chutou som sa pustil do testovania novych features v poslednych verziach a toto mi takto pokasle den :(

Ma niekto z Vas aspon napad kde zacat hladat lebo som fakt bezradny.

Dakujem

Mysteria napsal(a):

Když už jsme u toho, neřešil jste někdo problém, že si u nějakých hostingů Nette vytváří cache a logy pod jiným userem, než když uploadujete normálně přes FTP, takže všechno funguje, ale ručně ty složky přes FTP nesmažete?

n.u.r.v.
Člen | 485
+
0
-

Máme to samé u našeho hostingu – vytvořím přes FTP složku temp a můžu ji jakkoliv upravovat a mazat, ale jakmile do ní zapíše php (není to problém nette, ale php-používá jiný účet), tak je konec – složku nesmažu, protože není prázdná a její obsah nesmažu, protože nemám práva…

Musím použít php script, který to smaže:

<?php

function removeDir($path) {
    $path = rtrim($path, '/') . '/';
    $items = glob($path . '*');
    foreach ($items as $item) {
        is_dir($item) ? removeDir($item) : unlink($item);
    }
    rmdir($path);
}

$base_folder = $_GET['adr'];
if(strpos($base_folder, '/temp')>0){//== '../temp'
removeDir('./' . $base_folder);
echo 'ok';
}else{
echo 'neplatny parametr!';
}
?>

matopeto
Člen | 395
+
+1
-

Problem moze byt s umask, stare nette nastavovalo na zaciatku umask(0), takze 777 znamenalo 777.
Nove nette (od 2.1) to nerobi, takze ak ma hosting umask na 022, tak 777 znamena 755 a to je problem.

Mohlo by pomoct nastavit v bootstrape umask(0);

n.u.r.v.
Člen | 485
+
0
-

Ahoj, můžeš prosím napsat jak se to dělá v bootstrapu s tím umaskem? Protože to bude ono – staré nette to nedělalo, nové ano…

matopeto
Člen | 395
+
0
-

uplne na zaciatok suboru bootstrap.php (za <?php :) ) pridaj prikaz:

umask(0);

Mysteria
Člen | 797
+
0
-

@matopeto: Díky u Pipni to pomohlo. :)

tomas.stofik
Člen | 33
+
0
-

Vyzera ze tiez pomohlo, uz je to ok ked prechadzam po strankach. Velmi pekne dakujem za usetrene nocne hodiny ludia :)