WordPress3.0をmysql4.0にインストールした。
WordPressはver2.8までしか、mysql4.0にインストールできません。
なのに、仕事でどうしてもWordPress3.0をmysql4.0にインストールせねばならなくなったので、そのときの備忘です。備忘といいつつも二度としたくないのですが…。
作業の際に↓の記事を参考にしました。今記事はこちらの補足です。
WordPress3.0をmysql4.0で使う « アルファブレンド プログラミングチップス
【1】wp-admin/install.php
$mysql_compat = version_compare( $mysql_version, $required_mysql_version, '>=' ) || file_exists( WP_CONTENT_DIR . '/db.php' );
を↓に変更
$mysql_compat = true;
【2】wp-includes/wp-db.php
function check_database_version() { global $wp_version, $required_mysql_version; // Make sure the server has the required MySQL version if ( version_compare($this->db_version(), $required_mysql_version, '<') ) return new WP_Error('database_version', sprintf( __( '<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher' ), $wp_version, $required_mysql_version )); }
を↓に変更
function check_database_version() { return; }
【3】wp-admin/includes/schema.php
if ( ! empty($wpdb->charset) ) $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; if ( ! empty($wpdb->collate) ) $charset_collate .= " COLLATE $wpdb->collate";
を↓に変更
if ( ! empty($wpdb->charset) ) $charset_collate = ''; if ( ! empty($wpdb->collate) ) $charset_collate = '';
【4】wp-includes/functions.php
$result = $wpdb->query( $wpdb->prepare( "INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)", $option, $value, $autoload ) );
を↓に変更
if ($wpdb->get_row($wpdb->prepare("SELECT * FROM `$wpdb->options` WHERE `option_name` = %s", $option))) { $result = $wpdb->query( $wpdb->prepare( "UPDATE `$wpdb->options` SET `option_value` = %s, `autoload` = %s WHERE `option_name` = %s", $value, $autoload, $option ) ); } else { $result = $wpdb->query( $wpdb->prepare( "INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s)", $option, $value, $autoload ) ); }
以上で無事インストールできました。
Wordpress3.0以降の機能である、マルチサイトも動きました。
かなり無理くりやっているので自己責任でお願いします。