Geeklog IvySOHOプロジェクト
Geeklog Documentation

インストールの説明

新たなインストール

ニューバージョンへの
アップデート

よくあるトラブル

用語集

  • パス(path): ファイルとディレクトリがどこにあるかを記述しているサーバー上の物理的な場所。ウィンドウズでは、パスはドライブ名(c:/inetpub/wwwroot/)で始まり、 *nixではパスは (/var/www/) のようなルート(/)で始まります。
  • url: Uniform Resource Locatorのこと。Web上の特定の情報のアドレス(http://www.foo.com/)
 

インストール前のチェックリスト (新たなインストール)

初めてGeeklogをインストールする前に、以下のことを確認してください。

  1. Webサーバーが PHP 4.1.0 以上を動作させている。
  2. Webサーバーが MySQL 3.23.2 以上を動作させ、データベースへのアクセスあるいはデータベースを作成することができる。
  3. 新しいデータベースを MySQLで作成できるか、既存のデータベースにアクセスできる。
  4. telnet や SSHがあなたのWebサーバーにつながっている(FTPが作動していても)。このドキュメントは、あなたのサーバーへのコマンド・ライン・アクセスがあると仮定して書かれていますが、FTPユーザー向けに主な違いを明記します。
  5. tarball(tar.gzで終わっているファイル)を開けることができる。
  6. パスとURLの違いを知っている。
  7. システムパスの決定方法を知っている。

文法エラーに関する注意:
ユーザーの報告によると、WinZipは、解凍中にGeeklogのtarballにある一定のファイルを転換してしまい、インストール処理中にエラーを生じてしまうということです。WinZipを使わないことを強くお勧めします。ローカルでファイルを解凍しなければいけない場合は WinRAR を試すか、またもっと良い方法として、あなたのサーバーからファイルを開けてください。(telnetかSSH アクセスが必要です。)
文法エラーは、lib-common.phpをでWYSIWYGエディタの Dreamweaver等 を利用することでも生じるので秀丸などのテキストエディタをご利用ください。

インストール先のディレクトリ構造について:

基本的に、Geeklogのインストールは二つの部分で構成されています。

1)ひとつはWEBで公開される部分で、 public_html ディレクトリ内のすべてのものです。 “public_html" は、Web公開領域ディレクトリの一般的な名前です。(ほかに"htdocs" と "www" が一般的な名前です。) ですから、そのようなディレクトリがあれば、Geeklogのpublic_htmlディレクトリからあなたのWebサーバー上のディレクトリに、すべてコピーし、そのディレクトリのURLを $_CONF['path_html'](config.php)で設定します。

2)Geeklogのもうひとつの部分は、public_htmlディレクトリの外にあるものすべてで、デリケートな情報を含んでいるのでURLを介してアクセスすることはできません。あなたのサーバーエリアの、非公開領域(Webサーバーのpublic_html, hthdoc, あるいはwwwディレクトリの外部 例:'/virtual/******/private/geeklog/)にファイルやディレクトリを入れてください。それから、そのファイルやディレクトリを $_CONF['path'](再びconfig.phpで)で設定してください。

以上のインストールによって、(持っていれば)ドメインネーム (たとえばhttp://www.yourdomain.com/やURLに”public_html”を入れる必要がないもの) を介して直接Geeklogにアクセスできます。



インストールの説明 (新たなインストール)

始める前に本項をよく読んでください。

  1. あなたのシェルにある下記のものを実行して、Webツリー“内”の tarball を開けてください。(これは、あなたがsshアクセスをしたり、指定したサーバー上 ― ローカルかどこか他のホストになる ― のtarballで作業していると仮定した場合です。)

    tar -zxvf geeklog-1.3.11.tar.gz

    FTP, Windows ユーザー:あなたのローカルコンピュータのtarballを開けて、指定されたサーバーにその結果をアップロードしてください。画像を除いてすべてをテキストモードでアップロードします。
  2. *nix のインストールには以下が必要になります。

    chown -R webuser:webuser /path/to/geeklog

    これは、そのパスにあるものはすべてあなたに帰属することを保証しています。典型的な設定は、 www:www か nobody:nobody でほとんど問題になりません。
  3. *nix のインストールでは、ディレクトリの属性設定を以下のように設定してください。
    [注意]XREAでは 775ではなく、777に設定しないと動きません。 (行追加 Ivy SOHO )

    chmod -R 775 logs/
    chmod -R 666 logs/*.log (行追加 Ivy SOHO )
    chmod -R 775 data/
    chmod -R 775 public_html/backend/
    chmod -R 666 public_html/backend/geklog.rdf
      rdfファイルは、ファイルを追加するごとに、666のファイルをあらかじめサーバに用意しておく必要があります。 (行追加 Ivy SOHO )
    chmod -R 775 public_html/images/articles
    chmod -R 775 public_html/images/topics
    chmod -R 775 public_html/images/userphotos

    FTP ユーザー: FTPクライアントを通して chmod をしている場合、ディレクトリ自身と同様に logs/ と public_html/backend の中のファイルにchmodを適用しなければいけません。全部でなくてもほとんどの ftp クライアントは、再帰的にはこのコマンドを実行しません。つまり、これらの各ディレクトリの中にある各ファイルをマニュアルで設定する必要があります。

    特別注意:
    ステップ3に正しく従わないことが、Geeklogを最初に利用するときにエラーを出す一番の原因です。時間をかけて正して行ってください。また、上記の許可が777に設定されていない場合のトラブル(XREA等)が、ユーザーによって報告されています。エラーメッセージを受け取った場合は、最初に775を試して様子を見てください。

    チェックプログラムhttp://yourgeeklogsite/admin/install/check.phpを実行してください。

  4. Geeklogのデータを入れるデータベースを作成してください。空のデータベースを作成するだけで、インストールスクリプト(下を参照してください)がテーブルを作成します。

    MySQLの使用に慣れていない場合は、phpMyAdminを取得して新しいデータベースを作成するのに利用することをお勧めします。前述の2文の意味がわからないときは、システム管理者にご連絡ください。
  5. config.php を編集してください。インストールに関しては、インストールが成功した後に他のすべての変数が変更できるので、これは基本的に「あなたのパスを指定してください」という意味になります。config.php ファイルには、あなたの助けになるコメントが含まれています。

    日本語版 config.phpの修正:(IvySOHO追加)
    config.phpを以下のように編集して、サイトのエンコード(UTF推奨)でセーブします。
    (1) データベースの設定
    $_DB_host = 'localhost'; // ホストネーム
    $_DB_name = '******'; // データベース名
    $_DB_user = '******'; // MySQLユーザ名
    $_DB_pass = '******';// MySQLパスワード
    $_DB_table_prefix = 'gl_'; // 例)'gl_'
    (2) 本体ソースと公開サイトのパスの指定
    $_CONF['path'] = '/virtual/******/private/geeklog/';
    $_CONF['path_html'] = '/virtual/******/public_html/yourgeeklogsite/';
    (3) サイト設定
    $_CONF['site_url'] = 'http://yourgeeklogsite';
    $_CONF['site_admin_url'] = $_CONF['site_url'].'/admin';
    $_CONF['site_mail'] = 'admin@yourgeeklogsite';
    $_CONF['site_name'] = 'サイト名';
    $_CONF['site_slogan'] = 'サイトスローガン';
    $_CONF['have_pear'] = true; // PHP4.3.0以上の場合true
    $_CONF['path_pear'] = $_CONF['path_system'].'pear/';
    $_CONF['theme'] = 'professional'; // デフォルトテーマ
    $_CONF['allow_account_delete'] = 1; //1:アカウント削除
    $_CONF['language'] = 'japanese_utf-8'; ←UTFの場合
    $_CONF['locale'] = 'ja_JP.UTF-8';//japanese utf-8用
    $_CONF['date'] = '%Y年%B%e日(%A) %I:%M %p %Z';
    $_CONF['rdf_language'] = 'ja';


    Windowsのユーザーは、トラブルを起こすことなくあなたのパスのUnix '/' を使うことができます。または、二つのウィンドウズスラッシュ''を使う必要があります。

    config.phpのコメントを注意して読んでください。詳しくはコンフィギュレーションドキュメントをご覧ください。
  6. lib-common.phpを編集して、トップの require_once() を変更し、あなたサイトのconfig.phpファイルを参照できるよう、変更してください。

    lib_common.phpの修正:
    require_once('/virtual/***/private/geeklog/config.php' );// config.phpの絶対アドレス

  7. ブラウザーを開いて、http://yourgeeklogsite/admin/install/install.phpを実行し、画面に従ってインストールしてください。



    上の画面の「このスクリプトを使って」をクリックして、パーミッションテストを行ってください。

    >> ディレクトリのパーミッション設定は、詳しくはこちら
  8. 管理またはインストールのディレクトリを削除できます。 (その中のファイルすべても)

    削除前のメッセージ↓ 削除後のメッセージ↓   
     
  9. Geeklogサイト上の最初の記事を読んで、管理者としてログインする方法を覚えてください。設定前のアカウントすべてのデフォルトのパスワードを、すぐに変更することを忘れないでください。

トラブルに陥ったり、エラーメッセージをずっと受け取ったりしている場合は、後述のよくあるインストールトラブルの項を参照してください。



アップグレード前のチェックリスト (アップグレード)

警告:
現在のGeeklogのインストールから、カスタムコードを持っているファイル、特にlib-custom.php(すべてのカスタムコードがある)のバックアップをするように特に注意してください。あなたの現在のインストールから、修正したテーマ、画像、スタティック・ページのバックアップを必ずしてください。 また、あなたのデータベースも必ずバックアップしてください。ファイルとデータベースのバックアップの重要性は、いくら強調してもし過ぎることはありません。



アップグレードの説明 (アップグレード)

すでに存在していてアップグレードする必要があるデータベースを除いて、アップグレードと新しいインストールとの違いはありません。

  1. カスタムコードがあるファイルをバックアップして、データベースもパックアップしてください。

    注意:
    config.phpとlib-common.phpの古いファイルには、あなたが最後にGeeklogをインストールしたときに入力したデータベースとパスが含まれていて、この情報を新しいconfig.phpとlib-common.phpのファイルにコピーしなければいけないので、config.phpとlib-common.phpの古いファイルには特に注意してください。

  2. 現在のGeeklogディレクトリを、リネームするか削除するか選べます。最後に古いインストールを削除するとしても、あなたがファイルを転送するのを忘れた場合を考えて、数日間は古いコピーを保存したほうが安全です。
  3. 新しいバージョンを解凍して、その結果を古いインストールで使った同じパスにコピーしてください。たとえば、古いGeeklogが/usr/home/www/geeklog/にあったら、新しいインストールも/usr/home/www/geeklog/にします。
  4. 新たなインストールで、config.phpとlib-common.phpを編集してください。基本的にこれらのファイルの古いコピーから情報をコピーするだけです。
  5. Geeklog 1.2以前からアップグレートしている場合、/path/to/geeklog/sql/updatesに変えて、必要なデータベースのアップデートをすべて行ってください。たとえば、Geeklog1.1からアップグレードしている場合は、1.1_ を _1.2.sql へ、 1.2_ を _1.2.2.sql へ適用する必要があります。それでGeeklog 1.2.5-1 へデータベースをアップグレードすることになります。 1.2.5-1としたのは、1.2.2から1.2.5-1へのデータベースの変更がないからです。(たとえば、 1.2.2 データベースは 1.2.5-1 データベースと同じです。). MySQL コマンドラインをうまく使えない場合は、phpMyAdmin を介してもできます。

    Geeklog 1.3 以降からアップグレードしている場合は、このステップは省略できます。
  6. あなたのブラウザーを開いて、http://yourgeeklogsite/admin/install/install.phpに行ってください。Geeklogにパスを入力して、「次へ」のボタンをクリックする前に、インストールタイプにデータベースのアップグレードを選択しているか確認してください。インストールスクリプトの次のステップには、データベースを現在のバージョンに変換するオプションがあります。

    たとえば、Geeklog1.3.7と1.3.7sr2が同じデータベースを使用しているので、“ベーシック”バージョンの番号だけ列記されていることにご注意ください。Geeklog1.3.7sr2からアップグレードしている場合、“1.3.7”だけを選択してください。 (1.3.5、 1.3.5sr1、 1.3.5sr2 とすべての1.3.8バージョンは、同じようにしてください。).
  7. 一度サクセスメッセージが出れば、アップグレードは完了です。管理またはインストールのディレクトリを削除できます。(またその中のファイルすべて)



インストールのトラブル (よくあるトラブル)

注意:
先に進む前に、config.php を開いてあなたのパスを二重にチェックしてください。不良なパスやパスのタイポで、Geeklogのあらゆる種類のエラーが生じてしまいます。

エラーメッセージが出たら、注意してそれを読んでくさい。PHPに慣れていなくても、何が悪いかヒントを与えてくれます。エラーメッセージに含まれるパスに特に注意を払ってください。間違ったパスが、トラブルをよく起こす原因になります。

複数のエラーメッセージが出たら、常に最初のエラーから初めてください。他のエラーは、一度最初のエラーを修正すれば自動的になくなります。

Q.次のようなエラーが出ました。

Parse error: parse error in /path/to/your/config.php on line 76

※(行番号は変わることがあります。)

回答:

文法エラーは、通常あなたが作成したタイポにヒントがあります。所定の行のファイルをチェックしてください。(実際のエラーは、エラーメッセージに記述されたエラーの前の行にある場合があります。)

よくあるトラブルは:

  • ひとつの引用符に適切にパスが入っていない。
  • 行の最後にセミコロンがない。
  • ひとつの文字列の中にひとつの引用符を使っている。 (余分な引用符を避けるため、Joe's SiteJoe\'s Siteと書かなくてはいけません。)

Q.次のようなエラーが出ました。

Warning: main(some/path/to/system/databases/mysql.class.php): failed to open stream: No such file or directory in /path/to/your/system/lib-database.php on line 110

Fatal error: main(): Failed opening required 'some/path/to/system/databases/mysql.class.php' (include_path='.:/some/other/path/') in /some/path/to/system/lib-database.php on line 110

(行番号は変わる場合があります。)

回答:

config.phpの$_CONF['path']変数に入力したパスが正しくありません。正しく打ち込んだか確認してください。また、絶対パスが使われているかも確認してください。たとえば、ファイルシステムのルートで始まっているパスです。(または / under Unix/Linuxか、Windowsではドライブ名で始まっています。)

Q.次のようなエラーが出ました。

1050: Table 'gl_access' already exists.

回答:

以前インストールスクリプトを実行したはずです。(おそらく失敗しています。)念のために、インストールのスクリプトを再び実行する前に、データベースをドロップして新しく空のデータベースを作成してください。

Q.インストール中に次のようなエラーが出ました。

ケース1:

Parse error: parse error in ../../lib-common.php on line 2231

Fatal error: Cannot instantiate non-existent class: template in ../../lib-common.php on line 335

ケース 2:

Parse error: parse error in /path/to/geeklog/public_html/lib-common.php on line 3036

Fatal error: Call to undefined function: plg_showcenterblock() in /path/to/geeklog/public_html/index.php on line 67

ケース 3:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /path/to/geeklog/public_html/lib-common.php on line 3815

Fatal error: Cannot instantiate non-existent class: template in /path/to/geeklog/public_html/lib-common.php on line 709

(行番号は変わる場合があります。)

回答:

上記のケースはすべて (または、一般的に3000か4000の範囲の行番号が付いているlib-common.phpで出てくる可能性のある同じ“文法エラー”メッセージ)は、転換された lib-common.phpファイルを表しています。

ドキュメントトップに明記されているように、これはたいてい次のようなことから生じています。

  • WinZipの一定のバージョンでtarballを解凍する (代わりに WinRar を使ってみてください。)
  • Dreamweaverか他のいわゆる WYSIWYG HTML エディタでlib-common.phpを編集する (代わりにシンプル・テキスト・エディタを使ってください。)
  • Cpanelのようなツールに搭載されている“オンサイト”テキスト・エディタでlib-common.phpを編集する(代わりにシンプル・テキスト・エディタを使ってください。)

テキスト・エディタを使って、lib-common.phpを編集する必要があります。Windowsのユーザーは、geeklog.netのフォーラムにあるこここのスレッド内で、推奨されている使用エディタが見られます。

Q.次のようなエラーが出ました。

Template Error: set_root: /some/path/to/public_html/layout/XSilver is not a directory. Halted.

回答:

これはまたパスのトラブルです。$_CONF['path_html']の設定をチェックしてください。Geeklogのpublic_htmlディレクトリを変更しなかったり、リネームしなかった場合は、その設定を変更する必要はまったくありません。(オリジナルのコンテンツに行を戻してください。)あるいは、config.phpの行の上のコメントをもう一度注意して読んで、その行をどのように変更したらいいかを理解してください。

Q.次のようなエラーが出ました。

Warning: mysql_connect(): Access denied for user: 'username@localhost' (Using password: YES) in
/path/to/geeklog/system/databases/mysql.class.php on line 104
Cannnot connect to DB server

(行番号は変わる場合があります。)

回答:

最初に、config.phpのデータベースの設定が正しいか確認してください。特に、MySQLユーザーの名前とパスワード、データベースの名前、MySQLサーバーの名前を確認してください。

自分のサーバーを運営している場合は、MySQLのユーザーに適切な許可を与える必要があります。MySQLのルートユーザーとしてMySQLにログインし、次のコマンドを発行してください。

GRANT ALL PRIVILEGES ON database_name TO user@host IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

下の文字列には実際の値を入れます。

データベースの許可にもっと制限を加えたい(加える必要がある)場合: データベースのユーザーに少なくともALTER、 CREATE、 DELETE、 INSERT、 SELECT、UPDATE の許可を与える必要があります。 ALTER と CREATE の許可は、プラグインと他のアドオンをインストールするのと同様に、Geeklogのインストールとアップグレードには必要です。



インストール後のトラブル (よくあるトラブル)

サイトのセットアップは成功しましたが、トップに次のようなエラーメッセージが出ました。

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にあるスクリプトを使ってテストしてください。

ログインかログアウトするたびに、次のエラーが出ます。

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ファイルに“空欄”がないか確認してください。たとえば、その二つの文字の後に何も(空白か空行)あってはけません。

まだトラブルがある場合は、以下のことをしてください。

1) http://www.geeklog.net/へ行って、サポートの項をチェックしてください。サポートにはFAQ検索システムがあります。(エラーメッセージが出たら、検索してみてください。)

2) http://lists.geeklog.net/pipermail/geeklog-users/のメーリングリスト・アーカイブスに行ってください。メーリングリストに書き込むこともできますし、Geeklogコミュニティーに質問を送ることもできます。

3) irc.freenode.net, channel #geeklogでチャットルームを試してください。 config.php とlib-common.php のパス情報が簡単に入手できます。

4) Googleにエラーメッセージのテキストを入力してみてください。同じトラブルを解決した人が見つかることがあります。 特定のエラーを時々検索すると、同じエラーを持っている壊れたページがGoogleに生じてしまいます。

本ドキュメントの拡大バージョンの製作: Jason C. Levine
レイアウト: Simon Lord   レビュー: Dirk Haun、 Jeffrey Schoolcraft
日本語化:今駒哲子

Geeklog ドキュメントプロジェクト
本ページの商標及び著作権は各オーナーに帰属します。 GeekLog は copyleftです。