Jump to content

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


edmsl

Recommended Posts

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

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

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

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

Edited by edmsl
Link to comment
Share on other sites

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

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

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

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

в отличие от XAMPP

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

Edited by edmsl
Link to comment
Share on other sites

В 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

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

Link to comment
Share on other sites

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

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

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

Edited by Zero108
Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

404 Not Found
nginx/1.20.1

 

Link to comment
Share on other sites

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

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

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

Edited by Zero108
Link to comment
Share on other sites

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

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

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

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

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

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

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

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

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

Edited by Zero108
Link to comment
Share on other sites

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

В ISP Manager

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Еще когда кликаешь по ссылке, например, форумы (домен.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
Link to comment
Share on other sites

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

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

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

ips4.php

Edited by Zero108
Link to comment
Share on other sites

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

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

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

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

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

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

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

Link to comment
Share on other sites

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
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...