Варианты по работе SMF 2.0 на PHP 7

Автор PistoGanza, 21 октября 2016, 07:42:01

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

PistoGanza

Добрый день!

Хочу проапдейтить на серваке PHP 5.2 -> 7. SMF стоит старый, 2.0.1. Изучаю как его можно завести на новом php. Веб-сервер на apache 2.4.6
Пока нашел такие варианты:

Собрать модуль mysql.so
Инструкция https://ckon.wordpress.com/2015/08/06/put-mysql-functions-back-into-php-7/
Скомпилял, подключил, в phpinfo модуль видно, но smf выкидывает ошибку. Похоже вываливается по функции db_fatal_error

Сделать обертки для mysql на базе mysqli
Инструкция https://sleepycode.com/2016/05/smf-2-0-with-php-7/
Тоже сделал, но опять такая же ошибка.

Переписать код smf на mysqli
Сам вряд ли осилю.
Надо переписывать только Subs-Compat и Subs-Db-mysql или что-то еще?


Предложение:
Попробовать коллективным разумом разобраться как же все-таки запустить SMF 2.0 на PHP 7. Может получится разобраться с первыми двумя вариантами, или вместе переписать нужные файлы.

PS. Известны ли еще какие-то проблемы с PHP 7 кроме отключенного mysql?

bober


PistoGanza

К сожалению, много исправленного кода вручную в движке( боюсь, что обновление много всего поломает.

iaroslav

Для smf есть мод, который позволяет использовать тип соединения с базой MySQLi (вот этот вот: http://custom.simplemachines.org/mods/index.php?mod=3469 ). А MySQLi поддерживается в php 7.0 по умолчанию.
Соответственно, ставите мод согласно приложенной инструкции (тупо копируете файл в нужную папку), правите конфиг на соединение MySQLi и радуетесь жизни.

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

Но это решение именно проблемы с базой. А есть ещё проблема с разницей в синтаксисе.

Если интересно, вот на английском форуме дискуссия на тему: http://www.simplemachines.org/community/index.php?topic=540808.0

digger®

Девелоперский форум гоняю уже давно, без особых проблем, на smf 2.0.11 + mysqli mod + php 7

Информация о версиях:
Версия форума: SMF 2.0.11 (подробнее)
Последняя версия SMF: SMF 2.0.12
Версия GD: bundled (2.1.0 compatible)
Версия mysqli: 10.0.27-MariaDB-0+deb8u1
PHP: 7.0.11-1~dotdeb+8.1
Версия Web сервера: nginx/1.11.5

PistoGanza

Цитата: iaroslav от 21 октября 2016, 11:09:28Для smf есть мод, который позволяет использовать тип соединения с базой MySQLi (вот этот вот: http://custom.simplemachines.org/mods/index.php?mod=3469 ). А MySQLi поддерживается в php 7.0 по умолчанию.
Соответственно, ставите мод согласно приложенной инструкции (тупо копируете файл в нужную папку), правите конфиг на соединение MySQLi и радуетесь жизни.

Вы его пробовали? У меня что-то пока не завелся  :(

S.T.A.L.K.E.R.

Цитата: bober от 21 октября 2016, 08:06:53Обновление до 2.1 b2.
2.1 на 7-ке работает с небольшой ошибкой.В багтрекер отписал,пока тишина.

iaroslav

Цитата: PistoGanza от 22 октября 2016, 17:00:35Вы его пробовали? У меня что-то пока не завелся  :(
Я - нет. Но выше digger написал, что пробовал.

karavan

Стоит у меня года 2 уже, всё нормально.

GeorG

У свой завёл на php7 с 235 модами. Почти три дня просидел, депрекации с фаталами правил :D 
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

DJ-X

Обновил до SMF 2.0.15 и форум без модов заработал на PHP 7.0.

Delysid


Snow_Irbis

SMF версии 2.0.15 стабильно работает на версии PHP 7.0.33 (так же с этой версией PHP отлично работают моды SMFPacks Shoutbox, Quick Spoiler, Simple Audio Video Embedder, SimpleAds и Optimus) :)

DJ-X


Oleg+

07 ноября 2019, 11:44:41 #14 Последнее редактирование: 07 ноября 2019, 11:56:29 от Oleg+
У меня SMF 2.0.15 отказывается корректно работать на PHP 7.2.

Выдаются предупреждения:


Цитата: undefinedDeprecated: Function create_function() is deprecated in /home/mysite/docs/Sources/Load.php on line 178

Deprecated: Function create_function() is deprecated in /home/mysite/docs/Sources/Load.php on line 183

Deprecated: Function create_function() is deprecated in /home/mysite/docs/Sources/Load.php on line 184

Deprecated: Function create_function() is deprecated in /home/mysite/docs/Sources/Load.php on line 220

Deprecated: Function create_function() is deprecated in /home/mysite/docs/Sources/Load.php on line 223

Deprecated: Function create_function() is deprecated in /home/mysite/docs/Sources/Load.php on line 235

И так далее

Срок поддержки PHP 7.1 истекает в декабре 2019 года.

Вам недоступны вложения в этом разделе.

Вопрос: будет ли поддержка PHP 7.2 в SMF ?
Житель района Восточное Дегунино (Москва, Россия)

Delysid

У меня форум работает на php 7.1, патчил под Php 7.1 своими руками, плюс некоторые моды правил..
Не работает корректно на 7.2 - проверено...
Так, что вероятно нужно терпеть до конца и переезжать на 2.1.
Но боязно т.к. сколько патчей безопасности было до 2.0.15??
Посмотреть если security vulnerabilities по патчам - то нужно ждать до последнего как по мне безопасной версии 2.1...

S.T.A.L.K.E.R.

07 ноября 2019, 22:12:16 #16 Последнее редактирование: 07 ноября 2019, 23:03:12 от S.T.A.L.K.E.R.
Function create_function() is deprecated это уже начинается на 7.2
Этой функцией забит весь двиг,моды и прочее.
Править пока не пробовал,но на 7.3 если не обращать внимания на эту ошибку форум работает.
Хотя можно вот тут посмотреть - https://www.simplemachines.org/community/index.php?topic=559573.0
Посмотрел мод,теоретически исправить можно на 7.2 код движка,но перелопатить его придется много+еще и моды.
Может быть на НГ каникулах и займусь. Пока PHP: 7.1.33 работает хорошо.

Delysid

Цитата: S.T.A.L.K.E.R. от 07 ноября 2019, 22:12:16Function create_function() is deprecated это уже начинается на 7.2
Этой функцией забит весь двиг,моды и прочее.
Править пока не пробовал,но на 7.3 если не обращать внимания на эту ошибку форум работает.
Хотя можно вот тут посмотреть - https://www.simplemachines.org/community/index.php?topic=559573.0
Посмотрел мод,теоретически исправить можно на 7.2 код движка,но перелопатить его придется много+еще и моды.
Может быть на НГ каникулах и займусь. Пока PHP: 7.1.33 работает хорошо.
Подтверждаю. Любая 7.1.xx пашет.. выше проблема... Проблема именно когда PHP 7.2 )) Если поможете пропатчить -цены вам не будет.. А пока переходить боязно но новый движок..  Еще года 2 есть под 7.1... а если пропатчить то ещё больше будет по поддержке PHP. Очень обидно быть робингудом когда ломанут под 2.1 хотя там и куки дополнительные, но ничего не спасёт если дырку найдут..  :)

Delysid

18 декабря 2019, 21:44:52 #18 Последнее редактирование: 18 декабря 2019, 21:55:49 от Delysid
Так почему ответа нет?  ^-^ Ктобы взялся стандарнтые переходы пропатчить ((((((((((((((((
А остальное ручками бы проптчили....

Лично я пропатчу медленно неделями не умно ешкин кот в сравнении с новой версией... Но новую ставить... ставьте ставьте...
Если найдут инжект - похакают все форумы....

handself

Ну если сильно надо то я за вознаграждение сделал бы

Delysid

Ну та не жмись.. Если можешь посмотреть у меня сайт в личке...
Что менять? Я подхвочу и буду писать что менял... O0

Вас как нахлабучило.... Этот сайт на 2.1 А нам такое счастье на инжекты ненужно.... 3 года на проверку.........

Delysid

handself я те вижу... 
Может основные патчи опубликовать чтобы ошибки не били с 7.1php на 7.2php

handself

Не, просто так не хочу делать. Там много работы. 100+ мест где надо править в 18+ файлах

Delysid

Цитата: handself от 18 декабря 2019, 23:12:52Не, просто так не хочу делать. Там много работы. 100+ мест где надо править в 18+ файлах
Tema
Н
у и что - я немогу.. У меня нехватает знаний SQL..
Может со сталкером обьединитесь? Исделаете - и скинете тому кто подбил? Остальным за бабло?

Delysid

18 декабря 2019, 23:25:44 #24 Последнее редактирование: 05 января 2020, 13:50:27 от digger®
Цитата: handself от 18 декабря 2019, 23:12:52Не, просто так не хочу делать. Там много работы. 100+ мест где надо править в 18+ файлах
И кстати *** что много работы..... Программист за 1 час исправит php проблемы....

S.T.A.L.K.E.R.

Цитата: Delysid от 18 декабря 2019, 23:17:09Может со сталкером обьединитесь?
У меня форум денежку хорошую приносит. Так что мне проще программиста нанять за неё. Но это все в планах потом, и по лету ночами, когда простой в плане потери бабла не так ощутим будет.
Пока сезон желанья нет. Работает и так замечательно.

Delysid

Цитата: S.T.A.L.K.E.R. от 19 декабря 2019, 14:40:46У меня форум денежку хорошую приносит. Так что мне проще программиста нанять за неё. Но это все в планах потом, и по лету ночами, когда простой в плане потери бабла не так ощутим будет.
Пока сезон желанья нет. Работает и так замечательно.
Значит попробуем использовать этот мод, для php 7.2.
Будет больше тормозов, но некоторое время это даст протянуть..
https://web-develop.ca/index.php?action=downloads;area=stable_smf_modifications;file=48;download

Delysid

Код
--- Sources/Errors.orig.php 2018-05-23 14:21:57.933367060 +0100
+++ Sources/Errors.php 2018-05-23 13:47:45.711567251 +0100
@@ -203,6 +203,10 @@
 {
 global $settings, $modSettings, $db_show_debug;

+ // Disable PHP 7.2 "Function create_function() is deprecated" errors from filling the forum error logs
+ if (defined('E_DEPRECATED') && $error_level == E_DEPRECATED && (version_compare(phpversion(), '7.2') >= 0) && strpos($error_string, 'Function create_function() is deprecated') !== false)
+ return;
+
 // Ignore errors if we're ignoring them or they are strict notices from PHP 5 (which cannot be solved without breaking PHP 4.)
 if (error_reporting() == 0 || (defined('E_STRICT') && $error_level == E_STRICT && (empty($modSettings['enableErrorLogging']) || $modSettings['enableErrorLogging'] != 2)))
 return;
knuppel

Delysid

Тем временем..
we are working on SMF 2.0.16 which will have basic support for php 7.2.
we dont have a release date yet for 2.0.16. it will be ready when it is ready.

Так что вероятно будет 2.0.16  :)

S.T.A.L.K.E.R.

7.4.2 работает.Ошибки от модов и нотисы не в счёт.Ошибки поправил,нотисы потихоньку поприбиваю.