c:/inetpub/wwwroot/
)で始まり、*nix系OS上でパスは /var/www/
のようにルート(/
)から始まります。http://www.foo.com/
)です。Geeklogをインストールして使用するには、ApacheやMicrosoft IISなどのWebサーバとPHP 5.3.3(7.xもサポートしています)以降が必要です。PHPのエクステンションで必要なものは:
また、データベースとして、MySQL 4.1.3以降か、(MariaDB 5.1以降も可), PostgreSQL 9.1.7以降が必要です。
PostgreSQLユーザーのための注意: 現在、GeeklogではPostgresオプション standard_conforming_strings を off に設定する必要があります(PostgreSQL 9.1以降はデフォルトで on になっています)。
MySQLユーザーのための注意: 多言語サイトでは、通常、データベースの照合順序に utf8_general_ci を使用します。 この照合順序では異なる言語の文字セットを処理できます。MySQLのバージョン5.5.3では4バイト文字をサポートしています。 例えば4バイトの絵文字アイコンの文字をサポートしたい場合は、utf8mb4_general_ci などの、それをサポートする照合順序を使用する必要があります。 異なる照合順序を使用している既存のGeeklogのデータベースでは、phpMyAdminなどのツールを使用して、データベースのデフォルトやすべての照合順序を変更できます。当初の照合順序によっては、テーブルのデータを更新する必要があります。
はじめてGeeklogをインストールするなら、次のことを確認しましょう。
Geeklogの現バージョンのターボール(圧縮ファイル)をGeeklog.netやGeeklog.jpからダウンロードします。
次のコマンドを実行して、ダウンロードしたターボールを展開(解凍)します。
tar -zxvf geeklog-2.0.0.tar.gz
注意: WinZipを使用すると、そのバージョンによっては、ファイルが壊れると報告しているユーザーがいます。こうなるとインストールの最中にエラーになるので、ローカルでファイルを解凍する必要がある場合は、WinZipの代わりに7-ZipやWinRARを使うことを強くお勧めします。(訳註: ExpLZH)
MySQLや、PostgreSQL、Microsoft SQLを使用し、空のデータベースと変更権限のあるユーザーを作成します。ホスティング会社がデータベースを作成してアカウントを作成している場合もあるので、必要ならホスティング会社に尋ねてみてください。
geeklog-2.0.0/public_html/
ディレクトリの中身をWebサーバーのドキュメントルートに転送します。ドキュメントルートには、"public_html"や"htdocs"、"www"などの名前がつけられていることが多いです。
次に、geeklog-2.0.0/
ディレクトリの中身の残りをドキュメントルートの親ディレクトリ(お勧め!)かWebからアクセスできないディレクトリに転送します。インストールウィザードはこれらの場所を自動的に検出しようとします。検出できない場合は、インストールの過程でパスを入力するよう要求されます。インターネットからのアクセスを防ぐセキュリティ対策としてこのような仕様になっています。
注意: ホスティング会社がドキュメントツリーの外にファイルを置くことを許可していない場合は、
Webブラウザーを起動し、Geeklogのインストールウィザードを実行します(http://サイトのURL/admin/install/index.php
をアドレス欄に入力します)。Geeklogのファイルをサブドメインに置いた場合は、http://サイトのURL/サブドメイン名/admin/install/index.php
などとなります。
Geeklogのインストールウィザードは自動的にインストールを行うので、表示される手順に従ってください。
インストールが終了したら、必ず、 admin/install
ディレクトリを削除してください。サイトに最初に表示される記事を読んで、管理者としてのログイン情報を知り、デフォルト状態のパスワードを速やかに変更してください。
データベースが既に存在していて更新する必要があるということを除けば、アップグレードは新規インストールと全く同じです。
現在インストールしているGeeklogの中で自分で変更したカスタムコードがあれば(特に lib-custom.php
。カスタマイズしたコードはすべてこのファイルの中に入れることをお勧めします)、必ずバックアップを取っておいてください。修正したテーマ、画像、静的ページのバックアップを必ず取っておいてください。
また、データベースのバックアップも必ず取っておいてください。ファイル類とデータベースをバックアップする重要性はいくら強調してもし足りないくらいです。
警告しましたよ!
Geeklogの現バージョンのターボール(圧縮ファイル)をGeeklog.netやGeeklog.jpからダウンロードします。
次のコマンドを実行して、ダウンロードしたターボールを展開(解凍)します。
tar -zxvf geeklog-2.0.0.tar.gz
注意: WinZipを使用すると、そのバージョンによっては、ファイルが壊れると報告しているユーザーがいます。こうなるとインストールの最中にエラーになるので、ローカルでファイルを解凍する必要がある場合は、WinZipの代わりに7-ZipやWinRARを使うことを強くお勧めします。
geeklog-2.0.0/
ディレクトリの中身を、現在インストールしているバージョンの同じディレクトリに転送します。たとえば、現在のバージョンを /usr/home/www/geeklog/
にインストールしているなら、新しいバージョンも /usr/home/www/geeklog/
に転送します。
Geeklog 1.4.1及びそれ以前のバージョンからのアップグレード:config.php ファイル(メインの config.php
と各プラグインの config.php
)をバックアップしておき、新しいバージョンを転送した後で、コピーをそれぞれの場所に戻してください。インストールウィザードはアップグレードの最中にこれらの設定ファイルからデータを読み取り、新しいコンフィギュレーション用に値を設定します。このステップを省くと、Geeklogとインストール済みプラグインのデフォルトに戻されてしまいます。
Geeklog 1.5.0及びそれ以降のバージョンからのアップグレード:db-config.php と siteconfig.php をバックアップしておき、新しいバージョンを転送した後で、コピーをそれぞれの場所に戻してください。さもないと、アップグレードの過程でデータベース情報などを再入力することになります。
Webブラウザーを起動し、Geeklogのインストールウィザードを実行します(http://サイトのURL/admin/install/index.php
をアドレス欄に入力します)。Geeklogのファイルをサブドメインに置いた場合は、http://サイトのURL/サブドメイン名/admin/install/index.php
などとなります。
Geeklogのインストールウィザードは自動的にインストールを行うので、表示される手順に従ってください。
インストールが終了したら、必ず、 admin/install
ディレクトリを削除してください。
必要なら lib-custom.php
などのバックアップしておいたコードやテーマなどのファイル類を戻します。
インストール・スクリプトの「移行」オプションは、他のサーバーやドメイン名からサイトの移動の手助けとなります。これはデータベースに保持されている構成情報を更新と、記事にようなコンテンツに含まれる(変更するGeeklogサイトのドメイン名やURLである)URLも更新できます。
「移行」をクリックした後は、いつものように(新しい)データベース・サーバーの認証情報を入力しなければなりません。移行オプションは自動的に検出するので、テーブルの接頭子を入力する必要はないことに注意してください。
次に、あなたのコンピュータからデータベースのバックアップをアップロードするか、サーバー(のGeeklogのbackupsディレクトリ)に既に存在するバックアップから取り込むか、既に他の手段で取り込んでいる場合に現在のデータベースを使用するか、オプションから選択します。
注意: あなたのコンピュータからバックアップをアップロードするには、バックアップ・ファイルの大きさがサーバーのアップロードの制限の最大値以下の場合だけ動作します。許可されている最大のサイズは、このオプションを選択すると表示されます。バックアップ・ファイルの大きさが制限を越えている場合はバックアップ・ファイルを圧縮する(zipやgzipが使用できます)か、他の2つのオプションを使用してください。
先に進む前に、 siteconfig.php
を開き、パスを確認してください。パスが不正であったり、間違いがあったりすると、様々な種類のエラーが発生します。
エラーメッセージが出たら、それを注意深く読んでください。PHPに詳しくなくても、エラーに関するヒントは得られます。エラーメッセージに含まれるパス情報に特に注意してください。上述の通り、パスの間違いは最もよく見られる原因です。
複数のエラーメッセージが表示される場合は、必ず最初のエラーメッセージから手をつけてください。最初のエラーを解決したら、残りのエラーが消えることもよくあります。
エラー: Parse error: parse error in /path/to/your/siteconfig.php on line 20
答え: Parse errorは、自分のtypo(綴り間違い)が原因で起こることが多いです。表示された行やその直前の行をチェックしてください。
よくある間違いは:
Joe¥'s Site
と書かなければならないのに、 Joe's Site
と書いている)エラー: 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 100
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 100
答え: siteconfig.php
中の $_CONF['path']
(Geeklogのシステムファイルのパス)の値が正しくありません。また、 絶対 パス、つまり、ファイルシステムのルートから始まるパスを指定しているか確認してください(Unix/Linux系のOSなら / 、Windowsならドライブ文字から始まります)。
エラー: 1050: Table 'gl_access' already exists
答え: 以前インストールを実行したことがあります(たぶん、失敗しているはずです)。念のために、既存のデータベースを削除してから新しく空のデータベースを作り直し、インストールし直した方がよいです。
エラー: 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
または:
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
または:
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
答え: 上記の例はすべて(また、 lib-common.php
で発生する "parse error" で、エラーが発生した行番号が特に3000から4000台の場合)、 lib-common.php
が破損していることを示しています。
このドキュメントの冒頭に示したとおり、このエラーの原因は普通、次のうちの1つです:
エラー: 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
答え: まず最初に、 siteconfig.php
中のデータベースの設定が正しいか確認してください。特に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のインストールとアップグレード、プラグインやアッドオン(add-ons)のインストールを行うときしか必要ではありません。
エラー: Warning: fopen("/some/path/logs/error.log", "a") - Permission denied in /some/path/public_html/lib-common.php on line 1440
答え: logsディレクトリのパーミッションが少なくとも 775 であることと、*加えて* その中のファイルのパーミッションが少なくとも 644 であることを確認してください。755 と 644 のパーミッションで動作しない場合は、(それぞれ) 775 または 777 と 664 または 666 といったパーミッションにする必要があるかもしれません。同様に、ディレクトリ public_html/backend
と (その中の)ファイル geeklog.rss も同じパーミッションであることを確認してください。
誰かがログイン・ログアウトするたびに、次のエラーが発生する:
Cannot add header information - headers already sent by (output started at /usr###/home/<userid>/public_html/geeklog/siteconfig.php:589) in /usr###/home/<userid>/public_html/geeklog/system/lib-sessions.php on line 133
答え: siteconfig.php
末尾の ?>
の後に余分なホワイトスペース(スペース、タブ、改行コードなど)が含まれていないか確認してください。(訳注:ファイル末尾の ?>
がなくてもPHPの動作に支障はないので、取り除くとよいでしょう。)
これでも問題が生じるなら、次のことを試してみましょう。
https://www.geeklog.net を訪問して、「サポート(Support)」のセクションを調べてみましょう。サポートセクションには、 よくある質問(FAQ) と 検索(Search)システムがあります。表示されたエラーメッセージを(行番号を除いて)検索してみるとよいでしょう。
http://eight.pairlist.net/pipermail/geeklog-users/ に保存されているメーリングリストの過去ログを読みましょう。このメーリングリストを購読し、Geeklogコミュニティに(英語で)質問を投稿してもよいでしょう。
irc.freenode.net, channel #geeklog
のIRCを試しましょう。siteconfig.phpとdb-config.phpに含まれるパス情報とデータベースの情報を手元に用意しておいてください。
エラーメッセージをGoogleで検索してみましょう。他の人が同じ問題に遭遇し、解決している可能性があります。Googleで検索していると、同じエラーが発生している壊れたページが表示されることもあります。
なお、サポートについて詳しくは、ドキュメント「サポート」をご覧ください。