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 <code>$wpdb->options</code> (<code>option_name</code>, <code>option_value</code>, <code>autoload</code>) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE <code>option_name</code> = VALUES(<code>option_name</code>), <code>option_value</code> = VALUES(<code>option_value</code>), <code>autoload</code> = VALUES(<code>autoload</code>)", $option, $value, $autoload ) );
を↓に変更
if ($wpdb->get_row($wpdb->prepare("SELECT * FROM <code>$wpdb->options</code> WHERE <code>option_name</code> = %s", $option))) { $result = $wpdb->query( $wpdb->prepare( "UPDATE <code>$wpdb->options</code> SET <code>option_value</code> = %s, <code>autoload</code> = %s WHERE <code>option_name</code> = %s", $value, $autoload, $option ) ); } else { $result = $wpdb->query( $wpdb->prepare( "INSERT INTO <code>$wpdb->options</code> (<code>option_name</code>, <code>option_value</code>, <code>autoload</code>) VALUES (%s, %s, %s)", $option, $value, $autoload ) ); }
以上で無事インストールできました。
Wordpress3.0以降の機能である、マルチサイトも動きました。
かなり無理くりやっているので自己責任でお願いします。