Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2012-08-21 15:50:53

mekyo
メンバー
登録日: 2005-11-22
投稿: 80

Re: 修正案:nucleus 3.64のインストールスクリプト

現行の最新版 nucleus 3.64 では Mysql 5.5に インストールできません。
この問題は、テーブルを作るプラグインでもおきますので、注意が必要です。

エラーの原因:MySQLの仕様の変更(MySQL 5.2~)
・「TYPE=」が廃止されました。

【3.64のインストールスクリプトの修正】
You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version
for the right syntax to use near 'TYPE=MyISAM' at line 4

とインストール時に表示される場合は、install/index.phpの修正が必要です。
直接 install.sqlを置き換えてもいいです。

--- NucleusCMS_3.64_Release/install/index.php	2011-03-30 21:33:29.000000000 +0900
+++ NucleusCMS_3.64_Release/install/index.php	2012-08-20 20:45:59.734375000 +0900
@@ -656,6 +656,9 @@
 	$queries = fread($fd, filesize($filename) );
 	fclose($fd);
 
+    if (version_compare($mySqlVer, '5.1.8', '>='))
+       $queries = str_replace('TYPE=MyISAM', 'ENGINE=MyISAM', $queries);
+
 	$queries = split("(;\n|;\r)", $queries);
 
 	$aTableNames = array(

MySQL5.5.25 では、「TYPE=」は 廃止されていて エラーが出ます。

MySQL4.1, 5.1のマニュアルでは、(create tableの項)
「ENGINE=」 は MySQL 4.0.18 (for 4.0) と 4.1.2 (for 4.1)で追加されたとあります
「TYPE=」は、MySQL 5.1.8から警告を出し、MySQL 5.2.で「TYPE=」を廃止すると書かれています。

NucleusCMS_3.64のNucleus CMS マニュアルでは、
MySQL データベース (バージョン 4 以降)とあるので
NucleusCMS_3.64でも
install.sqlそのものを
nucleus 4.0のように
TYPE=MyISAM から ENGINE=MyISAMに置き換えたほうが混乱が無くていいように思います。
MySQL 4.0.18から対応しているので、置き換えても問題ないと思います。
※手持ちのバージョンでは、 MySQL 4.0.xの最終版は 4.0.27 (2006年05月)あたりです。
MySQL 4.0.30 (12 February 2007)が最終版っぽいですが、ダウンロードがないのでわかりません。

ローカル環境で
MySQL 4.0.27+PHP5.2.xで ENGINE=MyISAMにした状態で
nucleus 3.64のインストールはできました。
(php5.3,5.4では MySQL 4.0は サポート外とはじかれました)

もし ENGINE=MyISAMに置き換えて問題があるなら、
MySQLを更新していないほうが問題で、
同じバージョン内(4.1.x,4.0.x)で更新すればいいことです。

同じ原因でインストールできないプラグイン
・NP_SecurityEnforcer (パッケージ同梱版)
・NP_ExtraSkinJP 0.4.7
・NP_MultipleCategories 0.5.1j

nucleus 4.0が当面リリースされないのでしたら、
NucleusCMS_3.64_Release.zip を
TYPE=MyISAM から ENGINE=MyISAMに修正したものに
差し替えた方がいいと思います。

PHPとMySQLの最新版で動作しないのは問題だと思います。

新規ユーザーが増えないのは、比較的最新のMySQLで
コアやプラグインが
インストールできないためかもかもしれないです。

php5.4の問題もありますし
本家と相談して
修正をいれたNucleusCMS_3.65も検討した方がいいかもしれませんよ。

各共有サーバーのMySQLのバージョン
※2012-08-21 各メーカーホームページで調査
さくらのレンタルサーバー  MySQL 5.5
ロリポップ   MySQL 5.1
コアサーバー  MySQL 5.1
ハッスル     MySQL 5.0.x

関連記事(外部リンク)
・12.1.8. CREATE TABLE 構文(MySQL 5.1)
  http://dev.mysql.com/doc/refman/5.1/ja/ … table.html
・12.1.5. CREATE TABLE Syntax(MySQL 4.1)
  http://dev.mysql.com/doc/refman/4.1/en/ … table.html
関連記事(フォーラム)
・Nucleus version 3.6.4 SQLエラー
  http://japan.nucleuscms.org/bb/viewtopic.php?t=5360
・さくらサーバーでのリストア失敗
http://japan.nucleuscms.org/bb/viewtopic.php?t=5160

オフライン

Board footer