OpenPNE 3.4 導入メモ

クライアントからの要望でSNSを導入する機会があり、オープンソースではメジャーなイメージのOpenPNEをインストールしてみたので、そのメモです。

インストール環境

  • さくらインターネット (マネージドプラン)
  • PHP 5.2.4
  • MySQL 5.1

インストールファイルのダウンロード

http://www.openpne.jp/pne-downloads/
上記URLより、安定版の3.4.2(2010年9月6日現在)をダウンロードします。

サーバーへのアップロード

ダウンロードしたファイルを解凍して、サーバー上にアップロードします。弊社では、
/home/アカウント名/apps/open_pne/
にアップロードしました。

この際、解凍したファイル群の中にwebという公開ディレクトリが含まれるのですが、これは移動してはいけません。インストール後に公開ディレクトリにシンボリックリンクを張る方法が確実なようです。

コンフィグファイルの設定

/open_pne/config 以下に存在する、以下のファイルをダウンロードして編集します。

  • OpenPNE.yml.sample
  • ProjectConfiguration.class.php
OpenPNE.yml.sample 7行目付近
# SNS の URL
# URL of the SNS
base_url: "http://www.sample.com"
OpenPNE.yml.sample 14行目付近
# SNS からのメール送信に使うドメイン
# Domain to use for sending e-mail from the SNS
mail_domain: "sample.com"
OpenPNE.yml.sample 25行目付近(必要であれば)
# SNS から送信するメールの Envelope From (Return-Path ヘッダ) に指定するアドレス
# Envelope From (Return-Path header) address for sending e-mail from the SNS
mail_envelope_from: "info@sample.jp"

ProjectConfiguration.class.php.sampleは初期化に利用するファイルのようですが、インストール時には特に使用しないようなので編集しなくてもかまいません。

最後に、ファイル名の拡張子から .sample を除去して、

  • OpenPNE.yml
  • ProjectConfiguration.class.php

とします。

編集したファイルのアップロード

編集した

  • OpenONE.yml
  • ProjectConfiguration.class.php

を、先ほどの config ディレクトリにアップロードします。

この際、元のファイルである OpenONE.yml.sample は削除してはいけません。これを削除してしまうと、インストール後に Warning が表示されます。

セットアップコマンドの実行

ここからはサーバーにSSHでログインして操作を行います。SSHクライアントを持っていない方は、こちらなどを参考にSSHクライアントを導入してください。

さくらインターネットでのSSHログインは、下記のようになっています。

  • スタンダードプラン以上
  • ホストアドレス: 初期ドメイン (アカウント.sakura.ne.jp)
  • ID: アカウント (初期FTPアカウントと同一)
  • パスワード: サーバパスワード

サーバー契約時のメールに全て記載されているようなので、変更していない場合はそれを参照してください。

SSHでのログイン後、下記のようにコマンドを実行します。

cd /home/_account_/apps/open_pne # OpenPNEをアップロードしたディレクトリ
php simfony openpne:install

データベース設定

その後、対話形式でデータベースの種類とアカウント、パスワードなどを聞かれますので、適宜入力していきます。

Choose DBMS (mysql, pgsql or sqlite)
使用するデータベースの種類を入力します。さくらインターネットではmysqlを提供していますので、「mysql」と入力します。
Type database username
データベースのユーザー名を入力します。ここではさくらインターネットののアカウント名を入力します。※マネージドプランをご利用の場合は、作成したデータベース名を入力します。
Type database password (optional)
データベースのパスワードを入力します。
Type database hostname
データベースサーバのホスト名を入力します。ここでは「mysqlxxxdb.sakura.ne.jp」という形式のものを入力します。※マネージドプランをご利用の場合は、「localhost」と入力します。
Type database port number (optional)
データベースのポート番号を入力します。ここでは未入力のままでOKです。
Type database name
データベース名を入力します。ここではさくらインターネットのアカウント名を入力します。 ※マネージドプランをご利用の場合は、作成したデータベース名を入力します。

最後に入力した内容の確認表示がされますので、そこで問題なければ「y」を入力します。

The DBMS                        mysql
The Database Username           (ユーザー名)
The Database Password           ******
The Database Hostname           mysql***.db.sakura.ne.jp (またはlocalhost)
The Database Port Number
The Database Name               (データベース名)
The Database Socket

  Is it OK to start this task? (y/n)y

確認が終われば、その後は自動的にインストール作業が進んでいきます。最終的にCompleteの表示が出れば、これでインストール作業は終了です。

公開ディレクトリの設定

最後に公開ディレクトリに対して、シンボリックリンクを設定します。今回はwww以下にsnsというディレクトリを作り、それを公開ディレクトリとします。

SSHで下記のようにコマンドを実行します。

cd /home/アカウント名/www
ln -s /home/アカウント名/apps/open_pne/web sns

次に、/home/アカウント名/apps/open_pne/web ディレクトリに存在する .htaccess をダウンロードし、内容を書き換えます。(viで直接書き換えてもOKです)

#Options +FollowSymLinks +ExecCGI # コメントアウト

<IfModule mod_rewrite.c>
 RewriteEngine On

 # uncomment the following line, if you are having trouble
 # getting no_script_name to work
 RewriteBase /sns/    # さきほど公開ディレクトリとした「sns」を入れる

 # we skip all files with .something
 #RewriteCond %{REQUEST_URI} \..+$
 #RewriteCond %{REQUEST_URI} !\.html$
 #RewriteRule .* - [L]

 # we check if the .html version is here (caching)
 RewriteRule ^$ index.html [QSA]
 RewriteRule ^([^.]+)$ $1.html [QSA]
 RewriteCond %{REQUEST_FILENAME} !-f

 # no, so we redirect to our front web controller
 RewriteRule ^(.*)$ index.php [QSA,L]

</IfModule>

最初の行をコメントアウトしているのは、さくらインターネットでは .htaccess によるOptionsの設定を許可していないため、これを忘れると500エラーが発生するためです。

設置完了

以上でOpenPNEの設置は完了です。公開ディレクトリにアクセスしてみてください。

OpenPNEは初めて触ってみましたが、画面のレイアウトやモジュールを自由に設定・入れ替えができるので自由度も高いですし、インストールのハードルさえ超えてしまえばいろいろとカスタマイズして利用できそうです。