|
|
|
| Здравствуйте!
Установил сайт на хостинг, когда зашел на сайт выдало ошибку, мол ошибка при попытке записи в файл :
Smarty error: unable to write to $compile_dir '/storage/home/srv18973/htdocs/....../compiled'. Be sure $compile_dir is writable by the web server user. in /storage/home/srv18973/.........../Smarty.class.php on line 1092
После выставил права на запись для папки compiled 0777
Теперь новая проблема, т.е ошибки:
Warning: Smarty error: problem writing temporary file '/storage/home/srv18973/htdocs/..../compiled//%%97/979/wrt4aae85990464e' in /storage/home/srv18973/....................../Smarty.class.php on line 1092
Warning: include(/storage/home/srv18973/htdocs/..../compiled//%%97/979/9797CF29%%inner.tpl.php) [function.include]: failed to open stream: No such file or directory in /storage/home/srv18973/....................../Smarty.class.php on line 1255
Warning: include() [function.include]: Failed opening '/storage/home/srv18973/htdocs/...../compiled//%%97/979/9797CF29%%inner.tpl.php' for inclusion (include_path='.:/usr/local/share/pear') in /storage/home/srv18973/........................../Smarty.class.php on line 1255
на хостинге безопасный режим отключен, т.е. safe_mode-off.
Может кто знает как решить эту проблему??
Заранее спасибо. | |
|
|
|
|
|
|
|
для: shah
(15.09.2009 в 16:41)
| | Вы путь к этой директории прописали?
$smarty->compile_dir = $_SERVER['DOCUMENT_ROOT']."/templates_c/"; | |
|
|
|
|
|
|
|
для: Лена
(15.09.2009 в 16:46)
| | Да путь прописал.
И на локалке все работает ок.
На сервере создал папки %%97/979/ и в ей файл 9797CF29%%inner.tpl.php ошибка исчезает, но при переходи в другой блок сново пишет ее только путь другой. | |
|
|
|
|
|
|
|
для: shah
(15.09.2009 в 17:13)
| | Блин,просидел день так ничего и не добился((((((
Может хоть какие у кого идеи есть ??? Помогите Плиззз!! | |
|
|
|
|
|
|
|
для: shah
(15.09.2009 в 21:56)
| | Поставьте права на папки со смарти 0777, мало ли :) | |
|
|
|
|
|
|
|
для: DEM
(15.09.2009 в 23:32)
| | пробовал - ничего((( | |
|
|
|
|
|
|
|
для: shah
(15.09.2009 в 23:57)
| | Не подцепляется только один файл шаблона или вообще все?
Честно говоря, не знаю, что у вас там, но я бы делала следующее.
Определила бы проблемный участок(если он один, два и т.д.) - в шаблонах в начале и в конце надо ставить метки, что-то вроде <!-- mytempl.tpl start --> и <!-- mytempl.tpl end --> тогда сразу видно, какой шаблон не срабатывает.
Дальше. Посмотреть, какие переменные в этот шаблон идут - может, вы там что-то грабите, а хостер этого делать не разрешает...
Можно попытаться спросить у хостера, в чем дело. Мол, права стоят и все равно не работает.
Еще можно найти людей с похожими проблемами - здесь
Еще вот это нашла - тоже почитайте http://www.phpinsider.com/smarty-forum/viewtopic.php?t=4500. Там есть ссылка на тестовый класс. Можно сходить на форум смарти - ссылка та же, пару слов по-английский думаю, составите, чтобы описать проблему.
Если ничего не получится, прицепите здесь шаблон, который не срабатывает.
У меня, например, после установки прав все работало. | |
|
|
|
|
|
|
|
для: shah
(15.09.2009 в 17:13)
| | Эти вещи сам Смарти создает, не надо за него делать, настроить толком надо. Найдите в сети такой файл Smarty-2.6.11-docs.pdf и почитайте, там все подробно написано и про установку и про настройку.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.09.2009 в 15:33)
| | Ничего не получается.
Сайт написан под CMS, эта CMSка уже работает на многих сайтах и на локалке у меня сайт на ней тоже работает, вот функция которая выдает ошибку:
<?
function smarty_core_write_file($params, &$smarty)
{
//Здесь переменная
//$params['filename'] = //storage/home/srv18973/htdocs/_frontend/compiled//%%33/330/330C93A8%%index.tpl.php/
//т.е существует
$_dirname = dirname($params['filename']);
//$_dirname = /storage/home/srv18973/htdocs/_frontend/compiled//%%33/330
//тоже существует
if ($params['create_dirs']) {
$_params = array('dir' => $_dirname);
require_once(SMARTY_CORE_DIR . 'core.create_dir_structure.php');
smarty_core_create_dir_structure($_params, $smarty);
}
$_tmp_file = tempnam($_dirname, 'wrt');
//!!!!!Здесь переменной $_tmp_file уже не существует
if (!($fd = @fopen($_tmp_file, 'wb'))) {
$_tmp_file = $_dirname . DIRECTORY_SEPARATOR . uniqid('wrt');
if (!($fd = @fopen($_tmp_file, 'wb'))) {
$smarty->trigger_error("problem writing temporary file '$_tmp_file'");
return false;
}
}
fwrite($fd, $params['contents']);
fclose($fd);
if (DIRECTORY_SEPARATOR == '\\' || !@rename($_tmp_file, $params['filename'])) {
// On platforms and filesystems that cannot overwrite with rename()
// delete the file before renaming it -- because windows always suffers
// this, it is short-circuited to avoid the initial rename() attempt
@unlink($params['filename']);
@rename($_tmp_file, $params['filename']);
}
@chmod($params['filename'], $smarty->_file_perms);
return true;
}
|
Если я не ошибаюсь smarty не может создать времменную директорию /%%33/330/и
файл 330C93A8%%index.tpl.php'.
В чем может быть проблема?
Для всех файлов smarty выставил права 0777.
Служба поддержки молчит.
Буду искать дальше... | |
|
|
|
|
|
|
|
для: shah
(16.09.2009 в 18:10)
| | Константы определены - SMARTY_CORE_DIR, DIRECTORY_SEPARATOR ? | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.09.2009 в 18:27)
| | SMARTY_CORE_DIR определено (/storage/home/srv18973/_core_amg/classes/smarty/internals/),
а вот DIRECTORY_SEPARATOR - нет!
Только не могу найти где они задаются. | |
|
|
|
|
|
|
|
для: shah
(16.09.2009 в 18:47)
| | упс, ошибочка вышла DIRECTORY_SEPARATOR тоже определена - это "/" | |
|
|
|
|
|
|
|
для: shah
(16.09.2009 в 18:47)
| | упс, ошибочка вышла DIRECTORY_SEPARATOR тоже определена - это "/" | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.09.2009 в 18:27)
| | DIRECTORY_SEPARATOR всегда определена. Это стандартная константа. | |
|
|
|
|
|
|
|
для: Саня
(16.09.2009 в 19:59)
| | ну да, тут я по инерции собрал все константы из сообщения. | |
|
|
|