xenforo integration

grigori

( ͡° ͜ʖ ͡°)
Команда форума
привет, мне тут надо в сайт встроить форум, думаю, этот xenforo использовать
надо в форуме закрыть регистрацию/логин и логиниться через мой сайт, синхронизировать аватары

у кого-нибудь есть опыт с xenforo?
есть какой-то API или дока?
я покопался, конечно, но все обсуждают внешние xml/json API, а мне не это надо

или вообще xenforo для этого не подходит?
 

fixxxer

К.О.
Партнер клуба
XenForo_Model_User пропатчь и почти усё.

Там страшненько, да.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
спасибо за наводку
буду искать этот XenForo_Model_User
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
А как у них сессии работают?
вижу таблицу xf_session и класс XenForo_Session, в котором есть static function startPublicSession, public function set($key, $value)

еще вижу XenForo_ImportSession, но что он делает - загадка (ни phpdoc, ни описаний, ни в гугле)
 

fixxxer

К.О.
Партнер клуба
Через него и работают, экземпляр сессии таскается в XenForo_Application extends Zend_Registry.

Можно по идее на свою реализацию просто заменить (см. Dependencies/*). Но они там страдают длинными методами с кучей if-ов и связыванием по хардкоденному имени класса, так что наследование не всегда поможет, проще пропатчить на месте.

ImportSession это вообще что-то не про то, подозреваю что связано с импортом из базы vBulletin-а.

Документации там хрен. Пропиши в его конфиг $config['debug'] = 1 и ходи по страничкам с ?_debug=1 будет хотя бы немного яснее. А дальше debug_print_backtrace и read the fucking code. Тока так :)
 
  • Like
Реакции: craz

grigori

( ͡° ͜ʖ ͡°)
Команда форума
что-то debug в config.php и _debug=1 в url приводят к "The page you are looking for is temporarily unavailable. Please try again later. "
похоже на перехватчик ошибок
 

fixxxer

К.О.
Партнер клуба
Может хедеры в nginx-овый буфер не влазят? Он там в фаербаг кучу говна слать начинает.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
вполне может быть, надо попробовать поднять
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Может хедеры в nginx-овый буфер не влазят? Он там в фаербаг кучу говна слать начинает.
к сожалению, сегфолт

[root@devel ~]# tail /var/log/messages
Apr 29 11:32:05 devel kernel: php-fpm[10933]: segfault at 63636107 ip 0058212b sp bf888b0c error 4 in libc-2.7.so[512000+153000]

[root@devel ~]# cat /var/log/php-fpm.log

[30-Apr-2011 21:05:10] WARNING: [pool www] child 24879 exited on signal 11 (SIGSEGV) after 11.603462 seconds from start
[30-Apr-2011 21:05:10] NOTICE: [pool www] child 24884 started
щас прогоню через gdb
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Core was generated by `php index.php'.
Program terminated with signal 11, Segmentation fault.
#0 0x083ccebc in add_property_string_ex (arg=0xa62c714,
key=0x7a6fb4 "catalog", key_len=8,
str=0x665f696b <Address 0x665f696b out of bounds>, duplicate=1)
at /usr/src/web/php-5.3.6/Zend/zend_API.c:1524
1524 ZVAL_STRING(tmp, str, duplicate);
(gdb) bt
#0 0x083ccebc in add_property_string_ex (arg=0xa62c714,
key=0x7a6fb4 "catalog", key_len=8,
str=0x665f696b <Address 0x665f696b out of bounds>, duplicate=1)
at /usr/src/web/php-5.3.6/Zend/zend_API.c:1524
#1 0x00799f0c in php_add_field_properties (value=0xa62c714, field=0xa2aea28)
at /usr/src/web/php-5.3.6/ext/mysqli/mysqli_api.c:1056
#2 0x0079a29b in zif_mysqli_fetch_fields (ht=0, return_value=0xa4b8584,
return_value_ptr=0x0, this_ptr=0xa5c9ca0, return_value_used=1)
at /usr/src/web/php-5.3.6/ext/mysqli/mysqli_api.c:1114
#3 0x083f3f03 in zend_do_fcall_common_helper_SPEC (execute_data=0xa055c50)
at /usr/src/web/php-5.3.6/Zend/zend_vm_execute.h:316
#4 0x083f4b3f in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0xa055c50)
at /usr/src/web/php-5.3.6/Zend/zend_vm_execute.h:421
#5 0x083f32d2 in execute (op_array=0xa2743b4)
at /usr/src/web/php-5.3.6/Zend/zend_vm_execute.h:107
#6 0x083c7718 in zend_execute_scripts (type=8, retval=0x0, file_count=3)
at /usr/src/web/php-5.3.6/Zend/zend.c:1194
#7 0x0835bd0c in php_execute_script (primary_file=0xbf889e14)
at /usr/src/web/php-5.3.6/main/main.c:2268
#8 0x0849121c in main (argc=2, argv=0xbf889f74)
at /usr/src/web/php-5.3.6/sapi/cli/php_cli.c:1193
Missing separate debuginfos, use: debuginfo-install keyutils.i386
(gdb)
кто-то может из этого что-то понять?
 

tz-lom

Продвинутый новичок
ну,фолтится при попытке заполнить объект из базы , как варианты или с fp неправильно работают или ошибку аллокации не обрабатывают
скорее второе т.к. первое бы и раньше вылезло (хотя и не факт)
попробуй дать ему памяти по самое залейся, не исключено что вся дебаг инфа накапливается до самого последнего момента
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
увеличил memory_limit с 64 до 128 мб, трейс идентичный
в top вижу у процесса перед падением RES 15M (cli) - и близко к сотне не приходит,
не думаю, чтобы дело было в объеме памяти
 

fixxxer

К.О.
Партнер клуба
ох хера

попробуй поотрубать всякие акселераторы. Ну и левые патчи типа suhosin если таковые есть. Если и так воспроизводится, однозначно баг в mysqli. Еще тогда можно попробовать юзать или наоборот не юзать mysqlnd.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
конечно, пересобрал с --debug и отключил все, что не входит в стандартный архив
http://devel.grik.net/phpinfo.php

a как включать/отключать mysqlnd? я не вижу опций для этого, только
--with-mysqli[=FILE] Include MySQLi support. FILE is the path
to mysql_config. If mysqlnd is passed as FILE,
the MySQL native driver will be used [mysql_config]
как это воспроизвести в минимальном коде - ахез... я тут xenforo запускаю
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Помогло. Видимо, что-то с mysql 5.0.45 не стыковалось.

теперь, конечно, ошибка не менее удивительная
An exception occurred: No such file or directory in /www/kisekimanga/htdocs/forum/library/Zend/Db/Adapter/Mysqli.php on line 333

Zend_Db_Adapter_Mysqli->_connect() in Zend/Db/Adapter/Abstract.php at line 315
Zend_Db_Adapter_Abstract->getConnection() in XenForo/Application.php at line 525
XenForo_Application->loadDb()
call_user_func_array() in XenForo/Application.php at line 752
XenForo_Application->lazyLoad() in XenForo/Application.php at line 782
XenForo_Application::get() in XenForo/Model.php at line 161
XenForo_Model->_getDb() in XenForo/Model/DataRegistry.php at line 138
XenForo_Model_DataRegistry->_getMultiFromDb() in XenForo/Model/DataRegistry.php at line 97
XenForo_Model_DataRegistry->getMulti() in XenForo/Dependencies/Abstract.php at line 134
XenForo_Dependencies_Abstract->preLoadData() in XenForo/FrontController.php at line 125
XenForo_FrontController->run() in /www/kisekimanga/htdocs/forum/index.php at line 15
это хотя бы посмотреть можно ...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а pdo_mysql не собирается с --with-pdo-mysql=mysqlnd
в ext/pdo_mysql/php_pdo_mysql_int.h стоит

#if defined(PDO_USE_MYSQLND)
# include "ext/mysqlnd/mysqlnd.h"
# include "ext/mysql/mysql_mysqlnd.h"
# include "ext/mysqlnd/mysqlnd_libmysql_compat.h"

заменил на
# include "../../ext/mysqlnd/mysqlnd.h"
# include "../../ext/mysql/mysql_mysqlnd.h"
# include "../../ext/mysqlnd/mysqlnd_libmysql_compat.h"

и собралось

явно стоит открыть багрепорт, кому-то влом было путь прописать
 
Сверху