よくあるインストール時の問題
インストール時によくある問題を、ここでまとめてみました。
MySQLの文字キャラクターの設定
インストール時に以下のエラーメッセージが表示される場合があります。
mysql error: [1062: Duplicate entry '???' for key 2] in EXECUTE("insert into Groups (gName, gDescription) values ('管理者', '')")
これは、MySQLの「Collation(接続照合順序)」というデータベースの文字コードの設定が間違っているために起こる問題です。「インストール準備」のページを参考に、MySQLのデータベースの文字コードを「utf8-general-ci」に設定し直して下さい。
また、既に、データベースにいくつかのテーブルがインストールされてしまっていますので、phpMyAdminを使用して、既に作られているテーブルを削除(Drop)する必要があります。
*既に「UTF-8」に設定しているのにエラーが出るユーザー様:
1. 設定が行き渡っていない可能性
特にデフォルトで、接続照合順序の設定がUTF-8以外のサーバーの場合、設定を変更したつもりでも、なぜか、最初のインストール時では設定の変更が行き渡っておらず、上記のエラーが表示されるという問題が確認されています。
この場合は、データベースを再び空にして、インストールを再実行すれば解消する場合がほとんどです。
2. php.ini もしくは .htaccess の設定がされていない可能性
くわしくは、「インストール準備」の「7. php.ini、もしくは.htaccess を作成」をごらんください。
空のテーブルが必要です
インストール時に以下のエラー文が表示される方
このデータベースにはxx個のテーブルが存在しています。データベースは空でないとインストール出来ません
concrete5のインストールには、空のデータベーステーブルが必要になります。
バージョン5.3.3現在、concrete5には、データベースに接頭語 (Prefix) を追加する機能がございません。詳しくは、このページ下部をご覧下さい。
データベースが1つしか作成を許されていないレンタルサーバーをお使いの皆様には申し訳ありませんが、
- phpMyAdminを使用し、既存のデータベースをエクスポート
- データベースを削除
- concrete5をインストール
- バックアップしたテーブルを再インポート
手順を踏んで下さる事をお願い致します。また、お使いのphpMyAdminで、エクスポート・インポートが許可されている必要がございます。
PHPモジュールモードとCGIモードが混在している場合
以下のようなエラーメッセージが表示される方。
Warning: copy() [function.copy]: SAFE MODE Restriction in effect. The script whose uid is 10088 is not allowed to access...........
(この後jpgファイルが書き込めないなどの英語のエラーメッセージが表示されます)
concrete5はPHPのセーフモードをOffにする必要があります。しかし、レンタルサーバーの中では、PHPモジュールモードはセーフモードで、そしてPHP・CGIモードではセーフモードOffの状態で走るような混同した環境のものがあります。その環境下では、事前チェックでは問題ないのに、インストール時はセーフモードとして動作してしまうためにエラーが発生します。
その回避策として、php.iniというテキストファイルを作成し
cgi.fix_pathinfo = 0
の一文を加えて保存。サーバーのルートに保存して下さい。(サーバーによっては「1」であったり、「php5.ini」と保存させる必要があります。)また、上記の文章を加えてもうまく行かない場合、
session.use_cookies = On
session.use_trans_sid = Off
を、php.iniに追加。そして、「.htaccess」というテキストファイルを作成し、
AddHandler application/x-httpd-phpcgi .php
の1行を加えてサーバー上のconcrete5がインストールされるディレクトリににアップロードしてみて下さい。
.htaccess で mbstring の設定を行う
php.ini settings: Please disable mbstring.encoding_translation or set mbstring.http_input to "pass"
というエラーが出た場合、解決方法は2つあります。お使いのサーバーの設定によって可能な方法が変わってきます。
php.ini の設定を加える方法
テキストファイル「php.ini」を作成し下記の2行を追加。所定の場所に設置してください。
mbstring.translation = off
mbstring.http_input = pas
.htaccess に加える方法
.htaccess テキストファイルを作成し、下記の2行を加えてください。
php_value mbstring.translation off
php_value mbstring.http_input pass
そして、concrete5 がインストールしてある場所にアップロードしてください。
.htaccessでPHP5に設定する
お使いのサーバーで、php5をサポートしていたとしても、以下のエラーが発生する場合があります。
Concrete5 requires PHP5
これは、PHPのバージョン4とバージョン5が混同していて、使用する優先PHPのバージョンが4になっているためです。
「.htaccess」という名前のテキストファイルを作成し、以下の一行をテキストファイルの一番最初に貼付けして下さい。
AddHandler php5-script .php
そして、concrete5がインストールしてあるディレクトリーにアップロード。エラーがなくなるはずです。
日本語パッケージを使用しているのに、日本語が全く表示されない
これは、お使いのサーバーに、concrete5が日本語に変換するために使用しているgettextというモジュールがインストールされていないためである可能性が高いです。
お使いのレンタルホスティング会社様に、サーバーへのgettextのインストールをお願いしてください。
○ 日本語が表示されるが入力が出来ない。通知メールが文字化けする
concrete5 サイトで日本語が表示されるが、日本語を入力してもその日本語がきちんと保存されないという問題が発生しております。
これは、お使いのサーバーの設定が、きちんと行われていない為に発生する問題だと思われます。
「インストール準備」ページ中の「7. php.ini、もしくは.htaccess を作成」の設定をきちんと行っているかの確認をして下さい。
また上記の設定を行っても、日本語入力が反映されていない場合は、お使いのサーバーの設定に問題があると思われます。当サイトの「使用条件」のページをサーバー管理者に報告し、サーバーの設定を変えてもらうようにして下さい。
○ concrete5 はMySQLデータベースの接頭語 (prefix) の使用ができません
concrete5 では、他のCMSで良く見られる、データベースに接頭語(prefix)を設定し、1つのデータベース内にいくつものCMSをインストール出来る様にする処置は行っておりませんし、今後もサポートする予定がないとの事です。
開発元、PortlandLabs. の意向として、
データベースは本来、1つのデータベースに1つのソフトウエアをインストールして使うことが本望であり、接頭語を許可すると、いくつもの CMS をインストールすることができる様になる。
1つのデータベースにデータの格納を無期限に許可してしまう = サーバーの動作が重くなる可能性がある。
信頼性の向上を考えて、あえて、MySQLのテーブルに接頭語をつけることができるような機能を付け加える事は予定にない
ということです。
しかし、 concrete5 は改変自由なオープンソースですので、ご自分で接頭語がつけられるようにされるのは一向に構いません。
開発元の開発方針に従い、開発元が方針を変えない限り、MySQLに接頭語をつけられる様にする事は考えていない事をご了承下さい。