Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

rss

Вы не зашли.

Объявление

#1 2015-10-21 21:39:38

JancoNG
Пользователь
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   
Профиль

Помогите запустить версию 0.9.3 на PHP 5.3+

Версия 0.9.3 работает на PHP 5.2 но на 5.3 не хочет запускаться - белый экран. Включал вывод ошибок - ничего не выводит только пустая белая страница. Кто может подсказать в чём несовместимость, может немного подправить надо? 0.9.4 наполовину запускается на 5.5 -пишет: Fatal error: no auth module found (плагин стоит). Я просто боюсь, что если как то перенесу на новую версию, то хостинги разные - если PHP попадется 5.2, то 0.9.4 на нём работать не будет, а если 5.3 то 0.9.3 не работает. Не каждый хостинг даёт версию выбрать. Вот я и хотел подправить, может бы 0.9.3 как-то с PHP 5.3 удалось совместить?

Неактивен

 

#2 2015-10-22 00:06:58

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

По первому случаю - что в логах? Пусто там не может быть.
По второму случаю - нужно смотреть chmod'ы и вообще установлен ли плагин auth_basic.

Неактивен

 

#3 2015-10-22 09:00:26

legenda
Пользователь
Откуда: ua
Зарегистрирован: 2009-12-22
Сообщений: 2133
Рейтинг :   39 
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

Версия 0.9.3 работает на PHP 5.2, а ее последние оновления (вроде с SVN1178+) на 5.3
Версия 0.9.4 работает как на 5.2 так и на 5.3 так и на 5.4

Просто старую версию надо вписать в индекс файле в блоке где есть текст типа

Необходима версия PHP 5.3 или выше

если стоит 5.3 или 5.4 то обе версии должни работать без проблем, если неработают то проблема скорее в другом

Неактивен

 

#4 2015-10-22 16:54:20

JancoNG
Пользователь
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

Спасибо за ответы.

infinity237 написал:

По первому случаю - что в логах? Пусто там не может быть.
По второму случаю - нужно смотреть chmod'ы и вообще установлен ли плагин auth_basic.

Так в том то и дело, что логи я смотреть не могу на хостинге - нет их.
Плагин auth_basic стоит, активен ли - не знаю, потому что войти надо. шмоды - такие же как везде стандартные 755 или 775.

Версия 0.9.3 работает на PHP 5.2, а ее последние оновления (вроде с SVN1178+) на 5.3

У меня 880 вроде. Надо покопать эту сборку, правда снова придётся в utf8 переделывать sad

Неактивен

 

#5 2015-10-22 18:50:11

JancoNG
Пользователь
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

А где последнюю версию 0.9.3 1147 скачать? Что-то не могу найти. На странице загрузки SVN880, такая как у меня.
Поставил на Денвер PHP 5.4.31, включил логи: при загрузке белая страница, а в логах вот такое:

[22-Oct-2015 15:38:10 UTC] PHP Fatal error:  Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0

[22-Oct-2015 15:38:13 UTC] PHP Fatal error:  Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0

В .htaccess эта директива закомментирована, т.е. не может быть причиной. Есть там в install.php что-то об этом.
Пробовал закомментить вот это:

Код:

    foreach (array('allow_call_time_pass_reference') as $flag) {
        $tvars['vars']['flag:'.$flag]     = ini_get($flag)?'Включено':'<font color="red">Отключено</font>';
        if (!ini_get($flag)) { $warning++; }
    }

В error.log больше ничего не пишет, но страница всё равно пустая белая sad

Отредактированно JancoNG (2015-10-22 19:00:18)

Неактивен

 

#6 2015-10-22 19:42:11

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

Ночная сборка http://ngcms.ru/files/SVN/

Неактивен

 

#7 2015-10-22 20:48:46

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

JancoNG написал:

А где последнюю версию 0.9.3 1147 скачать? Что-то не могу найти. На странице загрузки SVN880, такая как у меня.
Поставил на Денвер PHP 5.4.31, включил логи: при загрузке белая страница, а в логах вот такое:

[22-Oct-2015 15:38:10 UTC] PHP Fatal error:  Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0

[22-Oct-2015 15:38:13 UTC] PHP Fatal error:  Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0

В .htaccess эта директива закомментирована, т.е. не может быть причиной. Есть там в install.php что-то об этом.
Пробовал закомментить вот это:

Код:

    foreach (array('allow_call_time_pass_reference') as $flag) {
        $tvars['vars']['flag:'.$flag]     = ini_get($flag)?'Включено':'<font color="red">Отключено</font>';
        if (!ini_get($flag)) { $warning++; }
    }

В error.log больше ничего не пишет, но страница всё равно пустая белая sad

В php.ini нужно отключать

Неактивен

 

#8 2015-10-22 22:21:02

newbi
Пользователь
Зарегистрирован: 2011-08-09
Сообщений: 30
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

0.9.3 [SVN880+FIX01] прекрасно работает с php 5.2 и 5.3

Неактивен

 

#9 2015-10-24 15:37:42

JancoNG
Пользователь
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

infinity237  написал:

В php.ini нужно отключать

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

Directive 'magic_quotes_gpc' is no longer available in PHP in Unknown on line 0

Потом:

Directive 'register_long_arrays' is no longer available in PHP in Unknown on line 0

А потом то что в начале - ошибок больше нет и белая страница. php.ini тут ни при чём. Если бы проблема была в нём, то другие движки тоже не работали бы, но WP успешно работает, да и не может же на всех хостингах быть "плохой" php.ini Копать надо где-то в движке, но где?...
=======
Так, в файле core.php идёт процесс до

Код:

@include_once root.'includes/inc/extras.inc.php';

После этой строчки - всё, гаплык! Пока столько накопал.

Отредактированно JancoNG (2015-10-24 15:58:57)

Неактивен

 

#10 2015-10-24 16:35:11

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

Копайте... big_smile
Только почему то у большинства все работает, а у вас нет

Неактивен

 

#11 2015-10-24 20:51:56

JancoNG
Пользователь
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

Копайте...
Только почему то у большинства все работает, а у вас нет

Да ну. Можете продемонстрировать, как NG 0/9/3 работает? например здесь (PHP 5.5) стоит. Или на хостингере можно.
Файл extras.inc.php, функция exec_acts, вот этот кусок кода:

Код:

        foreach($functions as $func) {

                    $tX = $timer->stop(4);

                if ($func['arguments'] == 0) {
                    $sth.=call_user_func($func['function']);
                }
                if ($func['arguments'] == 1) {
                    $sth.=call_user_func($func['function'],$sth);
                }
                if ($func['arguments'] == 2) {
                    $sth.=call_user_func($func['function'],$sth, &$arg1);
                }
                if ($func['arguments'] == 3) {
                    $sth.=call_user_func($func['function'],$sth, &$arg1, &$arg2);
                }
                if ($func['arguments'] == 4) {
                    $sth.=call_user_func($func['function'],$sth, &$arg1, &$arg2, &$arg3);
                }
                if ($func['arguments'] == 5) {
                    $sth.=call_user_func($func['function'],$sth, &$arg1, &$arg2, &$arg3, &$arg4);
                }
                $timer->registerEvent('func EXEC_ACTS ('.$item.'): call function "'.$func['function'].'" ['.$func['arguments'].' params] for '.($timer->stop(4) - $tX)." sec");
            }

Сбой я так понял вызывает call_user_func, а именно когда аргументы по ссылке передаются. Первые 2 случая нет, а последующие - крах. Если вызов заменить например так:

Код:

call_user_func_array($func['function'],array($sth, &$arg1));

то есть продвижение, хотя в целом сайт так и не работает. Можно ли так заменить и дальше искать?
Если сравнить с версией 0.9.4, то там этот фрагмент кода вообще сделан просто так:

Код:

$output.=call_user_func($func);

т.е. аргументы никакие не разбираются, не передаются.. Но это может компенсировано как-то другими наработками?... Хотелось бы комментарий разработчиков или кто хорошо знает ядро. Спасибо.

Неактивен

 

#12 2015-10-24 21:07:42

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

Пф... Естественно передача аргументов по ссылке не будет работать в php >= 5.3
Меняется просто на &$arg1 => $arg1

Поискать по всем сорцам вхождения &$ не так уж и сложно.

Неактивен

 

#13 2015-10-25 17:22:37

JancoNG
Пользователь
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

infinity237 написал:

Пф... Естественно передача аргументов по ссылке не будет работать в php >= 5.3
Меняется просто на &$arg1 => $arg1

Поискать по всем сорцам вхождения &$ не так уж и сложно.

Спасибо. Вы мне очень помогли. Есть продвижения smile Были вхождения вызова функций с передачей по ссылке в cmodules.php, extras.inc.php Как поставил обычные переменные, движок запустился, даже в админку зашёл. НО! Сайт не работает как надо. Например в админке если перейти в раздел редактирования статей, то в списке статей у некоторых (по ходу без видимой закономерности) не показывается Title - просто пустое место. Там где в шаблоне админки есть entry.title, в то время как другие параметры работают.
При переходе на сайт, только каркас есть: шапка, сайдбар, а основное содержимое - лента новостей - нет, пусто вместо неё. Что может быть, куда копать?

Неактивен

 

#14 2015-10-27 22:43:59

JancoNG
Пользователь
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   
Профиль

Re: Помогите запустить версию 0.9.3 на PHP 5.3+

Всё решено!cool То что не заполнялся mainblock - проблема в вызове _MASTER_URL_PROCESSOR,

JancoNG  написал:

если перейти в раздел редактирования статей, то в списке статей у некоторых (по ходу без видимой закономерности) не показывается Title - просто пустое место. Там где в шаблоне админки есть entry.title, в то время как другие параметры работают.

а здесь проблема у меня, потому что utf8 и substr не контачат, в результате htmlspecialchars видела "битую строку " и возвращала пустую.

infinity237  написал:

Меняется просто на &$arg1 => $arg1

В самом деле никак не просто! Вы этим меня "ввели в заблуждение". Передать ссылки в php 5.3+ можно только при статическом вызове, а при call_user_func - подвох получается, надо использовать call_user_func_array - всё-таки как я предлагал, иначе никак..
Но в общем помогли, спасибо. smile

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.016 seconds, 20 queries executed ]