PHP --with-mnogosearch

  • Автор темы vichire8
  • Дата начала

vichire8

Guest
checking base type of last arg to accept... (cached) socklen_t
checking return type of qsort... (cached) void
configure: error: Cannot find MySQL header files under /usr/local/mysql

-~{}~ 03.03.04 11:49:

total 8
drwxr-xr-x 2 root root 4096 Mar 3 08:42 ./
drwxr-xr-x 20 root root 4096 Mar 3 08:35 ../
lrwxrwxrwx 1 root root 18 Mar 3 08:38 include -> /urs/include/mysql
lrwxrwxrwx 1 root root 8 Mar 3 08:42 lib -> /usr/lib/
 

tony2001

TeaM PHPClub
я соврал.
rm -f /usr/local/mysql/include
mkdir /usr/local/mysql/include
ln -s /usr/include/mysql /usr/local/mysql/include/mysql
 

vichire8

Guest
Так а ведь /usr/local/mysql/include/mysql - не существует

Но похоже вверху ошибся я - я написал urs вместо usr - щас переделаю отпишусь

-~{}~ 03.03.04 13:01:

Переделал с правильными символическими ссылками!
Все тоже самое
Похоже все-таки он находит нужные хидеры и c /usr и с /usr/local/mysql - при созданных символических ссылках

-lmnogosearch -lmnogocharset -lcrypt -lcrypt -o libphp4.la

/usr/lib/mysql/libmysqlclient.a(libmysql.o)(.data+0x4): multiple definition of
`mysql_port'
/usr/lib/mysql/libmysqlclient.a(libmysql.o)(.data+0x4): first defined here
/usr/lib/mysql/libmysqlclient.a(libmysql.o)(.data+0x8): multiple definition of
`mysql_unix_port'

....

: multiple definition of `net_real_write'
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0x540): first defined here
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0x240): In function `my_net_write':
: multiple definition of `my_net_write'
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0x240): first defined here
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0x320): In function `net_write_command':
: multiple definition of `net_write_command'
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0x320): first defined here
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0x990): In function `my_net_read':
: multiple definition of `my_net_read'
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0x990): first defined here
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0xc00): In function `net_request_file':
: multiple definition of `net_request_file'
/usr/lib/mysql/libmysqlclient.a(net.o)(.text+0xc00): first defined here
collect2: ld returned 1 exit status
make: *** [libphp4.la] Error 1

-~{}~ 03.03.04 13:03:

Ответ саппорта многосерча на то что хидеры находятся в не той директории

You have a problem with double linking of libmysql static library. And not with a
compilation. So you should find why your system linker prefer to use static libraries instead of dynamic.
 

tony2001

TeaM PHPClub
выполни
Код:
find / -name "libmysqlclient.so"
и
Код:
ldconfig -p | grep libmysqlclient
линкер не знает о *.so, но знает об *.a и пытается линковать статически.
попробуй добавить путь к libmysqlclient.so в LDFLAGS:
Код:
LDFLAGS="$LDFLAGS -L /path/to/"
export LDFLAGS
<далее обычный процесс сборки РНР>
либо придется править /etc/ld.conf и выполнять ldconfig, чтобы ld знал о *.so
 

vichire8

Guest
LDFLAGS="$LDFLAGS -L /usr/lib/"
export LDFLAGS

all done

./configure --with-mysql=/usr
ок

make - error

Ошибки теже c libmysqlclient.a

/etc/ld.conf - у меня вообще нету.
 

tony2001

TeaM PHPClub
>/etc/ld.conf - у меня вообще нету.
ld.so.conf тоже нет?

-~{}~ 03.03.04 15:44:

libmysqlclient.so точно есть и лежит в /usr/lib ?

-~{}~ 03.03.04 15:57:

специально проверил:
Код:
LDFLAGS="-L/tmp"
export LDFLAGS
./config.nice && make
результат:
Код:
/bin/sh /root/CVS/php-src/libtool --silent --preserve-dup-deps --mode=link gcc -export-dynamic -g -O2  .... [b]-L/tmp[/b] -R...........
 

ys

отодвинутый новичок
tony2001

Все правильно, mysql при установке:

с --prefix=/usr : кладет .h в /usr/include/mysql/
с --prefix=/usr/local : кладет .h в /usr/local/include/mysql/

А php их там и ищет, см convigure в сорцах php.

vichire8

Что то похожее я встречал, причем именно на linux, решил вроде приибванием всего что касается mnogosearch и
сборкой его статиком.
 

vichire8

Guest
ld.so.conf - есть.

libmysqlclient.so есть - это ссылка на иной либ в этой же папке.

/config.nice && make - у меня сразу запускает инсталяцию пхп и выводит тотже результат
 

tony2001

TeaM PHPClub
>libmysqlclient.so есть - это ссылка на иной либ в этой же папке.
покажи:
ls -l /usr/lib/libmysqlclient.so
 

vichire8

Guest
Автор оригинала: ys

Что то похожее я встречал, причем именно на linux, решил вроде приибванием всего что касается mnogosearch и
сборкой его статиком.
Можешь поподробней описать как это делается?
И какие отличия в этом от динамики?

-~{}~ 03.03.04 17:38:

root@server1 [/usr/lib]# ls -l /usr/lib/libmysqlclient.so
lrwxrwxrwx 1 root root 24 Dec 6 01:02 /usr/lib/libmysqlclient.so -> libmysqlclient.so.12.0.0*
root@server1 [/usr/lib]#
 

tony2001

TeaM PHPClub
>нету команды ldconfig тоже
я щас буду нервно хихикать...
последний вариант:
попросить, наконец, хозяина сервера (ака админа) найти "команду" ldconfig и выполнить её.
 

vichire8

Guest
root@server1 [/]# uname -a
Linux server1.host.net 2.4.21-4.0.1.EL #1 Thu Oct 23 01:36:33 EDT 2003 i686 i686 i386 GNU/Linux

-~{}~ 03.03.04 19:30:

root@server1 [/]# find / -name ldconfig
/sbin/ldconfig
root@server1 [/]# /sbin/ldconfig -p | grep mysql
libmysqlclient_r.so.12 (libc6) => /usr/lib/libmysqlclient_r.so.12
libmysqlclient_r.so.10 (libc6) => /usr/lib/libmysqlclient_r.so.10
libmysqlclient_r.so (libc6) => /usr/lib/libmysqlclient_r.so
libmysqlclient.so.12 (libc6) => /usr/lib/libmysqlclient.so.12
libmysqlclient.so.10 (libc6) => /usr/lib/libmysqlclient.so.10
libmysqlclient.so (libc6) => /usr/lib/libmysqlclient.so
root@server1 [/]#
 

MiRacLe

просто Чудо
имхо $PATH у root-а очень кривое содержимое имеет(не уверенен на все 100 но вроде configure-скрипты пользуют данные из $PATH)

root@webserver:/# echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:

у тебя он совершенно иной... попробуй export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:$PATH
ну и потом повтори сборку...

-~{}~ 03.03.04 21:00:

З.Ы. - перед "пересборкой" - ./make clean
 

vichire8

Guest
make - ok
make install - ok

Все вроди и хорошо!
Делаю стоп - старт для апача
/etc/init.d/httpd restart
а результат вывода функции phpinfo() старый, и раздела многосерч там и близко нету :( - где грабли - не понимаю ?
 
Сверху