Ошибка 500 при установке PHPBB под Firebird - решено

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
soulner
phpBB 1.0.0
Сообщения: 6
Стаж: 12 лет 6 месяцев

Ошибка 500 при установке PHPBB под Firebird - решено

Сообщение soulner »

Доброго времени суток! Просьба не пинать сильно ногами, буквально недавно заинтересовался PHPBB, т.к. надо на работе сделать форум.
Исходные данные: IIS 7.0 на WS 2008, PHP 5.2.17, на этом сервере развернуты несколько корпоративных Web-узлов на базе СУБД Firebird 2.5 (т.е. схема рабочая).
Качаю PHPBB 3.0.12, создаю новый узел в IIS и распаковываю в C:\inetpub\wwwroot\forum, проверяю, чтобы запустился http:\\мой сервер/install/phpinfo.php. Всё работает.
Создаю на сервере БД новую базу forum и пользователя fr_user, даю ему все права на базу.
Запускаю http:\\мой сервер/install/ всё, что нужно зелёное, далее тоже всё просто, заношу параметры подключения, а потом... Ошибка 500!
Путём всеразличных трассировок выяснил, что ошибка вылетает где-то после выполнения процедуры sql_list_tables() модуля db_tools.php, т.е. запрос

Код: Выделить всё

SELECT rdb$relation_name FROM rdb$relations WHERE rdb$view_source is null AND rdb$system_flag = 0
уходит на сервер и там выполняется корректно возвращая пустое множество, но потом всё.
Поискал на форуме, получается, что у всех всё нормально ставится только я один такой криворукий :cry:
Прошу подтолкнуть в направлении решения задачи, спасибо.
Последний раз редактировалось soulner 27.03.2014 11:43, всего редактировалось 1 раз.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Ошибка 500 при установке PHPBB под Firebird

Сообщение Пчелкин »

Молить хостера об увеличение тайм аута для запрос-сервер-ответ -получение ответа браузером...
В поиске есть решения на уровне php.ini...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
soulner
phpBB 1.0.0
Сообщения: 6
Стаж: 12 лет 6 месяцев

Re: Ошибка 500 при установке PHPBB под Firebird

Сообщение soulner »

Не нужно никого молить, сервер в моём ведении, могу делать что хочу (главное остальной софт не повалить). В php.ini стоит max_execution_time = 300 и memory_limit = 512M, должно хватить выше крыши. Т.е. запрос к серверу БД может выполняться 5 минут без всяких проблем.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Ошибка 500 при установке PHPBB под Firebird

Сообщение rxu »

soulner
Конфигурация не частая, прямо скажем. Сам на такую ставить никогда не пробовал.
Вот это не поможет (хоть там и не ФБ, но общий алгоритм)? [FAQ] Установка PHPBB3 на Win2003Server+PHP5+IIS6+MSSQL2005
soulner писал(а):ошибка вылетает где-то после
А конкретного текста ошибки нет в логах?
Изображение
soulner
phpBB 1.0.0
Сообщения: 6
Стаж: 12 лет 6 месяцев

Re: Ошибка 500 при установке PHPBB под Firebird

Сообщение soulner »

Соединение с БД устанавливается и даже выполняется один запрос (на сервере FBScanner стоит). Ситуация очень интересная, пробовал procmon натравить на процесс php-cgi.exe, в нём хорошо видно если есть нарушение доступа к файлу. В результате ничего. Поставил в php.ini error_reporting = E_ALL в надежде что-то увидеть и опять ничего. Лог IIS беден и просто показывает, что тогда-то выполнен такой-то GET и в результате ошибка 500.
Лог сервера БД показывает сетевую ошибку INET/inet_error: read errno = 10054 и Unable to complete network request to host. Error reading data from the connection. С чего бы это?
У меня просьба, если кто знает в каком модуле форума происходит проверка соединения (index.php?mode=install&sub=database), покопаюсь в исходниках поищу ошибку.
soulner
phpBB 1.0.0
Сообщения: 6
Стаж: 12 лет 6 месяцев

Re: Ошибка 500 при установке PHPBB под Firebird

Сообщение soulner »

В логе сервера БД есть ошибка: INET/inet_error: read errno = 10054 и Unable to complete network request to host. Error reading data from the connection. Очень странно, на этом сервере работают PHP-скрипты под Firebird, т.е. php.ini сконфигурирован корректно.
Перенёс форум на сервер с БД запустил, тоже самое. Подскажите, в каком модуле лежит код, который выполняется при запросе index.php?mode=install&sub=database, буду ковырять, смотреть.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Ошибка 500 при установке PHPBB под Firebird

Сообщение rxu »

soulner
Попробуйте посмотреть \phpbb\db\driver\firebird.php, в котором лежит "драйвер" соединения phpBB с этой СУБД.
Изображение
soulner
phpBB 1.0.0
Сообщения: 6
Стаж: 12 лет 6 месяцев

Re: Ошибка 500 при установке PHPBB под Firebird

Сообщение soulner »

Всё :D Всё дело в некорректном исполнении функции ibase_server_info в модуле function_install.php функция connect_check_db строка 353 (для PHPBB 3.0.12).
Вполне возможно, что дело в моём допотопном PHP версии 5.2.17, быть может в новых версиях PHP такой проблемы нет.
В качестве временной меры предлагаю строку 351 переписать в виде

Код: Выделить всё

if ($db->service_handle !== false && function_exists('ibase_server_info') && false)
тем самым отключить использование данной функции. Беда в том, что данная функция используется ещё и в функции sql_server_info, прописанной в модуле firebird.php а эта функция вызывается достаточно часто. Её исполнение тоже нужно заблокировать.

Код: Выделить всё

function sql_server_info($raw = false, $use_cache = true)
	{
		/**
		* force $use_cache false.  I didn't research why the caching code there is no caching code
		* but I assume its because the IB extension provides a direct method to access it
		* without a query.
		*/

		$use_cache = false;

		if ($this->service_handle !== false && function_exists('ibase_server_info') && false)
		{
			return @ibase_server_info($this->service_handle, IBASE_SVC_SERVER_VERSION);
		}

		return ($raw) ? '2.5' : 'Firebird/Interbase'; // у меня версия 2.5
	}
Закрываю тему, спасибо всем за участие.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Ошибка 500 при установке PHPBB под Firebird - решено

Сообщение rxu »

А в чем конкретно заключается проблема с данной функцией?
Изображение
soulner
phpBB 1.0.0
Сообщения: 6
Стаж: 12 лет 6 месяцев

Re: Ошибка 500 при установке PHPBB под Firebird - решено

Сообщение soulner »

Проблема в том, что при её использовании процесс php-cgi.exe падает с ошибкой 500 (на РНР версии 5.2.17 обращаю внимание), а уж почему это происходит я не знаю.

Вернуться в «Поддержка phpBB 3.0.х»