PHP и MySQL на разных серверах

MaxiStyle

Новичок
покажи кстати еще configure для случая mysql+gd
что-то я не понял что тебе требуется...

я установил mysql (но не запустил), установил с ним php. Но при обращении к функции mysql_connect (в параметрах удаленный сервер, а не локальный), вылазит ошибка, что mysql.sock не найден, после запуска mysql все работает.



установил (с mysql.com)
MySQL-devel-community-5.0.67-0.rhel3.i386.rpm
и
MySQL-shared-community-5.0.67-0.rhel3.i386.rpm
в итоге php скомпилировался с параметром --with-mysql=/usr

я уже начал радоваться, когда функция mysql_connect опять начала требовать mysql.sock....
 

x-yuri

Новичок
когда ты запускаешь buildconf, генерируется скрипт configure, с помощью configure ты выбираешь нужную комбинацию и создаешь Makefile, а спомощью make ты компилируешь проект
так вот мне нужен твой сгенерированный скрипт configure
 

x-yuri

Новичок
ну что ж, gd и mysqli действительно конфликтуют. Т.к. configure - один большой скрипт, в нем возможны совпадения названий переменных. Так и произошло, gd и mysqli используют переменную extra_sources. Хотя другие расширения добавляют к этому делу префикс, это двое видимо к этому еще не пришли. Решение - изменить название переменной для одного из расширений в соответствующем файле .m4. Когда переменная присваивается это выглядит так
extra_source=...
когда используется ее значение
...$extra_source...

-~{}~ 14.01.09 08:47:

это должно решить конфликт между gd и mysqli. Но не факт, что это решит твою основную проблему. Может обычно используют другие ключи к configure, раз эта проблема до сих пор не была исправлена
 

MaxiStyle

Новичок
И так:

Отредактировал файл /ext/mysqli/confi9.m4 (/ext/mysqli/ скачан с http://dev.mysql.com/get/Downloads/Connector-PHP-mysqlnd/php-mysqlnd-5.0.1-beta.tar.gz/from/pick):
заменил все переменные extra_sources на extra_sources_
в итоге ./configure --with-gd --with-mysqli --enable-mysqlnd нормально сконфигурировался и make прошел без ошибок!! Но рано радовался я. С параметрами
./configure --prefix=/usr/local/lib/php/KC --with-apxs2=/usr/local/apache/KC/bin/apxs --with-config-file-path=/usr/local/lib/php/KC --enable-sigchild --with-kerberos --with-zlib --enable-calendar --enable-dba --enable-dbase --enable-ftp --with-ttf --with-freetype-dir --enable-gd-native-ttf --with-oci8=/home/oracle/10.2.01 --enable-sockets --disable-xml --without-pear --enable-shared --enable-static --with-gd --with-jpeg-dir --with-png-dir --with-ldap --with-mime-magic --with-mssql --enable-mbstring --with-openssl=/usr/local/ssl --with-mysqli --enable-mysqlnd

make выдал ошибку: php-5.2.8/ext/mysqli/mysqlnd/mysqlnd.h:121: error: syntax error before numeric constant


Однако я все же нашел решение:
http://lists.mysql.com/php/87
http://blog.ulf-wendel.de/?p=174
http://blog.ulf-wendel.de/?p=147

Судя по этим статьям mysqlnd не приспособлен к php 5.2.
Автор предлагает пропатчить php 5.2 используя файлы из 5.3, однако это тоже не прокатило.

В итоге я плюнул на все и поставил php 5.3. В нем недо ничего патчить/исправлять, просто конфигурирум с параметрами --with-mysql=mysqlnd --with-mysqli=mysqlnd и все!
 

x-yuri

Новичок
кстати, это был конфликт между пропатченным mysqli и gd (т.к. mysqlnd сейчас представляет лишь патч к mysqli), а то я подумал, что это конфликт между оригинальным mysqi и gd
и еще, этот конфликт был устранен 2007-03-26, ты ж говорил, что пробовал с версией из svn

-~{}~ 15.01.09 05:57:

в общем этот конфликт был исправлен в день последнего релиза, просто немного позже))))
 

MaxiStyle

Новичок
x-yuri:
с оригинальными mysqli и mysql не ставится mysqlnd

с версий из svn (от 2007/11/06) тоже ошибка была, только другая (
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c:237: warning: initialization discards qualifiers from pointer target type
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c:242: warning: initialization discards qualifiers from pointer target type
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c: In function `zif_mysql_db_query':
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c:1465: error: `E_DEPRECATED' undeclared (first use in this function)
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c:1465: error: (Each undeclared identifier is reported only once
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c:1465: error: for each function it appears in.)
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c: In function `zif_mysql_escape_string':
/home/max/INSTALL/php-5.2.8/ext/mysql/php_mysql.c:1765: error: `E_DEPRECATED' undeclared (first use in this function)
make: *** [ext/mysql/php_mysql.lo] Error 1
).

Подозреваю что дело здесь еще и в версии php (я пользовался 2.2.8)
 

x-yuri

Новичок
с оригинальными mysqli и mysql не ставится mysqlnd
я говорил о возникновении конретной ошибки (из твоего первого поста)

Подозреваю что дело здесь еще и в версии php (я пользовался 2.2.8)
да, судя из твоих ссылок, mysqlnd ориентирован на php >= 5.3 и лучше всего с этими версиями php его и использовать
 
Сверху