Перейти к содержанию

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


Рекомендуемые сообщения

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

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

И вот момент настал. Я разжился доступом к серверу. Главный админ сказал, что заниматься обновлением ему некогда. Поэтому вся ответственность ложится на мои плечи. Я искал на форуме информацию, но вся она разрозненная и для меня, как человека, ни разу не имевшего дел с обновлениями платформы (да что уж там, я и с 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.

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем edmsl
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

в отличие от XAMPP

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

@Exceptionпро это не знал поэтому и предложил как вариант.

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Изменено пользователем edmsl
Ссылка на комментарий
Поделиться на другие сайты

В 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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

Развернул сайт с базой, все с виду норм, но при переходе по любой ссылке получаю

404 Not Found
nginx/1.20.1

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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, и наоборот.

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

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

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

Изменено пользователем edmsl
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

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

В ISP Manager

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Подключил сертификат, настроил 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... Она весит много, для тестов решил не грузить ее.

Ссылка на комментарий
Поделиться на другие сайты

Еще когда кликаешь по ссылке, например, форумы (домен.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 не загружена?
Изменено пользователем edmsl
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

ips4.php

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...