WordPress3.0をmysql4.0にインストールした。

Pocket

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-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO <code>$wpdb-&gt;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>)&quot;, $option, $value, $autoload ) );

を↓に変更

if ($wpdb-&gt;get_row($wpdb-&gt;prepare(&quot;SELECT * FROM <code>$wpdb-&gt;options</code> WHERE <code>option_name</code> = %s&quot;, $option))) {
	$result = $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;UPDATE <code>$wpdb-&gt;options</code> SET <code>option_value</code> = %s, <code>autoload</code> = %s WHERE <code>option_name</code> = %s&quot;, $value, $autoload, $option ) );
} else {
	$result = $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO <code>$wpdb-&gt;options</code> (<code>option_name</code>, <code>option_value</code>, <code>autoload</code>) VALUES (%s, %s, %s)&quot;, $option, $value, $autoload ) );
}

 

以上で無事インストールできました。
Wordpress3.0以降の機能である、マルチサイトも動きました。
かなり無理くりやっているので自己責任でお願いします。

 

参考:
WordPress3.0をmysql4.0で使う « アルファブレンド プログラミングチップス

この記事を書いた人:

ナカシマ

北区赤羽在住のWEBデザイナー兼エンジニア。インターネット、WordPress、本・漫画、音楽が大好き。妻と猫と暮らすアップル信者。

BLOG: 着ぐるみ追い剥ぎペンギン