InstallPost14
提供: GeeklogJpWiki
FAQ( インストール前|インストール時|インストール後|構築時|運営時|Tips|その他)
インストール後のFAQ
Q.トップにエラーメッセージが表示
サイトのセットアップは成功しましたが,トップに次のようなエラーメッセージが表示されます。
Warning: fopen("/some/path/logs/error.log", "a") - Permission denied in /some/path/public_html/lib-common.php on line 1440
※(行番号は変わる場合があります。)
<回答>
ログのディレクトリとその中のファイルのパーミッションを,少なくとも775に設定していることを確認してください。775が作動していない場合は777に設定する必要があるかもしれません。public_html/backend ディレクトリと geeklog.rss ファイルも同じ 775か 777の許可を持たせてください。
Tip:すべてのパーミッションを正しく設定したら,スクリプト http://yourgeeklogsite/admin/install/check.php を使ってテストしてください。
Q.ログインかログアウトするたびにエラー
Cannot add header information - headers already sent by (output started at /usr###/home/<userid>/public_html/geeklog/config.php:589) in /usr###/home/<userid>/public_html/geeklog/system/lib-sessions.php on line 133
(行番号は変わる場合があります。)
<回答>
ファイルの最後,「?>」で終わった後,config.phpファイルに“文字”がないか確認してください。スペースや改行も入れないでください。
まだトラブルがある場合は,以下のことをしてください。
- http://www.geeklog.jp/ または http://www.geeklog.net/ へ行って,サポートの項をチェックしてください。サポートにはFAQと検索システム,サポート掲示板があります。(エラーメッセージで,キーワード検索してみてください。)
- http://lists.geeklog.net/pipermail/geeklog-users/ の英語メーリングリスト・アーカイブスに行ってください。メーリングリストに書き込むこともできますし,Geeklogコミュニティーに質問を送ることもできます。
- 英語サイト irc.freenode.net, channel #geeklog でチャットルームを試してください。 config.php とlib-common.php のパス情報が簡単に入手できます。
- Googleサイトでエラーメッセージのテキストを入力してみてください。同じトラブルを解決した人が見つかることがあります。特定のエラーを時々検索すると,同じエラーが発生しているページがGoogleで検索されます。
Q.ログインできない
ログインしても,画面が変わりません。
<回答>
典型的なログイン時の問題は,「オンライン中のユーザー」ブロックに自分のユーザー名は表示されるが,ユーザー設定(管理者の場合は管理オプション)の代わりにログイン画面が表示されるというものです。
最初に背景情報を述べます。ログインする時,つまり,有効なユーザー名とパスワードを入力する時, Geeklog はセッションを作成します。「オンライン中のユーザー」ブロックに表示されるのはその時点で有効なセッションだけです。この問題が発生した人ならわかりますが,表示される情報はログインユーザーと同じとは限りません。いったんセッションが作成されると, Geeklog はセッション ID を含むクッキーを送出します。その後 Geeklog はそのクッキーを読み出し,データベースに保存したセッション ID と比較しようとします。両者が一致してはじめて,ログインしていると見なされます。
したがって,ほとんどの場合,問題はクッキーにあります。よくある原因は次のようなものです。
- ブラウザがクッキーを受け入れない設定になっている。単に,ブラウザの設定の問題であることが多いです。インターネットエクスプローラでは,該当サイトに対するセキュリティを少し下げる必要もあるでしょう。
- クッキーをすべて削除してください。
- config.phpのsite_url, cookiedomainの設定が間違っている場合があります。確認してください。
$_CONF['site_url'] = 'http://www.☆ドメイン'; // 最後のスラッシュ(/)は不要
- プロクシーや(パーソナル)ファイヤウォールがクッキーをフィルタリングしている。
- フレーム転送や該当サイトの本当の URL を「隠す」手段を用いている。しかしながら,ブラウザは本当のドメインからのクッキーしか受け入れません。このような場合は, config.ini 中の $_CONF['cookiedomain'] 変数がブラウザの URL欄に表示されるドメインではなく,本当のドメインを指すようにする必要があります。
- 1 つのドメインで複数の Geeklog を運用している場合(複数のサブドメインやサブフォルダで), $_CONF['cookiedomain'] を設定することで解決する場合があります。
- config.php や lib-common.php の最後にホワイトスペース(スペースやタブ)が含まれていると,ログインできなくなります。ホワイトスペースが実際にブラウザに送信され,しかもクッキーよりも先に送信されるからです。しかしながら,この動作は HTTP では許されておらず,ブラウザはクッキーを受け入れません。これらのファイルの最後にホワイトスペースが含まれていないか確認してください。
- 「ホワイトスペース問題」が起こった時には,警告メッセージが一瞬表示されるはずです。しかしながら,回線速度が速い場合には気づきにくく,そもそも PHP が警告を表示しないよう設定されている可能性もあります。
- サイトで PHP 5 を使っているなら, php.ini で register_long_arrays = On と設定してあるか確認してください。
Q.Geeklog サイトの移転方法は?
<回答>
遅かれ早かれ,ホスティングサービス会社を変えるなどの理由で,Geeklog のサイトを他のサーバーへと移動させなくてはならないような問題に直面するでしょう。移行をうまく行うコツをいくつか示します。
- 旧サーバーでデータベースのバックアップを作成します。
- images/articles ディレクトリにある記事の画像と images/userphoto ディレクトリのユーザ写真のバックアップを作成します。
- 参考用に config.php のバックアップを作成します。
- テーマのバックアップを作成します。
新サイトでは(アップグレードではなく)新規インストールすることをお勧めします。最新バージョンを使っているのでなければ,サイトを移動するのはアップグレードを行う絶好の機会です。(旧サイトの Geeklog バージョンテスト(GL Version Test)のリンクを使って,最新バージョンを使っているか確認してください)。
新サーバーでのインストールが終わり,Geeklog が動き始めたら,データベースを削除して新たに空のデータベースを作成し,旧サイトのバックアップファイルからデータベースをインポートできます。
新サーバーのセットアップ方法:
- (静的ページプラグイン以外の)プラグインをインストールしていたら,そのファイルも新サーバーにアップロードします(でも,まだ,プラグインのインストール用スクリプトを実行しないでください)。
- 記事の画像とユーザー写真を新たなディレクトリにアップロードします。
- この過程で Geeklog のアップグレードを行っているなら,まだ,テーマをアップロードしないでください。Geeklog の新バージョンではテーマの変更が行われているのが普通なので,移設したサイトがきちんと動いているのが確認できるまでは,同梱されているデフォルトのテーマを使う方がよいでしょう。
- Geeklog のアップグレードを行うなら,アップグレードモードでインストール用スクリプトを実行してください。
- プラグインをアップグレードしている場合,必要なら,アップグレード用のスクリプトを実行してください(必要かどうかはプラグイン付属のドキュメントを参考にしてください)。
- 全てきちんと動作しているか確認します。たとえば,記事の編集ができるか確認してください。
- 必要なら,テーマを更新します。
よくある問題
サイトの URL が変わった場合,記事用にアップロードされた画像の URL は旧サイトの URL のままです。残念ながら,まだ,簡単な解決策はないので,(phpMyAdmin を使い)データベースに記録されている画像の URL を直接編集する必要があります。現時点でこれはバグであり,将来のバージョンでは対処されるでしょう。
Q.Geeklog1.4.1 文字化け
以下の条件で文字化けします。
- PHP Version 5.1.5
- MySQL 5.1.11-beta
- MySQL の文字セット: UTF-8 Unicode
<回答>
config.php
$_CONF['default_charset'] = 'iso-8859-1'; を $_CONF['default_charset'] = 'utf-8'; に変更します.
system/databases/mysql.class.phpの145行目を コメントアウト。 // @mysql_query ("SET NAMES 'utf8'", ・・・
以上で再度インストールしなおしてください.
また,次のファイルの文字コードを確認してください.
- config.phpの文字コード
- テンプレートの文字コード
- 言語ファイルの文字コード
- ログインユーザの言語設定がjapanese_utf-8になっているか
- 前回アクセスした時に言語設定がjapaneseだったとか
- CUSTOMフォルダ以下のプログラムの文字コード
- スタイルシートの文字コード
Q.Geeklog1.4.0 日本語の記事で文字化け
MySQLのバージョン5.0以上でUTFでインストールしたのですが,初期に作成される日本語の記事が文字化けしたり,画面より入力する記事が文字化けしています。
<回答>
一旦データベースを削除し,lib-database.phpの最後に次の1行を追加して再度インストールしてください。 DB_query ("SET NAMES 'utf8'" );
他,MACでのみフォームの入力が文字化けする場合は,スタイルシートのfont-family に日本語のフォントが追加されていない場合が考えられます。 スタイルシートファイル毎にすべてエンコードを指定し,さらにfont-familyに日本語フォントを追加しておきましょう。 ブラウザによってはtableへ,スタイルが受け継がれない場合がありますのでtableにも設定します。 Geeklog Japanese提供テーマのprofessionalや,IvySOHOを参考にしてください。
例) body {
font-family:'ヒラギノ角ゴ Pro W3','MS Pゴシック',Osaka,sans-serif,宋体,SimSun,'MS Song','MS Mincho',serif;
} table {
font-family:'ヒラギノ角ゴ Pro W3', 'MS Pゴシック', Osaka, sans-serif,宋体,SimSun,'MS Song','MS Mincho',serif;
}
その他、本体やプラグインの言語ファイルのエンコードが違うと文字化けします。
Q.トラブル解決のコツは?
<回答>
エラーメッセージを注意深く読む
どんなエラーメッセージが表されたにせよ,少し時間を取って注意深く読んでください。たいてい,何が問題だったのか,あるいは少なくともどんな問題の可能性があるのかヒントが得られるでしょう。
エラーメッセージの代わりに,画面に何も表示されない場合は,FAQ の「<a href="./index.php?op=view&t=54">何も表示されません</a>」を最初にご覧ください。
必ず最初のエラーから手をつける
複数のエラーメッセージが表示される場合,必ず最初のエラーメッセージから手をつけてください。その問題を解決したら,もう一度(エラーの原因となった操作を)試してください。最初に表示されたエラーが解決した場合,続くエラーメッセージも消えることがよくあります。
ファイルのパーミッションとデータベースのパーミッション
よくある問題の原因はファイルとディレクトリのパーミッションが不適切であることです。でも,エラーメッセージに表示されるパーミッションの問題がみな,ファイルのパーミッション関係とは限りません。 MySQL のデータベースにもパーミッションがあります(ファイルのパーミッションとは無関係です)。だから,注意深くエラーメッセージを読んで,どちらのパーミッションなのか確かめてください。
ファイルのパーミッションについては,インストールマニュアルをご覧ください。データベースのパーミッションについては,FAQ の「<a href="./index.php?op=view&t=44"></a>」をご覧ください。
手順を再現する
問題が起こった時には,少しの間,1 歩下がって自分が今したことを考えてください。直前に行った手順と表示されたエラーメッセージを関連づけてください。たいていの場合,両者は直接関連しているので,問題の原因を突き止めやすくなるはずです。
提供されている情報を活用する
よくある問題の多くは FAQ で取り上げられています。インストール時の問題は,インストールマニュアルのよくあるインストール時の問題の項目をご覧ください。
エラーメッセージを探す
何が問題なのか理解できない場合は,表示されるエラーメッセージを探してみてください。エラーメッセージの該当部分をコピー&ペーストしてください。 Geeklog のバージョンによって違うので,行番号とファイル名は含めないでください。以前他の人が同じ問題に遭遇して,掲示板に投稿しているかもしれません。
できるだけ多くの情報を提供する
助けが必要なら,掲示板に気軽に投稿してください。でも,できるだけ多くの情報を出して,手助けしやすくしてください。
Q.URLリライトが機能しない
記事のタイトルや全文表示リンクをクリックするとエラーになってページを表示できません。
<回答>
- URLリライトは Microsoft IIS では動作しません。
- URLリライトのモードを,コンフィギュレーションエディタまたはconfig.phpで確認します。
- インストールされている PHP や Geeklog のディレクトリに対して safe_mode が on になっている場合, "AcceptPathInfo On" のような設定を Web サーバーの設定ファイルに追加する必要があります。Web サーバー(apache)のドキュメントをご覧ください。
- URLリライトがONで,URLリライトが正常に動作しないのであれば,URLリライト機能をOFFに設定します。config.php を修正する場合は URLリライトの値,$_CONF['url_rewrite'] をfalseに設定してください。
SAKURA Internetでは,次の対策で機能するようになります。
- php.iniに以下の一行を追加
cgi.fix_pathinfo=1
- Geeklog1.41BETAのsystem/classes/url.class.phpに差し替え
ダウンロード http://www.geeklog.net
Q.パースエラー(Parse error in ...)
<回答>
パースエラーが起こる場合,タイプミスを示唆していることが多いです。エラーメッセージが出たファイルの該当行(実際のエラーその前の行かもしれません)を確認してください。
よくある問題としては,
- パス名をシングルクォートできちんと囲っていない
- 行末のセミコロンを忘れた
- 文字列中でシングルクォートを使った(たとえば Joe's Site は,余分な引用符をエスケープして Joe\'s Site と書く必要があります)
lib-common.php の破損でも発生します。
Q.ページに何も表示されない
ページに何も表示されません。
<回答>
Geeklog で制作したページを訪問して,何も表示されない場合,エラーが発生しているが PHP がエラーを表示しないよう設定されていることが多いです。
php.ini にアクセスできるなら,次のように設定してください。
error_reporting = E_ALL display_errors = on
php.ini の設定を変えた後で,忘れずに Web サーバーを再起動してください。
php.ini にアクセスできない場合(共有ホスティングサービスではよくあります),次のことを試してください。
- lib-common.php を開いて,次の行を探します。
error_reporting( E_ERROR | E_WARNING | E_PARSE | E_COMPILE_ERROR );
- その行の後に次のように追加してください: ini_set ('display_errors', '1');
- 何も表示されないページを訪問してください。今度はエラーメッセージが表示されるはずです。
それでも何も表示されない場合や「 ini_set は使えません」というエラーメッセージが表示される場合,契約しているホスティングサービス会社に助けを求めなければならないでしょう。
Web サーバーのエラーログファイルにアクセスできるなら(Apache の場合は error_log),その中にもエラーメッセージがあるかもしれません。
FCKeditor と Firefox 1.0.x
ページが表示されなくなる全く別の問題は, Geeklog の advanced editor を ON にしていて(Geeklog 1.4.0),Firefox 1.0.x を使用している場合です。 Firefox 1.5 より前の全バージョンには,(FCKeditor が使用する)ある種の Javascript を実行した後でリダイレクトが行われなくなるというバグがあります。解決策は, Firefox 1.5 以降のバージョンへアップグレードすることです。
Q.PHP Warning ファイルやディレクトリがないという警告
<回答>
次のようなエラーメッセージが表示され,名前に Array が含まれるファイルやディレクトリがないと文句を言われたら,サーバーにインストールされている Zend Optimizer をアップグレードする必要があります(あるいは,ホスティングサービス会社に作業代行を依頼してください)。
PHP Warning: main(/path/to/geeklog/plugins/Array/functions.inc): failed to open stream: No such file or directory in /path/to/geeklog/lib-common.php on line 5998 PHP Fatal error: main(): Failed opening required '/path/to/geeklog/geeklog/plugins/Array/functions.inc' (include_path='/path/to/geeklog/system/pear/:.:/usr/share/pear') in /path/to/lib-common.php on line 5998
これは Geeklog の問題ではなく, PHP 4.3.10 と Zend Optimizer(2.5.7 より前のバージョン)に互換性がないからです(PHP のバグ #31108 と #31134 を参照のこと)。
たとえば ionCube などの他の PHP オプティマイザでも同じ問題が起こる可能性があります。
Q.画像が読み込まれません
<回答>
インストールに成功したのに,サイトに画像が表示されない場合,サイトの URL が正しくありません。
config.php の $_CONF['site_url'] が Geeklog の index.php (と lib-common.php)ファイルのある場所をきちんと指しているか確認してください。
本ドキュメントの拡大バージョンの制作: Jason C. Levine レビュー: Dirk Haun, Jeffrey Schoolcraft 翻訳・追記:mystral_kk,今駒哲子
Q.投稿管理画面でエラー「Please check the security of your site before using it!」
<回答>
セキュリティ・チェックが表示されるのは,以下の項目のうち1つでも該当するものがある場合です。
- 公開領域のパス名に 'public_html' が含まれる場合。
- admin/installディレクトリを削除していない場合。
- config.php, logs/error.log, plugins/staticpages/functions.inc, system/lib-security.php のうち,1つでもWebからアクセスできるものがある場合。
- MySQLを使用し,mysqldumpを有効にしているのに,backupsディレクトリが書込不可の場合。
- dataディレクトリが書込不可の場合。
- アカウントのパスワードに 'password' を使用しているメンバーが1人でもいる場合。
Q.アップグレード成功画面は表示されるが文字化け または ~が?に置換される
<回答>
データベースの初期設定もutf8_general_ciに変更してください。各データベースのテーブルの照合順序がujis_japanese_ciであればutf8_general_ciにすべて変更してください。
一斉に変換するには,データベースを書き出して置換し,インポートするだけです。
修正方法は、phpMyAdminで
- MySQL の接続照合順序: を utf8_general_ci に変更
- DROP TABLE / VIEW / PROCEDURE / FUNCTIONを追加 ON ですべてエクスポート。
- 2のファイルの CHARSET=ujis をすべて CHARSET=utf8 に置換
- 3.をインポート
文字化けすることはなくても、~ が ? に勝手に置換されて表示される不具合も、この作業で改善します。