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

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

Вы не зашли.

#1 2015-10-21 22: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 01:06:58

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

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

Не в сети

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

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   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 17: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 19: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 20:00:18)

Не в сети

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

irbees2008
Продвинутый чайник ;)
Откуда Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2,873
Рейтинг :   121 
Сайт

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

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

Не в сети

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

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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 23:21:02

newbi
Участник
Зарегистрирован: 2011-08-09
Сообщений: 51

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

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

Не в сети

#9 2015-10-24 16: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 16:58:57)

Не в сети

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

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

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

Не в сети

#11 2015-10-24 21: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 22:07:42

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

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

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

Не в сети

#13 2015-10-25 18: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 23:43:59

JancoNG
Участник
Зарегистрирован: 2013-02-20
Сообщений: 24
Рейтинг :   

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

Всё решено!:cool: То что не заполнялся mainblock - проблема в вызове [font=Courier]_MASTER_URL_PROCESSOR[/font],

JancoNG  пишет:

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

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

infinity237  пишет:

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

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

Не в сети

Подвал раздела

Работает на FluxBB