PHP4.4.9 make時にmysql_create_db mysql_drop_dbエラー
- 2008.12.31
- PHP
MySQL 4.0 を指定してPHP 4.4.9をmakeしたときにエラーが発生した。
/usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1164: undefined reference to `mysql_create_db’
/usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1206: undefined reference to `mysql_drop_db’
■環境
PHP 4.4.9
MySQL 4.0.20
■configureの設定
$ ./configure --with-mysql=/usr/local/mysql4 --with-mysql-sock=/tmp/mysql4.sock
複数のMySQLを利用しているので、ディレクトリとソケットを指定した。
■make時のエラー
$ make (省略) /usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1164: undefined reference to `mysql_create_db' /usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1206: undefined reference to `mysql_drop_db'
■php_mysql.cを修正する
エラーが発生しているphp_mysql.cファイルを修正する。
1164行目のちょっと後ろの、PHP_FUNCTION(mysql_drop_db){} をコメントアウトして無効にする。
/* PHP_FUNCTION(mysql_drop_db) { zval **db, **mysql_link; int id; php_mysql_conn *mysql; switch(ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &db)==FAILURE) { RETURN_FALSE; } id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 2: if (zend_get_parameters_ex(2, &db, &mysql_link)==FAILURE) { RETURN_FALSE; } id = -1; break; default: WRONG_PARAM_COUNT; break; } php_error_docref(NULL TSRMLS_CC, E_NOTICE, "This function is deprecated, please use mysql_query() to issue a SQL DROP DATABASE statement instead."); ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", le_link, le_plink); convert_to_string_ex(db); if (mysql_drop_db(&mysql->conn, Z_STRVAL_PP(db))==0) { RETURN_TRUE; } else { RETURN_FALSE; } } */
■再度makeを実行してインストールする
$ make # make install
参考ページ
先人の知恵に感謝の気持ちを込めて…。
http://www.databasebank.com/programmers/frm_detail.php?v_id=1393
http://takesita.seesaa.net/article/28878527.html
http://www.furuken.net/blog/item/125
-
前の記事
SugarCRM コミュニティエディションをSolarisにインストール 2008.12.09
-
次の記事
ZABBIXのインストール-1 サーバ編(SQLite) 2008.12.31