parserALT
Страницы форума: ← Назад | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 600 | Дальше →

Много уже обсуждалось, но все же

#1dukonst
09.10.11 19:11
www.parser.ru → | ответить → | в избранное →

Много уже обсуждалось, но все же

Хостинг timeweb. Сервер Linux 2.6 x86_64
Parser работает (судя по _test.html).

Локальный libmysqlclient.so выдает ошибку:
driver failed to initialize client library 'libmysqlclient.so', /usr/lib/libmysqlclient.so: wrong ELF class: ELFCLASS64


Копирую свой libmysqlclient.so, выдает ошибку:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)


Подскажите, в какую сторону двигаться?
#2max_rip
→ dukonst [#1] | 09.10.11 20:03
www.parser.ru → | ответить → | в избранное →

А какая у вас строка подключения?

#3dukonst
→ max_rip [#2] | 09.10.11 20:33
www.parser.ru → | ответить → | в избранное →

mysql://user:password@localhost/database

#4Sumo
→ dukonst [#1] | 09.10.11 20:38 / 20:39
www.parser.ru → | ответить → | в избранное →

Парсер с драйвером 64-битные?

#5dukonst
→ Sumo [#4] | 09.10.11 20:40
www.parser.ru → | ответить → | в избранное →

32-битный для RedHat. 64 возвращает 500 ошибку

#6Sumo
→ dukonst [#5] | 09.10.11 20:44 / 20:46
www.parser.ru → | ответить → | в избранное →

Поставьте 64-битный, запустите из консоли на сервере и покажите сообщение...

... Или посмотрите в логе веб-сервера причину 500 ошибки.
#7dukonst
→ Sumo [#6] | 09.10.11 20:46
www.parser.ru → | ответить → | в избранное →

Premature end of script headers: .../cgi-bin/parser3.cgi

#8Sumo
→ dukonst [#7] | 09.10.11 20:47
www.parser.ru → | ответить → | в избранное →

Что в консоли?

#9dukonst
→ Sumo [#8] | 09.10.11 20:48
www.parser.ru → | ответить → | в избранное →

К сожалению, не знаю как это сделать

#10Sumo
→ dukonst [#9] | 09.10.11 20:50
www.parser.ru → | ответить → | в избранное →

Лучше изучить...

... но как вариант поставить 32-битную версию, узнать у хостера путь к сокету и задать его в строке подключения - в документации описано как это сделать.
#11dukonst
→ Sumo [#10] | 09.10.11 20:52
www.parser.ru → | ответить → | в избранное →
По поводу подключения к сокету хостер мне ответил:
Подключайтесь не к сокету, а по адресу сервера, в Ваше случае localhost.
#12Sumo
→ dukonst [#11] | 09.10.11 21:10
www.parser.ru → | ответить → | в избранное →

Тут есть тонкий момент...

Если для стандартной libmysqlclient указать в качестве адреса сервера localhost, то подключение все равно пойдет через сокет, что и подтверждается сообщением «вашей» библиотеки. И тут либо хостер не в курсе этого, либо у них более сложная конфигурация хостинга (какой-нибудь прокси, нестандартная либа и т.п.).

В этой ситуации лучше всего собрать Парсер и драйвер прямо на сервере из исходников — скорее всего это сразу снимет все проблемы. Но для этого нужен ssh-доступ и минимальные навыки работы с консолью юникса (что просто необходимо знать любому веб-разработчику).

Но можно попробовать указать вместо localhost адрес 127.0.0.1, что должно указать библиотеке, что надо использовать tcp-соединение с сервером.
#13dukonst
→ Sumo [#8] | 09.10.11 21:49
www.parser.ru → | ответить → | в избранное →
Если я правильно понял:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./parser3.cgi)
#14dukonst
→ Sumo [#12] | 10.10.11 09:05
www.parser.ru → | ответить → | в избранное →
Использование вместо localhost 127.0.0.1 выдает ошибку:
Access denied for user 'alcon_mobi'@'127.0.0.1' (using password: YES)
#15Sumo
→ dukonst [#14] | 10.10.11 09:28
www.parser.ru → | ответить → | в избранное →

И что на это говорит хостер?

#16dukonst
→ Sumo [#12] | 10.10.11 10:24
www.parser.ru → | ответить → | в избранное →
Решился собрать парсер. Сам парсер собрал, а вот mysql драйвер никак:
make[1]: Entering directory `/home/a/alcon/parser_compile/parser3mysql/libltdl'
make[2]: Entering directory `/home/a/alcon/parser_compile/parser3mysql/libltdl'
/bin/sh ./../mkinstalldirs /usr/local/lib
/bin/sh ./../mkinstalldirs /usr/local/include
mkdir -p -- /usr/local/include
mkdir: cannot create directory `/usr/local/include': Permission denied
make[2]: *** [install-includeHEADERS] Error 1
make[2]: Leaving directory `/home/a/alcon/parser_compile/parser3mysql/libltdl'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/a/alcon/parser_compile/parser3mysql/libltdl'
make: *** [install-recursive] Error 1

Подскажите, или ткните носом :)
#17moko
→ dukonst [#16] | 10.10.11 15:28
www.parser.ru → | ответить → | в избранное →

Все уже собралось.

Судя по всему, в .libs уже лежит требуемая libparser3mysql.so. А что install не проходит, так не надо make install говорить. :)
#18moko
→ dukonst [#11] | 10.10.11 15:44
www.parser.ru → | ответить → | в избранное →

Путь к сокету

Можно посмотреть так (если он конечно в /var/)

strings <путь к библиотеке mysql хостера>libmysqlclient.so |grep "/var/"

ну или

strings <путь к библиотеке mysql хостера>libmysqlclient.so |grep "sock",

но в таком вариантов несколько лишних строк будет.
#19moko
→ dukonst [#13] | 10.10.11 15:48
www.parser.ru → | ответить → | в избранное →

Правильно

А можно еще результат ldd ./parser3.cgi и uname -a? Вообще ошибка выглядит странно, как-будто у хостера библиотека libstdc++.so.6 несовместима с установленной у него же glibc.
#20moko
→ dukonst [#16] | 10.10.11 15:55
www.parser.ru → | ответить → | в избранное →

64-х битные платформы

Note: Есть особенность сборки на 64-х битных платформах - и парсер, и библиотеку sql надо собирать --with-dynamic-stdcpp. В первом случае это откомментировать строку в buildall-with-xml, во втором передать параметром в configure.
#21Максим
→ dukonst [#1] | 14.10.11 23:19
www.parser.ru → | ответить → | в избранное →
У нас такое было, это вопросы у хостера. Что то с правами вашего пользователя, ему не дают динамически подключить вашу библиотеку

P.S. может и не совсем технически сказал, но суть такова. Долюайте хостера
Страницы форума: ← Назад | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 600 | Дальше →