Diskuze: Smarty - unable to write file ...
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 20 zpráv z 20.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Když si měnil práva, změnil jsi je rekurzivně? Tedy, mají všechny složky i podsložky 777? Tipnul bych že tomu souboru do kterýho to chce zapisovat správná práva chybí.
Ale obecně si na to šel špatně, měnit práva je chyba (a měnit práva na 777 šílenost). Oprávnění tam chybělo z nějakého důvodu.
Jo, dával jsem to, ještě jsem to kontroval. A ano, vím že je to
šílenost, ale já sám jsem z toho už šílený
To, že ti to na Windowsech fungovalo ještě neznamená, že na Linuxu to bude běhat taky. Setkal jsem se s tím, že stejný kód na win byl OK a na Linuxu jsem byl v pr... jak Baťa s dřevákama. Zkontroluj si přístupová práva do toho konkrétního adresáře, kam chceš zapisovat a hlavně nedávej Full na celej Localhost.
Co myslíš konkrétním adresářem? Struktura webu je:
Projekt
-- model
-- view (soubory .tpl)
-- controller
-- index.php
Samozřejmě je větší, ale asi nebude problém ve složce s obrázky...
Práva na zápis musí být na ./templates_c/
To že práva na zápis jsou na localhostu je k ničemu, když zapisuješ jinam. Řekni Smarty ať si to zapisuje někam do adresáře projektu třeba a máš klid.
Zřejmě vůbec neexistuje - další důvod proč to nejde. Někde se určitě nastavuje kam to má zapisovat, tak to změň.
našel jsem Smarty-3.1.19/Smarty.class.php:681
->setCompileDir('.' . DS . 'templates_c' . DS)
Ale nevím odkud to mám počítat. Od indexu? Od složky kde je ta
knihovna?
Co vím tak tam ta složka doteď nebyla a nějak ho to moc netrápilo...
Vyzkoušej, buďto absolutní cestu, nebo cestu od toho souboru. Liší se to podle nastavení.
Co je v tom DS ?
Asi bych odstranil tečku a navedl to kam potřebuju.. /var/www ...
Ani to nepomohlo. Dal jsem to do složky s indexem, ještě jsem tomu pro jistotu zas dal práva 777 a pořád nic :/
No jde mi o to jestli má problém jenom smarty, nebo je problém jinde - vytvořit test.php a v něm duplikovat to co dělá smarty. Pokud to projde bez chyby je problém ve smarty, pokud ne, je problém v právech a něco si udělal blbě.
Tak jsem zkoušel jen načíst nějaký .tpl a nejde to. Dokonce ani demo v tom Smarty nefunguje :/ furt to hází tu samo chybu. Jediná změna je že ani když jsem tam nastavil tu absolutní cestu na tu mou vytvořenou složku tak to nefunguje.
Fatal error: Uncaught --> Smarty: unable to write file /var/www/html/.../www/templates_c/wrt5442fcd13c0395_64195805 <-- thrown in /var/www/html/.../libs/Smarty-3.1.19/libs/sysplugins/smarty_internal_write_file.php on line 46
Tak moje phpinfo() vypadá takhle, z něj si asi vše potřebné vyčteš
http://www.editey.com/…Q/index.html
A co se týče logů, tak tam nic zajímavého nenajdeš.
V error_log nic zajímavého není (nečekaně ty errory co jsem tu psal):
Třeba tě bude zajímat po zapnutí, jestli z toho něco zajímavého
vyčteš:
[Sun Oct 19 11:03:02.458305 2014] [core:notice] [pid 1130] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Sun Oct 19 11:03:02.709444 2014] [suexec:notice] [pid 1130] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.0.0.44. Set the 'ServerName' directive globally to suppress this message
[Sun Oct 19 11:03:02.917028 2014] [auth_digest:notice] [pid 1130] AH01757: generating secret for digest authentication ...
[Sun Oct 19 11:03:02.919100 2014] [lbmethod_heartbeat:notice] [pid 1130] AH02282: No slotmem from mod_heartmonitor
[Sun Oct 19 11:03:07.037228 2014] [mpm_prefork:notice] [pid 1130] AH00163: Apache/2.4.10 (Fedora) PHP/5.5.17 configured -- resuming normal operations
[Sun Oct 19 11:03:07.037278 2014] [core:notice] [pid 1130] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[Sun Oct 19 11:11:07.060336 2014] [core:notice] [pid 996] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Sun Oct 19 11:11:07.500655 2014] [suexec:notice] [pid 996] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.0.0.44. Set the 'ServerName' directive globally to suppress this message
[Sun Oct 19 11:11:07.754191 2014] [auth_digest:notice] [pid 996] AH01757: generating secret for digest authentication ...
[Sun Oct 19 11:11:07.755478 2014] [lbmethod_heartbeat:notice] [pid 996] AH02282: No slotmem from mod_heartmonitor
[Sun Oct 19 11:11:14.521663 2014] [mpm_prefork:notice] [pid 996] AH00163: Apache/2.4.10 (Fedora) PHP/5.5.17 configured -- resuming normal operations
[Sun Oct 19 11:11:14.521725 2014] [core:notice] [pid 996] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
Nakonec mi pomohla tato rada:
http://stackoverflow.com/…l-bookings-t
a tento příkaz:
setsebool -P httpd_unified=1
I tak díky všem za snahu
Zobrazeno 20 zpráv z 20.