Доброго времени суток.
Система FreeBSD 6.1, сервер Apache-2.2.3
Php всегда собирал из портов, передавая нужные параметры через CONFIGURE_ARGS+=--with-mysql и тд.
Сегодня обновил порт php. При компиляции выдал следущее:
...
checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... no
checking for MySQL UNIX socket location... /tmp/mysql.sock
checking for mysql_close in -lmysqlclient... no
checking for mysql_error in -lmysqlclient... no
configure: error: mysql configure failed. Please check config.log for more information.
...
*** Error code 1Причем обновлял на двух серверах - на первом все собралось и обновилось.
Читал много топиков c такой ошибкой, но ответа не нашел.Сталкивался ли ктонибудь с такой проблемой?
В config.log нашел вот что:
configure:75485: checking for mysql_close in -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
...
configure:75755: checking for mysql_error in -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
configure: error: mysql configure failed.Сервер рабочий - экспериментов проводить не могу..
Подскажите, что может быть причиной?
С уважением,
Баженов Андрей
На 100% не могу сказать, что именно так, но советую удалить предыдущую версию PHP и потом ставить новую.
>На 100% не могу сказать, что именно так, но советую удалить предыдущую
>версию PHP и потом ставить новую.Исключено. Как уже говорил - сервер рабочий. Перерыв работы - максимум на 5-10 минут. А где гарантии что при удалении старой версии, новая все-таки корректно соберется?
в config.log вот такая строчка:configure:75785: cc -o conftest -I/usr/local/include -O2 -fno-strict-aliasing -pipe -R/usr/local/lib -L/usr/local/lib -licon
v -L/usr/local/lib -R/usr/local/lib -L/usr/local/lib -R/usr -L/usr conftest.c -lmysqlclient -lz -liconv -lssl -lcrypto -lz -
lssl -lcrypto -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm >&5
/usr/bin/ld: cannot find -lmysqlclientПочему он пытается искать эту библиотеку в /usr/local/lib, хотя должен в /usr/local/lib/mysql? Скопировал эту библиотеку в /usr/local/lib - php собрался.
Напрямую пытался собирать с --with-mysql=/usr/local/lib/mysql. Выводит:
configure: error: Cannot find libmysqlclient under /usr/local/lib/mysql.
Note that the MySQL client library is not bundled anymore!1) Почему не находит одну и туже библиотеку, если путь указывать вручную?
2) Если собрать с нестандартным расположением библиотеки mysql - будут ли проблемы в работе?С уважением,
Баженов Андрей
А ты не скопируй, а залинкуй, тогда не будет проблем точно. Вообще, это только библиотека, поэтому не должно быть пролем хоть так, хоть так, хотя я не программер и не уверен точно. Теоретически - проблем не должно быть.
>в config.log вот такая строчка:
>
>configure:75785: cc -o conftest -I/usr/local/include -O2 -fno-strict-aliasing -pipe -R/usr/local/lib -L/usr/local/lib
>-licon
>v -L/usr/local/lib -R/usr/local/lib -L/usr/local/lib -R/usr -L/usr conftest.c -lmysqlclient -lz -liconv
>-lssl -lcrypto -lz -
>lssl -lcrypto -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm >&5
>/usr/bin/ld: cannot find -lmysqlclient
>
>Почему он пытается искать эту библиотеку в /usr/local/lib, хотя должен в /usr/local/lib/mysql?
>Скопировал эту библиотеку в /usr/local/lib - php собрался.
>Напрямую пытался собирать с --with-mysql=/usr/local/lib/mysql. Выводит:
>configure: error: Cannot find libmysqlclient under /usr/local/lib/mysql.
>Note that the MySQL client library is not bundled anymore!
>
>1) Почему не находит одну и туже библиотеку, если путь указывать вручную?
>./configure --help
>2) Если собрать с нестандартным расположением библиотеки mysql - будут ли проблемы
>в работе?
>
>С уважением,
>Баженов Андрей
>./configure --help
--with-mysql=DIR Include MySQL support. DIR is the MySQL base directoryК чему ваш комментарий? Я 5 последних версий собирал с одними и теми же опциями и все было в порядке. Или при вызове замечательной опции --help программа скажет откуда у меня руки растут? Повторюсь - на втором сервере все собралось идеально.
>Почему он пытается искать эту библиотеку в /usr/local/lib, хотя должен в /usr/local/lib/mysql?
>Скопировал эту библиотеку в /usr/local/lib - php собрался.
>Напрямую пытался собирать с --with-mysql=/usr/local/lib/mysql. Выводит:
>configure: error: Cannot find libmysqlclient under /usr/local/lib/mysql.
>Note that the MySQL client library is not bundled anymore!
./configure --help
см. что-то типа "--mysql-lib"
+см. где-что у Вас лежит на одном сервере, и где на другом (я о mysql)
дайте там и там:
mysql_config
> в config.log вот такая строчка:
> configure:75785: cc -o conftest -I/usr/local/include -O2 -fno-strict-aliasing -pipe
> -R/usr/local/lib -L/usr/local/lib -licon
> v -L/usr/local/lib -R/usr/local/lib -L/usr/local/lib -R/usr -L/usr conftest.c -lmysqlclient
> -lz -liconv -lssl -lcrypto -lz -
> lssl -lcrypto -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm
> >&5
> /usr/bin/ld: cannot find -lmysqlclientМне помогло добавить --with-libdir=lib64 причем именно так, если указать полный путь /usr/lib64 то судя по логам линкуется неверно