
Ubuntu日本語フォーラム
ログインしていません。
初めまして、お世話になります。
初心者の板の方がよかったかもしれませんが・・・
グループウェアの機能をもつNetCommons2.1を試したくて職場の古いPCにUbubtu8.10ServerをLAMP環境でインストールし、仕事の合間(休憩時間など)にLinuxコマンドやMySQLなどを学びながら3か月ほど要してようやくNetCommonsをインストール出来たのですが、インストール直後のトップページで文字化けが起こってしまいました。
NetCommonsの公式サイトで質問したところ「Apacheの設定でAddDefaultCharsetを「Off」にしてみてください。」とのアドバイスをいただきました。
そこで、/etc/apache2の中にあるhttpd.conf(このファイルは空行でした)に[AddDefaultCharset off]と書き込み、再起動させましたが、変化がありませんでした。
こちらのフォーラムで検索したところ、「/etc/apache2/conf.d/charset AddDefaultCharset UTF-8に#を付けもした」との書き込みがあったので、同ファイルを読み込んでみたところ、すでに#でコメントアウトされ、試しにこのファイルに前記の記述を追加してみましたが、変化が現れませんでした。
そこで、質問なのですが、「Ubuntu8.10Server のApacheの設定でAddDefaultCharsetを「Off」にするにはどうやったらよいのでしょう?」
最後の編集者: akiraccho (2009-05-18 06:27:29)
オフライン
おもしろそうなので入れてみたところ、私の環境でも文字化けしてしまいました。
どうも Apache ではなくて MySQL のエンコーディングの設定がおかしい気がしたので、
EUC に設定し直して NetCommons を再インストールしたところ、正常に表示されました。
phpMyAdmin からやったのでアレですが、
ALTER DATABASE データベース名 DEFAULT CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci
でどうでしょう?
オフライン
epiiさま!
あ・・ありがとうございます。明日にでも試してみたいと思います。
それでついでに、聞いてしまってもよろしいでしょうか?
>ALTER DATABASE データベース名 DEFAULT CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci
これを、/etc/apache2の中にあるhttpd.confに書き込むことでよろしいのでしょうか?それとも他に書き込むファイルが存在するのでしょうか?
無難にphpMyAdminをいじって終了!・・・でもいいような気はしていますが、この際ですからApache2をもう少しだけ理解しておきたい気持ちもあるので・・・
よろしくお願いいたします。
オフライン
akiraccho による投稿:
>ALTER DATABASE データベース名 DEFAULT CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci
これを、/etc/apache2の中にあるhttpd.confに書き込むことでよろしいのでしょうか?それとも他に書き込むファイルが存在するのでしょうか?
えーと、説明が足りなかったようですね。これは MySQL 文なので、 MySQL に対して実行します。
MySQL が分かっているか心配なので、一応詳しく説明しておきます。
…というか phpMyAdmin からやれば簡単ですし一瞬で終わるのですが、まぁ練習だと思ってやってみてください。
① MySQL サーバへ接続
$ mysql -u root -p
Enter password: ← root のパスワードを入力して Enter (root でなくても権限のあるユーザなら誰でもいいけど)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 171
Server version: 5.0.75-0ubuntu10 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
↑という感じになったら接続完了です。
② NetCommons のアンインストール
前の設定では MySQL が日本語を扱えなかったため、 NetCommons のインストール時に MySQL に挿入されたデータ (TEXT) のうち日本語部分は「?」に置き換えられてしまっているようです(こちらの環境の場合)。
なので一度アンインストールする必要があります。
テーブルがいっぱいあって、いちいち削除するのが面倒なので、データベースごと削除しちゃいましょう。
> DROP DATABASE <<データベース名>>;
<<データベース名>>の部分は NetCommons をインストールしたデータベース名に置き換えてください(以下同様)。
また、文区切りである「;」は文末に必ず記述してください。
Query OK, 1 row affected (0.02 sec)
などと表示されたら、正常にクエリが受け付られたので成功です(これも以下同様)。
③ データベース作り直し
> CREATE DATABASE <<データベース名>>;
次に NetCommons が書き込みや読み込みができるように、権限を与えます。
> GRANT ALL PRIVILAGES ON <<データベース名>>.* TO <<NetCommons 用のユーザの名前>>;
④ 文字エンコーディングの変更
> ALTER DATABASE <<データベース名>> DEFAULT CHARACTER SET eucjpms COLLATE eucjpms_japanese_ci;
ちなみに EUC にしたのは、
http://www.netcommons.org/index.php?action=pages_view_main&page_id=61
の下から二番目が根拠です。
PHP が勝手に変換してくれるような気がするので、UTF-8 とか日本語が扱えそうなエンコーディングなら何でも OK かもしれません。
ここまでできたら、NetCommons へアクセスし、再インストールしてください。
これでキチンと表示されると思います。
オフライン
epiiさま
お世話になりました。
教えていただいたとおりに、MySQLのコマンドを1行1行打ち込んでやってみました。(Enterを押す度に反応が返ってくるのも気持ちがいいものですね。)
NetCommonsのインストーラが終了して初期画面が出た時に思わず両手をかざしてガッツポーズでした。(昼休みとはいえ、周りに同僚のいる静かな職場ですので、声をあげられなかったのが少し残念でしたが。)
これからは、イントラネット内でNetCommonsの活用方法を模索していくことになりそうです。
ありがとうございました。
オフライン
いろいろありがとうございました。
ところで、NetCommonsの公式サイトにこんな情報(↓)がありました。
http://www.netcommons.org/index.php?action=pages_view_main&page_id=60
こちらの下から2番目を見ましたら・・・どうやら漢字コードとしてはUTF8を使用するのが正解というか推奨しているようですね。
オフライン