This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Last revision Both sides next revision | ||
ru:updates [2017/04/07 15:02] admin |
ru:updates [2018/03/16 17:32] admin [Как провести апдейт на очень старом сайте] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Updates ====== | ||
+ | |||
+ | Апдейты помогают нам и Вам содержать Вашу копию в актуальном состоянии. С апдейтами в скрипте добавляются новые функции и тд. В пределах одного апдейта бывают разные билды с небольшими поправками. Апдейт и билд написан в конце каждой страницы. | ||
+ | |||
+ | |||
+ | ====== How to run update ====== | ||
+ | |||
+ | < | ||
+ | cd your_path_to/ | ||
+ | php update.php (опционально номер апдейта) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== TCMS (Smartcj 2.X) Updates ====== | ||
+ | |||
+ | |||
+ | [[ru: | ||
+ | |||
+ | |||
+ | ====== SmartCJ v 1.X Updates ====== | ||
+ | |||
+ | |||
+ | [[Update 52]] | ||
+ | |||
+ | [[Update 51]] | ||
+ | |||
+ | [[Update 50]] | ||
+ | |||
+ | [[Update 49]] | ||
+ | |||
+ | [[Update 48]] | ||
+ | |||
+ | [[Update 47]] | ||
+ | |||
+ | [[Update 46]] | ||
+ | |||
+ | [[Update 45]] | ||
+ | |||
+ | [[Update 44]] | ||
+ | |||
+ | [[Update 43]] | ||
+ | |||
+ | [[Update 42]] | ||
+ | |||
+ | [[Update 41]] | ||
+ | |||
+ | [[Update 40]] | ||
+ | |||
+ | [[Update 39]] | ||
+ | |||
+ | [[Update 38]] | ||
+ | |||
+ | [[Update 37]] | ||
+ | |||
+ | [[Update 36]] | ||
+ | |||
+ | [[Update 35]] | ||
+ | |||
+ | [[Update 34]] | ||
+ | |||
+ | [[Update 33]] | ||
+ | |||
+ | [[Update 32]] | ||
+ | |||
+ | [[Update 31]] | ||
+ | |||
+ | [[Update 30]] | ||
+ | |||
+ | [[Update 29]] | ||
+ | |||
+ | [[Update 28]] | ||
+ | |||
+ | * Базовая строка для проведения всех апдейтов. Она обновит ваш скрипт до послденией версии | ||
+ | < | ||
+ | cd / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Как провести какой-то определенный апдейт ===== | ||
+ | |||
+ | |||
+ | < | ||
+ | cd / | ||
+ | например | ||
+ | cd / | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Исходник update.php | ||
+ | |||
+ | < | ||
+ | |||
+ | <?php | ||
+ | require(' | ||
+ | require(' | ||
+ | |||
+ | // out of space fix | ||
+ | $df = disk_free_space(" | ||
+ | if ($df < 5*1024*1024) { | ||
+ | die(" | ||
+ | } | ||
+ | |||
+ | // slow connection fix | ||
+ | $mysql_version = db_value(' | ||
+ | if (stristr($d[' | ||
+ | db_query(" | ||
+ | } | ||
+ | |||
+ | if ($argv[1] != '' | ||
+ | $num = (int) $argv[1]; | ||
+ | if ($num > 0) { | ||
+ | ProcessUpdate($num); | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | $tmp = get_url(" | ||
+ | if ($tmp[' | ||
+ | die(" | ||
+ | } | ||
+ | |||
+ | $last_script_version = $tmp[' | ||
+ | |||
+ | if ($last_script_version == $settings[' | ||
+ | |||
+ | while ($settings[' | ||
+ | echo " | ||
+ | if (ProcessUpdate($settings[' | ||
+ | $settings[' | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | function ProcessUpdate($update_id) { | ||
+ | global $settings; | ||
+ | |||
+ | $tmp = get_url(" | ||
+ | if ($tmp[' | ||
+ | echo " | ||
+ | return false; | ||
+ | } | ||
+ | $_REQUEST[' | ||
+ | ob_start(); | ||
+ | eval ('?>' | ||
+ | $res = ob_get_clean(); | ||
+ | $res = str_replace('< | ||
+ | echo strip_tags($res); | ||
+ | |||
+ | return true; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ====== Как проапдейтить сразу все домены ====== | ||
+ | |||
+ | Можно создать файл например update.sh в котором будут строки по примеру | ||
+ | |||
+ | cd / | ||
+ | cd / | ||
+ | | ||
+ | и так далее нужное кол-во строк. И запустить его из шела | ||
+ | | ||
+ | sh update.sh | ||
+ | | ||
+ | |||
+ | При установке и апдейте скрипт не пишет index.php и вообще какие-либо файлы на корень домена, | ||
+ | - добавить в update.sh строки типа cp ../ | ||
+ | - или сразу при инстале не копировать индекс, | ||
+ | |||
+ | ====== Как откатить апдейт ====== | ||
+ | |||
+ | Единственный вариант - если у вас есть бекап с нужной версии. | ||
+ | |||
+ | Надо поставить скрипт этой версии и залить бекап мускла той же версии. | ||
+ | |||
+ | Просто так залить в скрипт версии например 45 бекап мускла из версии 44 - нельзя. | ||
+ | | ||
+ | | ||
+ | ====== Как провести апдейт на сайте с очень большой базой ====== | ||
+ | |||
+ | Апдейт может быт достаточно тяжелой процедурой для сервера, | ||
+ | |||
+ | - Поставить скрипт на другой (суб)домен, | ||
+ | - Залить туда дам базы с главного домена | ||
+ | - Запустить апедйт на этом отдельном субдомене | ||
+ | - На нем отработают все тяжелые процедуры по базе, при этом основной сайт затронут не будет | ||
+ | - Перелить базу со вспомогательного домена на основной | ||
+ | - Провести апедйт на основном - он пройдет быстро тк база уже изменена, | ||
+ | | ||
+ | | ||