Smarty compile error

Статус
В этой теме нельзя размещать новые ответы.

CNiks0N

lamp.root
Регистрация
28 Ноя 2008
Сообщения
229
Реакции
48
PHP + Smarty:

Короче суть вот в чём.
Есть нагруженный сайт, обновляем tpl файлики, в этот момент пользователь открывает страницу, и пока по ftp закачивается новый файл компилятор хватает половину закачанного, видит ошибку и не выводит эту страничку. Далее ещё круче, т.к. страничка уже скомпилина, а время создания файла не изменилось то все остальные странички грузятся пустые.

Я знаю как её решить (проверять по eval чтобы страница не пустая была), но вдруг уже кто-то писал заплатку ?

UPD 7 фев 2013 в 11:36
Ок.
Спасибо за мнение и советы.

Добавлено latteo: Благодарности раздавай кнопкой "мне нравится"
 
и пока по ftp закачивается новый файл
Попробуй использовать ssh (sftp).
В твоем случае разница в том, что при перекачке по ftp файл создается пустой, потом по частям закачивается. В случае с ssh файл должен сохраниться только когда будет полностью передан на сервер (естественно, это касается маленьких файлов; то есть, например, если закачивать на сервер фильм, ssh-клиенты сами разбивают поток на части и с каждой переданной частью сохраняют инфу в конец файла).
 
Попробуй использовать ssh (sftp).
В твоем случае разница в том, что при перекачке по ftp файл создается пустой, потом по частям закачивается. В случае с ssh файл должен сохраниться только когда будет полностью передан на сервер (естественно, это касается маленьких файлов; то есть, например, если закачивать на сервер фильм, ssh-клиенты сами разбивают поток на части и с каждой переданной частью сохраняют инфу в конец файла).

Я бы с удовольствием пользовался sftp, но с ним работа у меня замедляется на 2-3 секунду 1 обновление, т.к. диииико привык в коммандере и только клавиатурой.
Ещё есть варианты ?
 
Ещё есть варианты ?
Подойдет любой вариант так, чтобы файл был сначала закачен, а потом пересохранен.
Можно использовать дублирующую папку. Написать в таблицу cron чтобы раз в минуту проверял наличие изменившихся файлов в дублирующей папке, переписать их в боевую папку. И редактировать файлы в дублирующей папке.
Также можно использовать SVN, Git или настроить любую реализацию WebDAV. Выбор за вами.
В любом случае, что-то надо настраивать. В самом коде PHP было бы неправильно решать такого рода проблемы.
 
В этом случае поможет только закачивать во временную папку, после закачки - копирование из временной в боевую с заменой, руками или по крону - уже не принципиально.
 
Используй разум - отключай на время обновления сервер для пользователей, если даже гиганты российских соц. сетей себе это позволяют (одноклассники - часто, вк - гораздо реже), то почему бы и обычным смертным не использовать?
Вот похожее спрашивали http://nulled.cc/threads/237210/
 
Используй разум - отключай на время обновления сервер для пользователей, если даже гиганты российских соц. сетей себе это позволяют (одноклассники - часто, вк - гораздо реже), то почему бы и обычным смертным не использовать?
Вот похожее спрашивали http://nulled.cc/threads/237210/

К сожалению данный вариант не приемлем, т.к. на сайте идут оплаты и если закрыть его на время проведения платежа будет очень плохо :(

Сделал вариант с sftp : Zend Studio -> Remote Systems :)
Всем спасибо
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху