Serendipity Blog

説明

PHP で書かれた BSD ライセンスで配布されているフリーの Blog

DB は MySQL, PostgreSQL, SQLite に対応。

海外では人気あるが、日本では blog を自前で用意する人が少ないせいか知名度が低いらしい。

 

◎参考ページ
Serendipity - Screenshots
自前で設置した blog

 

必要環境

  • The Apache Webserver
  • .htaccess support allowing overrides for Directory Index?
  • PHP Version 4 or greater (PHP 4.3.1 or greater recommended)
  • php.ini options:
    • error_reporting E_ALL & ~E_NOTICE (or lower)
    • file_uploads on (For import/image upload features)
  • Any of the following database engines:
    • MySQL
    • Post Gre?SQL
    • SQLite (not quite!)
       

入手

Serendipity Blog オフィシャルページ から

最新版:Serendipity 0.9.1 を入手

 

インストール

PHP スクリプトなのでコンパイル等の作業は無し。

設置(インストール)後にブラウザからTOPページにアクセスして設定を行う。

 

月桜共通 blog にするので、インストール先は月桜共用 Web スペース*1以下にインストール。

 

個人で使用する場合やレンタルサーバにインストールする場合は多少異なってくるので、パーミッションや DB 作成、Web サーバの設定等は適宜読み替える事。

 
 

以下、作業内容

 
  1. 作業用ユーザになり、DL したアーカイブをインストール先に展開する。
    $ su - httpd
    $ tar serendipity-0.9.1.tar.gz -C /home/data/httpd

  2. バージョン管理を容易にする為、シンボリックリンクを張る
    $ cd /home/data/httpd
    $ mv serendipity serendipity-0.9.1
    $ ln -s serendipity-0.9.1 serendipity-0.9.1

  3. root になって Webサーバ(Apache) にエイリアス/ヴァーチャルホストの設定を追加*2
    $ su -
    # vi /usr/local/apache/conf/httpd.conf

    下記設定を httpd.conf に追加
    # for Serendipity Blog
    Alias /blog/ "/home/data/httpd/serendipity/"
    
    <Directory "/home/data/httpd/serendipity">
       AllowOverride All
       <Limit GET POST OPTIONS PROPFIND>
           Order allow,deny
           Allow from all
       </Limit>
       <LimitExcept GET POST OPTIONS PROPFIND>
           Order deny,allow
           Deny from all
       </LimitExcept>
    </Directory>

     
  4. apache に設定を反映させる
    # /usr/local/apache/bin/apachectl configtest
    Syntax OK
    # /usr/local/apache/bin/apachectl restart

  5. Serendipity 用 DB とユーザ作成

    今回は MySQL*3 を選択し、専用ユーザを作成する*4

    serendipity 用 DB 作成
    $ /usr/local/mysql/bin/mysqladmin -u root -p create serendipity
    
    serendipity DB に mysql ユーザ root で接続
    $ /usr/local/mysql/bin/mysql -p root serendipity
    
    上記で作成した serenditpity DB 用ユーザ作成
    mysql> GRANT ALL PRIVILEGES ON serendipity.*
         > TO serendipity@localhost IDENTIFIED BY 'DB アクセスパスワード';
    
    GRANT 文実行後は必ず FLUSH PRIVILEGES 文を実行する
    mysql>FLUSH PRIVILEGES;
    mysql> \q

    [GRANT 文の説明]

    localhost 上からのみアクセス出来る 'DB アクセスパスワード' を持つユーザserendipity に、DB serendipity 上で ALL PRIVILEGES(全ての権限)*5を与える(許可する)。

 

設定

設定は基本的にブラウザ上から行う。

 
  • インストール後、ブラウザで TOP ディレクトリにアクセスすると下記の初回設定画面が出力される。

    config_top.png

    ここで Serendipity Blog が要求する要件とシステムとを比較出来るので、 満たさないものがあるようなら設定を行う前にシステム条件を整える。

    • PHP インストール

      OS や PHP Version, DB の他にインストールされている PHP がサポートしている機能の有無について表示される。

      取り分け日本語対応させる為に、"mbstring extension" は必須になる。

    • php.ini 設定

      推奨される PHP 自体の設定。 "register_globals" の設定等、php4 以前の Version で書かれたスクリプトが動かなくなったりする事があるので、要確認。

    • 許可

      Serendipity Blog が動作する際の Permission について。

      適正でないとエラーになるので、適正な Permission に変更しておく。

       
      ※php.ini を変更した場合は、Webサーバを再起動 (php.ini を再読み込み)させる事。
      # vi /usr/local/lib/php.ini
      # /usr/local/apache/bin/apachectl restart


 
  • インストール設定

    TOP 画面の最下部から2種類のインストールタイプを選択する。

    • 簡単なインストール作業を行う

      通常のインストールではこちらを選択する。

    • 上級者のインストール作業を行う

      より詳細なインストールを行う場合に選択する。


 

今回はパスの変更等、通常インストールでは変更出来ない部分があるので、上級インストールを選択。

初回アクセス時にすでにデフォルトの設定値がフォームに入力されている。

管理パスワードや、ユーザ名、メールアドレス、ブログタイトル等の変更を行う。

※インストール後に上級インストールと同じ設定を行える

項目
データベース設定
データベースタイプmysql
データベースホストlocalhost
データベースユーザーsependipity*6
データベースパスワード'DB ユーザの DB 接続パスワード'
データベース名sependipity*7
パス
フルパス/home/data/httpd/serendipity/*8
一般設定
管理者ユーザー名'blog 管理ユーザ名'
管理者パスワード'blog 管理パスワード'
本名'blog 上で表示されるユーザ名'
管理者電子メールE メールアドレス
ブログの名前MY BLOG
ブログの説明紹介文
言語Japanese
外観とオプション
WYSIWYG エディタを使うはい



  • 設定が正常終了すると下記の画面が出力される。

    config_end.png

    DB の設定に失敗していたりすると、上記画面中に PHP のエラーメッセージが本文に混ざって出力される。

    この辺のエラー処理はきっちりしてなく、エラーが出ても「インストール終了」メッセージが出てハマります。

    きっちりエラー対処した後インストール画面にアクセス出来ないようなら、serendipity をインストールしたディレクトリを1度削除して、再度インストールを行うと良い。

 

追加テーマの入手とインストール

s9yテーマページにて配布されている。

個別の他に、デフォルトテーマも含んだ tar アーカイブでも配布されているのでそちらを入手。

中身を s9y インストール TOP ディレクトリ以下の templates 以下に展開する。

$ wget http://www.netmirror.org/mirror/serendipity/additional_themes.tgz
$ tar xvzf additional_themes.tgz -C /home/data/serendipity/tenplates


自身でカスタマイズしたい場合は、s9y style ページを参照する。

 

文字化けについて

インストールした環境により文字化けが起こる可能性が有る。

 
  1. 記事やコメントの内容が文字化けする

    s9y では内部で扱う文字データ(コード)を UTF を前提としている為、UTF 以外の文字コード(EUC-JP)等は文字化けを起こす。

    内部処理でエンコード処理をしていない為に、php.ini の mbstring 関連の項目で、EUC-JP にしていたり自動変換を使うように設定していると、強制的に変更させられてしまう。

    対処としては、

    1. php.ini のこれらの項目をオフにする

      自前のサーバ等への設置でシステム共通の php.ini の設定を変更する。

       
  1. 専用の php.ini を使用出来るようにする

    権限の問題で,共通の php.ini が用意できないのなら、個々の php.ini で対応する。

     
  1. .htaccese で php.ini の設定を上書きする

    serendipity/.htaccess 内で

    php_value default_charset UTF-8
    php_value mbstring.language Japanese
    php_value mbstring.detect_order auto
    php_value mbstring.http_input pass
    php_value mbstring.http_output UTF-8
    php_value mbstring.internal_encoding UTF-8
    php_flag mbstring.encoding_translation Off

    みたいに上書き設定をする。

     
  2. コード内にエンコード処理を追加する

    php.ini の設定変更も、.htaccess も使えないとなると残された道は、自前でコードを追加するしかないと思われる。手間を考えると他の blog ツール探したほうが良いと思う。

     
  1. 日付表示が文字化ける

    月桜で発生した文字化けはこちら。

     

    記事等は UTF で処理されているが、日付に関するサーバのデフォルト locale は EUC-JP である為、一つのページ内に UTF と EUC-JP が混在する形になり文字化けを起こしていた。

     

    対処としては、serendipity/lang/UTF-8/serendipity_lang_ja.inc.php 内の

    @define('DATE_LOCALES', 'ja,jp,ja_JP.UTF-8');

    の行をコメントアウトし、

    @define('DATE_LOCALES', 'ja_JP.UTF-8,ja,jp');

    のように ja_JP.UTF-8 を一番左に持ってくる事で解決した。

     

    詳しくは、Serendipity の日付表示の文字化け対応 を参照。

 

関連プログラム

 

参考資料

 

*1 所有者(ユーザ) httpd ホームディレクトリ /home/data/httpd
*2 個人のスペースへインストールする場合やヴァーチャルホストを使用していない場合は、この項目は飛ばす
*3 他の DB は割愛
*4 ホスティングを利用している等、DB にアクセスできるユーザがすでに設定されていれば、この項目は飛ばして良い
*5 下手に制限するとインストールに失敗するので、serendipity の挙動を把握出来ないのなら ALL PRIVILEGES とした方が良い
*6 DB に接続するユーザ名
*7 インストール5項で設定した DB かすでに用意されている DB を指定
*8 シンボリックリンクを張ったので変更

添付ファイル: fileconfig_end.png 726件 [詳細] fileconfig_top.png 761件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-09-09 (土) 01:48:30 (6447d)