Jump to content

Обновление с 4.3.6 до 4.6.12

Featured Replies

Posted
comment_190911

Приветствую.

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

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

Итак, начал я с бэкапов, естественно. Подключился через Putty, который мне любезно предоставил владелец, по SSH к серверу. Сделал дамп базы данных:

mysqldump -u user_name db_name | bzip2 > /path_to_save/backup.sql.bz2

Затем данные сайта. Я скопировал все содержимое папки public_html. Сначала я хотел сделать из нее архив, но, видимо, параметры нужные не выставил, и архив быстро забил оставшееся место на сервере. Поэтому пришлось скачивать файлы по отдельности. В следующий раз надо сделать по уму, ибо 16 гигов из 77 тысяч файлов скачивались по FTP несколько часов😐 Отсюда первые вопросы:

  • Достаточно ли тех действий, что я произвел, для бэкапа сайта перед обновлением?
  • Как правильно скачать по SSH файлы с сервера себе на локальный компьютер? Читал, что по FTP гораздо медленнее это все.

После создания бэкапов было решено, что сразу обновлять сайт на сервере плохая идея, поэтому принял решение развернуть все локально и попробовать обновить. Скачал и установил XAMPP последней версии, но зря. В нем используется PHP 8, который не совместим с версиями движка < 4.7 (я прав?). После этого я перепробовал кучу версий и остановился на версии 3.2.2. Сразу скажу, что это не лучшее решение, и лучше использовать сразу 7.4.33.

После установки XAMPP создал новую базу данных и импортировал из бэкапа. Чтобы дойти до правильного решения по импорту базы, мне потребовалось, наверное, пол-дня, мда😕. Сначала создал новую базу импортировал базу в XAMPP:

path_to_xampp_dir\mysql\bin\mysql.exe -h localhost -u db_user_name -p db_name < "path_to_backup_dir\backup_file.sql"

Затем, чтобы не копировать снова 16 гигов, я сделал символическую ссылку между xampp\htdocs и папкой бэкапа сайта. Запустил в панели управления XAMPP сервер и базу MySQL, и попробовал зайти на сайт. И он даже открылся. Но радовался я не долго, ибо все ссылки перебрасывали меня на приветственную страницу XAMPP. При этом в ACP все работало.

  • Отсюда вопрос: в чем может быть причина некорректно работающих ссылок?

Поискав решение проблемы и не найдя его, решил попробовать обновиться. Скачал файлы 4.4 версии с вашего сайта, распаковал с заменой в public_html и запустил /adbin/upgrade/. В итоге получил ошибку:

We were unable to start a PHP session. You will need to contact your host to adjust your PHP configuration before you can continue. The error reported was: session_start(): Failed to read session data: files (path: \xampp\tmp) 

Первым делом попробовал обновить версию apache и php до версии 7, т.к в XAMPP 3.2.2 идет 5 версия php. Не помогло. Пробовал менять пути в php.ini там, где встречается \xampp\tmp, но тоже безрезультатно. На этом я закончил попытки и пришел сюда, иначе я до пенсии буду разбираться.

Еще я попробовал установить чистую 4.3 и обновить ее. В итоге все прошло гладко вплоть до 4.6.12. Версия 4.7 снова начала ругаться на синтаксис, из чего стало ясно, что снова надо обновлять php, но мне это не нужно в данный момент.

Простите за портянку, но стараюсь объяснить как можно подробнее. Еще стоит, наверное, уточнить, что на сервере используется nginx, в отличие от XAMPP, где используется apache.

В общем, если коротко, то на данный момент мне нужно развернуть локально сайт и попытаться его обновить.

  • Replies 154
  • Просмотров 26,7k
  • Created
  • Последний ответ

Лучшие авторы в теме

Most Popular Posts

  • ips обновляет приложения последовательно до конечной версии загруженного обновления. установи другой, например Open Server, там на лету можно менять конфигурацию сервера  

  • Из-за отсутствия папки uploads могут быть некоторые проблемы, если, например, в них в виде файлов хранится кэш шаблонов сайта. Лучше проводить тест при правильно загруженных всех файлах и папках, выст

  • Проблему заливки файлов пока решил упаковкой в архив bz и распаковкой на сервере.

Posted Images

comment_190913

Я бы посоветовал обновлять постепенно,по порядку версий. Таким образом будут сведены к минимуму какие-либо проблемы.

  • Author
comment_190914
7 минут назад, AHristich сказал:

Я бы посоветовал обновлять постепенно,по порядку версий. Таким образом будут сведены к минимуму какие-либо проблемы.

Я и начал с 4.4,10.

Edited by edmsl

comment_190915
13 минут назад, AHristich сказал:

Я бы посоветовал обновлять постепенно,по порядку версий. Таким образом будут сведены к минимуму какие-либо проблемы.

ips обновляет приложения последовательно до конечной версии загруженного обновления.

24 минуты назад, edmsl сказал:

в отличие от XAMPP

установи другой, например Open Server, там на лету можно менять конфигурацию сервера
 

  • Author
comment_190916
1 минуту назад, Exception сказал:

установи другой, например Open Server, там на лету можно менять конфигурацию сервера

Попробую его, спасибо за наводку.

  • Author
comment_190930

Если я залил файлы обновления, заменив оригинал, то просто откатиться уже нельзя и нужно заливать файлы из бэкапа?

  • Author
comment_190934
В 12.03.2023 в 19:59, Exception сказал:

установи другой, например Open Server

Да, на OpenServer все работает как положено. По крайней мере я не заметил проблем.Разве что приложение чата не работает.

  • Author
comment_191092

В общем, владелец сказал, что смысла заморачиваться с обновой на текущей платформе нет, т.к. система уже устарела, как и движок, поэтому лучше и проще начать с нуля. Чем я, собственно, и занялся. Развернул на Almalinux сервер и буду пробовать обновлять сайт уже там.

Тему не закрываю, т.к. при обновлении версий все равно возникнут вопросы.

Edited by edmsl

  • Author
comment_191094
В 12.03.2023 в 19:30, edmsl сказал:

В итоге получил ошибку:

We were unable to start a PHP session. You will need to contact your host to adjust your PHP configuration before you can continue. The error reported was: session_start(): Failed to read session data: files (path: \xampp\tmp)

Возникла эта же ошибка при установке 4.4.10 на чистый сервер. Проблема оказалась в том, что папка была недоступна для записи. Пришлось повозиться с правами доступа к разным папкам. На Линукс это, как оказалось, то еще веселье. К одной папке доступ есть, к другой нет. В общем, сайт лежит в директории /home/user/web/site.ru/public_html, пользователь в конфигах nginx и php-fpm тоже user. Сайт запускался, но была ошибка выше. полазал по гуглу, пишут, что проверяйте поле session.save_path = /tmp/ в файле php.in. Не стал заморачиваться, пытаясь понять, относительно чего считается /tmp, потому создал папку /home/user/web/site.ru/tmp и в ини прописал session.save_path = /home/user/web/site.ru/tmp. И это не помогло. Оказалось, что надо дать права и на эту папку. Сделал

chown -R user:user /home/user/web/site.ru/tmp

и только после этого пошла установка.

comment_191095
2 часа назад, edmsl сказал:

Оказалось, что надо дать права и на эту папку.

Всё, что лежит в папке /home/user/*, должно иметь пользователя и группу user, если у вас php не как модуль апача запущен. Это вроде само собой вытекает и подразумевается. Если у вас php как модуль apache, то apache:user может помочь для папки tmp.

Edited by Zero108

  • Author
comment_191096
5 минут назад, Zero108 сказал:

Всё, что лежит в папке /home/user/*, должно иметь пользователя и группу user, если у вас php не как модуль апача запущен.

Я полагал, что если файлы в папке /home/user , то user по умолчанию имеет туда доступ.

А как узнать, как запущен php?

comment_191097
34 минуты назад, edmsl сказал:

А как узнать, как запущен php?

В панели управления сервером может быть эта информация напрямую. Если у вас ISP Manager, то можно зайти в настройки домена и посмотреть.

Чаще всего php по умолчанию ставится в папку /opt/, например, /opt/php81/. Если в админцентре сайта зайти в раздел /admin/?app=core&module=support&controller=phpinfo , то вы увидите, где находится файл php.ini. Если это в папке /opt/php74/, то велика вероятность, что php запущен как модуль apache. Но чаще всего запускают php как CGI или как FastCGI. 

Но чаще всего запускают php как CGI или как FastCGI. Тогда php.ini будет в папке пользователя, например, /var/www/php-bin-isp-php74/user/php.ini

Edited by Zero108

comment_191099
11 минут назад, edmsl сказал:

Развернул сайт с базой

Это выражение имеет слишком много вариантов понимания. Развернул - установил с нуля, развернул - восстановил резервную копию... Постарайтесь предоставлять более подробную информацию. Настроен ли сертификат ssl для домена на сервере? Прописан ли https в config_global.php (в корне сайта)?

Edited by Zero108

  • Author
comment_191100
4 минуты назад, Zero108 сказал:

Прописан ли https в config_global.php (в корне сайта)?

Если сайт изначально работает на https, а тестовый сервер на http - это может быть причиной? Для домена ssl не настроен. Я с этим даже не разбирался еще.

7 минут назад, Zero108 сказал:

Постарайтесь предоставлять более подробную информацию

Создал папку в /home/user/site2.ru/public_html и туда скопировал все файлы. Создал базу, залил в нее из бэкапа базы сайта.

comment_191101

edmsl Прописан ли https или http в conf_global.php (в корне сайта)? Для домена в панели управления сервером (если панель существует) включено обязательное перенаправление на https или нет? Вам нужно поставить ssl сертификат для домена в панели управления сервером. В ISP Manager, например, можно автоматически получать ssl сертификаты от Lets Encrypt. 

Откройте conf_global.php и посмотрите, что там написано: http или https.

Например,
$INFO['board_url']            =    'https://a108.net';

Если сертификат не стоит, то должно быть http, и наоборот.

Edited by Zero108

  • Author
comment_191102

Zero108 Панель не установлена. Есть только панель dnsadmin. В ней написано сверху isp manager, но кроме настроек привязки домена к ip там нет ничего.

Цитата

Прописан ли https или http в config_global.php (в корне сайта)?

Это не знаю, где настроить. В файле http фигурирует только в параметре 'base_url'. Там прописано http://IP сервера.

В панели dnsadmin, кстати есть запись.

Цитата
Версии программного обеспечения
Apache 2.2.15-59.el6.centos

это к вопросу про php. Сам php.ini лежит в корне папки /etc

Без веб-панели сертификат не прописать?

Edited by edmsl

comment_191103
2 минуты назад, edmsl сказал:

Без веб-панели сертификат не прописать?

Вам лучше обратиться к хостеру и спросить, предоставляют ли они бесплатный ssl сертификат. Его нужно устанавливать самостоятельно или воспользоваться помощью техподдержки сервера. В ISP Manager зайдите в раздел WWW-домены и откройте домен для редактирования. Там выберите установку Lets Encrypt сертификата. 

https://rudocs.ispmanager.com/ispmanager-lite/integratsiya-s-lets-encrypt

Edited by Zero108

  • Author
comment_191104
2 минуты назад, Zero108 сказал:

В ISP Manager

Нет его у меня. Я так понимаю, проще установить, чем без него маяться.

SSL сертификат сейчас выдали на 6 месяцев.

comment_191105
38 минут назад, edmsl сказал:

SSL сертификат сейчас выдали на 6 месяцев.

Если сертификат для домена настроен, настройте conf_global.php.

  • Author
comment_191107

Подключил сертификат, настроил conf_global.php. Сейчас сайт загружается по https://домен, значит сертификат работает корректно, но все равно 404 ошибка по любой ссылке. Может в nginx что-то еще надо настроить? Сделал как здесь, кроме оптимизаций

https://help.reg.ru/support/ssl-sertifikaty/3-etap-ustanovka-ssl-sertifikata/kak-nastroit-ssl-sertifikat-na-nginx

Блин, походу, я дурак. Я же не скинул папку uploads... Она весит много, для тестов решил не грузить ее.

  • Author
comment_191108

Еще когда кликаешь по ссылке, например, форумы (домен.ru/forums), то в логе nginx появляется запись

2023/03/20 11:27:11 [error] 8564#8564: *905 "/home/user/web/домен.ru/public_html/forums/index.html" is not found (2: No such file or directory), client: ip, server: www.домен.ru.ru, request: "GET /forums/ HTTP/1.1", host: "домен.ru", referrer: "https://домен.ru/"
И если посмотреть файлы сайта, то там нет такой директории. Но на оригинальном сайте их тоже нет по тому же пути и той же ссылке.
 
А может это все как раз из-за того, что папка uploads не загружена?

Edited by edmsl

comment_191112

Из-за отсутствия папки uploads могут быть некоторые проблемы, если, например, в них в виде файлов хранится кэш шаблонов сайта. Лучше проводить тест при правильно загруженных всех файлах и папках, выставленных правах на файлы и папки. Попробуйте временно удалить файлы .htaccess и constants.php из корневой директории сайта, так как они могут содержать неправильные для текущего серверного окружения настройки. Правильные права на файлы и папки описаны тут.

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

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

ips4.php

Edited by Zero108

  • Author
comment_191115
51 минуту назад, Zero108 сказал:

Также вы можете попробовать загрузить в корневую директорию вашего сайта файл ips4.php и вызвать его в браузере

Получаю ошибку 504 Gateway Time-out где-то через 30 сек.

2 часа назад, Zero108 сказал:

Попробуйте временно удалить файлы .htaccess и constants.php

Нет изменений

Каким способом быстрее всего заливать файлы на сервер? Filezilla 60 мегабайт обновлений больше получаса заливал.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.