ExBB Community » Файловый ExBB » Решение проблем » Восстановление старых версий форума после обнуления

Страниц (4): « 1 [2] 3 4 »
 

16. electron - 7 июля 2009 — 12:47 - перейти к сообщению
может не в тему, но назрел вопрос : а в каком файлике можно подкорректировать дату из вот этой надписи вверху поста
CODE:
Отправлено: 07 Июля, 2009 - 16:20:36

???
17. yura3d - 7 июля 2009 — 14:21 - перейти к сообщению
electron пишет:
может не в тему, но назрел вопрос : а в каком файлике можно подкорректировать дату из вот этой надписи вверху поста

Просто. Кликаете по кнопке ID в нужном сообщении, появиться прямая ссылка на него, в которой будет фрагмент:
CODE:
topic.php?forum=X&topic=Y&postid=Z#Z

где X, Y, Z соответственно номера раздела, темы и сообщения.
Далее открываете файл forumX/Y-thd.php и находите в нём число Z. Это число и является датой сообщения, представленной в формате Unix timestamp (с учётом выставленного на сервере часового пояса). Прибавляя или отнимая от этого числа единицу, Вы соответственно увеличиваете или уменьшаете время на одну секунду. Если Вы изменяете дату сообщения, которое является последним в форуме или подфоруме, то не забудьте также пересчитать статистику этого раздела в админке
18. electron - 7 июля 2009 — 15:25 - перейти к сообщению
спасибо, попробую
19. alexx - 12 февраля 2010 — 16:53 - перейти к сообщению
yura3d пишет:
2B пишет:
Обратиться не проблема, вопрос - что мне ему сказать? Что именно хостер должен сделать, чтобы у меня не обнулялись файлы?

Спросить нужно, какие права на запись следует устанавливать для файлов и папок. Проблема в том, что универсальные (от кого-то такой термин слышал) права 777 на многих хостингах открывают полный доступ к файлам для других пользователей сервера, а это серьёзная брешь в безопасности.

Вот приложил скин, папка data, как я понимаю при установке нужно выставить права на запись владельца, а групповые и публичные запретить на запись ( снять галочки) ?
Тоесть оставить права владельцу?

Цитата:
A3: На следующие файлы и папки форума необходимо выставить права доступа на запись:

* для папки data и всех файлов в ней
* для папок вида forumN и всех файлов в них (N - номер раздела)
* для папки members и всех файлов в ней
* для папки messages и всех файлов в ней
* для папки uploads и всех файлов в ней
* для папки im/avatars/personal и всех файлов в ней
* для папок вида modules/YYY/data и всех файлов в них (YYY - название модуля)


PS/ Снял права на запись групповые и публичные.. форум не загрузился.
Вернул все назад, заработал.
20. Defenderyk - 1 июля 2010 — 10:33 - перейти к сообщению
все, похерился форум...востановил из бекапа, но оно не помогает...все папки форумов на месте
21. Defenderyk - 1 июля 2010 — 13:31 - перейти к сообщению
Вот такой думаю для многих важный вопрос возник...Полетел форум...
Но папки форумные сохранились...как теперь определенную папку вернуть обратно в allforums.php?

n/t например папка forum98 теперь не удел, хотя в ней есть темы и обсуждения. как ее добавить обратно ручным способом?
22. alexx - 1 июля 2010 — 17:20 - перейти к сообщению
Defenderyk пишет:
Вот такой думаю для многих важный вопрос возник...Полетел форум...
Но папки форумные сохранились...как теперь определенную папку вернуть обратно в allforums.php?

n/t например папка forum98 теперь не удел, хотя в ней есть темы и обсуждения. как ее добавить обратно ручным способом?

А как полетел, что случилось с форумом, вроде в обнулением проблема решена.
23. Defenderyk - 1 июля 2010 — 17:57 - перейти к сообщению
alexx пишет:
А как полетел, что случилось с форумом, вроде в обнулением проблема решена.
на сервере переполнилось место и почему то форум обнулился
24. Defenderyk - 1 июля 2010 — 19:51 - перейти к сообщению
так вот теперь спрашиваю, как можно в файл флфорумз прописать недостающие подфорумы, которые были созданы позже...сами то папки с файлами остались, их теперь бы прописать...

я не разобрался за что там отвечает каждое значение. думаю в фак добавуить было бы полезно
25. alexx - 1 июля 2010 — 23:03 - перейти к сообщению
vipraskrutka пишет:
Defenderyk пишет:
на сервере переполнилось место и почему то форум обнулился

скорей всего по другой причине, файл открылся для записи, скрипт стер содержимое, тут бац, глюк апача (зависание, кончилась оперативка или перезагрузка) и остался наш файл пустым... Тут не спасет никакие защиты от обнуления...

Может делать предварительную запись в буфер и если все окей, то файл записывается, как записался, буфер опустошается.
зы. я чайник в этом, но вот чет мысля пришла.. Улыбка
26. yura3d - 2 июля 2010 — 13:16 - перейти к сообщению
Defenderyk
Уже пару раз ко мне обращались с подобной проблемой. Причина обнуления была та же - либо заканчивалось место на сервере, либо же на определённых этапах работы происходила нехватка выделенной оперативной памяти для PHP на сервере. Обработка подобных ситуаций с целью недопустить потерю данных довольно сложна и требует существенных затрат ресурсов, что скажется не самым лучшим образом на производительности. Более того, обработку файлов на PHP невозможно реализовать в виде единой операции (транзакции), соответственно и существенно затруднена возможность осуществления отката (отмены всех действий текущей транзакции) к предыдущей версии файловой базы данных при наступлении сбоя (без использования транзакционного подхода есть риск нарушения целостности базы данных: какие-то файлы будут обновлены, а какие-то нет, и в результате данные в них перестанут соответствовать друг другу)

alexx пишет:
Может делать предварительную запись в буфер и если все окей, то файл записывается, как записался, буфер опустошается.

В PHP изначально запись на диск буферизируется. Но проблема в том, что практически все действия на форуме затрагивают не один файл, а как минимум несколько. И может оказаться так, что для первых файлов свободного пространства хватает, а для последнего нет. В итоге, даже если и восстановить содержимое последнего файла из буфера, оно не будет соответствовать обновлённым данным в первых файлах, а это уже нарушение целостности базы данных, о чём было сказано выше. Конечно, можно в специальных временных файлах либо буферах сохранять прежние версии файлов, но эта операция крайне расточительна с точки зрения расходованя ресурсов и производительность

vipraskrutka пишет:
скорей всего по другой причине, файл открылся для записи, скрипт стер содержимое, тут бац, глюк апача (зависание, кончилась оперативка или перезагрузка) и остался наш файл пустым... Тут не спасет никакие защиты от обнуления...

Всё верно. PHP крайне абстрагирован от уровня оборудования (как и большинство языков программирования высокого уровня, а уж тем более интерпретируемых), поэтому диагностика и решение некоторых проблем на нём реализовать в принципе невозможно

alexx пишет:
А как полетел, что случилось с форумом, вроде в обнулением проблема решена.

Решена была проблема с обнулением файлов при осуществлении множественного доступа к ним, про изменённый механизм блокировки файлов для осуществления множественного доступа упоминалось в теме релиза. Разумеется, проблемы и сбои на сервере к этому не относятся

Defenderyk
Во-первых, попробуй восстановить файл списка форумов из резервной копии, которая размещается в файле data/allforums_bak.php, путём переименования этого файла в allforums.php (при этом желательно сделать копию текущего файла, на случай если восстановление из резервной копии не принесёт желаемого результата).
Если восстановление из резервной копии не помогло, можно сделать следующее. Создай в админке новый раздел, заново укажи при этом название, описание, модераторов раздела и другие параметры, т.к. восстановить старые параметры без резервной копии нельзя. Далее всё просто, открой файл data/allforums.php, по названию раздела найди его элемент в сериализованном массиве, он будет выглядеть примерно так:
Цитата:
{i:1;a:18:{s:7:"catname";s:8:"Тестовая";s:5:"catid";i:1;s:4:"name";s:8:"Тестовый";s:2:"id";i:1;s:4:"desc";s:0:"";s:5:"posts";i:0;
s:6:"topics";i:0;s:8:"position";i:101;s:6:"stview";s:3:"all";s:5:"stnew";s:3:"all";s:5:"strep";s:3:"all";s:9:"moderator";a:1:{i:1;s:6:"yura3d";}s:7:"private";b:0;s:5:"codes";b:1;s:5:"polls";b:1;s:4:"icon";s:0:"";s:6:"upload";i:0;s:9:"last_time";i:0;}

Красным отмечен номер (id) созданного раздела, теперь нужно заменить этот id номером старого раздела (в 2-х выше отмеченных местах). На этом всё, теперь осталось привести в порядок статистику раздела, для этого в админке напротив него кликаем сначала Восстановить темы, а затем Пересчитать. Если раздел был приватным, то ранее назначенные для доступа к нему пользователи сохраняют свои права

Вообще, где-то у меня была утилита для автоматизации описанных выше процессов, но сейчас что-то не могу найти Хм Было бы неплохо включить её в архив 1-го сообщения темы
27. alexx - 2 июля 2010 — 14:15 - перейти к сообщению
yura3d пишет:
Вообще, где-то у меня была утилита для автоматизации описанных выше процессов, но сейчас что-то не могу найти Хм Было бы неплохо включить её в архив 1-го сообщения темы


Да, нужно такую утилиту иметь всем пользователям на всякий случай.
Выложите пожалуйста. Улыбка
28. Defenderyk - 2 июля 2010 — 23:45 - перейти к сообщению
yura3d, спасибо!!! а утилитка действительно была бы ползной)
29. Defenderyk - 3 июля 2010 — 21:02 - перейти к сообщению
Интересная бага: последний id юзера 3993
а юзеров на форуме 3983

где же еще 10 Не понял
30. yura3d - 3 июля 2010 — 22:16 - перейти к сообщению
Defenderyk
Прав vipraskrutka. Присваиваемый пользователю номер (id) зависит от числа регистраций, а не от кол-ва зарегистрированных пользователей. В противном случае возможны были бы некоторые проблемы. Например, присваивание сообщений удалённого пользователя новому и т.п.

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0548]     [ ]