FreeBSDでOpenPNEを動かしてみる。

OpenPNEをFreeBSD上にインストールするメモ。

OpenPNEはオープンソースのSNSソフトウェアでOpenSocialに対応しています。

今回もさくらVPS上のFreeBSDにインストールしました。

さくらVPS上のFreeBSD環境については「FreeBSD on さくらVPS」に記載している通りです。

また、今回は「openpne.force.pdns.jp」というサブドメインで動かしてみます。

OpenPNEを動作させるのに必要なアプリケーションは

  • Apache
  • PHP
  • MySQL

となります。

インストールの流れはOpenPNE公式の「OpenPNE3.6 セットアップ手順」にあるとおりです。

・PHP-PDO関連のインストール

OpenPNEはMySQLへのアクセスにPDOを使用しているようです。

PDOとはPHP Data Objectの略で、いわゆるO/Rマッパーを指します。簡単に言ってしまうと、データベースの差異をPDO側で吸収するので、どのデータベース上でも動作可能なPHPのコードを書ける(はず)と言う事になります。

FreeBSDではphp-extensionsをインストールした時にPDOをインストールするか指定できます。/usr/ports/lang/php5-extensionsに移動してmake configした際に

[X] PDO         PHP Data Objects Interface (PDO)

のように表示されていればPDOモジュールはインストールされているはずですが、チェックが入っていなければ、make configでチェックを入れてportupgrade -fするか、

portinstall -f databases/php5-pdo

を実行してPDOモジュールをインストールします。

また、PDOのMySQLモジュールはphp5-extensionsではインストール出来ないので

portinstall -f databases/php5-pdo_mysql

を実行してPDOのMySQLモジュールもインストールします。

・pearのインストール

必須では無いのですが折角なのでpear(PHP Extension and Application Repository )を入れてしまいます。

pearのインストールは

portinstall -f devel/pear

を実行してください。

pearの設定内容表示は

pear config-show

を実行します。

実行すると

Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    <not set>
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /usr/local/bin
PEAR documentation directory   doc_dir          /usr/local/share/doc/pear
PHP extension directory        ext_dir          /usr/local/lib/php/20090626
PEAR directory                 php_dir          /usr/local/share/pear
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /usr/local/lib/php/pear/cfg
directory
PEAR data directory            data_dir         /usr/local/share/pear/data
PEAR Installer download        download_dir     /go-pear/download
directory
PHP CLI/CGI binary             php_bin          /usr/local/bin/php
php.ini location               php_ini          <not set>
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         /go-pear
PEAR test directory            test_dir         /usr/local/share/pear/tests
PEAR www files directory       www_dir          /usr/local/lib/php/pear/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            22
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          /usr/local/bin/gpg
Signature Key Directory        sig_keydir       /usr/local/etc/pearkeys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         /root/.pearrc
System Configuration File      Filename         /usr/local/etc/pear.conf

のような感じでpearの設定内容が表示されます。

OpenPNEはsymfonyフレームワークを使用しています。インストールする場合はこちらにあるように

pear channel-discover pear.symfony-project.com
pear install symfony/symfony-1.4.8

を実行する事で導入できます。

・OpenPNEの入手

OpenPNE公式サイトからOpenPNEのzipアーカイブを入手します。今回はOpenPNE3.6β6をインストールする予定なので「openpne-OpenPNE3-OpenPNE-3.6beta6-0-g75c2d80.zip」を取得しました。

取得したzipアーカイブは任意のディレクトリに展開しておきます。今回は/usr/local/www/の下にopenpne.force.pdns.jpというディレクトリを作成してその下にzipアーカイブをコピーしてから

tar zxvf openpne-OpenPNE3-OpenPNE-3.6beta6-0-g75c2d80.zip

として展開しました。

展開すると「openpne-OpenPNE3-75c2d80」のようなディレクトリが作成されますが、ディレクトリ名が少し長いので

mv openpne-OpenPNE3-75c2d80 openpne36b6

としてリネームしています。

・OpenPNE用データベースの作成

rootユーザでMySQLにアクセス。

# mysql -p
Enter password:ルートユーザのパスワードを入力

データベースを操作するユーザがいなければ先に作成します。

insert into mysql.user set user="ユーザ名", password=password("パスワード"), host="localhost";
insert into mysql.user set user="ユーザ名", password=password("パスワード"), host="127.0.0.1";
flush privileges;

次にデータベースを作成します。

create database データベース名 ;

ユーザに作成したデータベースのアクセス権を設定します。

GRANT ALL PRIVILEGES ON データベース名.* TO ユーザ名@localhost IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON データベース名.* TO ユーザ名@127.0.0.1 IDENTIFIED BY 'パスワード';

・OpenPNEのインストール

OpenPNEのインストールを始めます。

OpenPNEの展開先に移動します。

cd /usr/local/www/openpne.force.pdns.jp/openpne36b6

展開先に移動したらOpenPNEの設定ファイルを作成します。設定ファイルはサンプルとして用意されているのでサンプルファイルをコピーします。

cp ./config/OpenPNE.yml.sample ./config/OpenPNE.yml
cp ./config/ProjectConfiguration.class.php.sample ./config/ProjectConfiguration.class.php

コピー後、OpenPNE.ymlファイルを修正します。最低でも

  • base_url
  • mail_domain

の2箇所を修正します。おいらの場合は

base_url: "http://openpne.force.pdns.jp"
mail_domain: "force.pdns.jp"

こんな感じに修正しました。

次にOpenPNEのインストーラを起動します。

./symfony openpne:install

実行すると対話形式で幾つかの情報を入力します。

  • Choose DBMS:
    OpenPNEで使用するデータベースを指定します。
    選択肢にはmysql/pgsql/sqliteがありますがmysql以外は未サポートですので、無条件に「mysql」と入力します。
  • Type database username
    MySQLに設定したデータベースにアクセスするためのユーザ名を入力します。
  • Type database password (optional)
    データベースにアクセスするユーザのパスワードを入力します。
  • Type database hostname
    MySQLが稼動しているホストを指定します。OpenPNEと同一のサーバでMySQLが動作しているのであれば「localhost」と入力します。
  • Type database port number (optional)
    MySQLにTCPで接続する際のポート番号を入力します。今回は未指定でOKなのでリターンキーを押します。
  • Type database name
    OpenPNE用に用意したMySQLのデータベース名を入力します。
  • Type database socket path (optional)
    データベースにソケット経由で接続する場合は、ソケットファイルのパスを入力します。今回は未指定でOKなのでリターンキーを押します。

上記情報を入力した後、確認のため入力内容が表示されます。

The DBMS                 : mysql
The Database Username    : ユーザ名
The Database Password    : ******
The Database Hostname    : localhost
The Database Port Number :
The Database Name        : データベース名
The Database Socket      :

この内容でインストールしても良いか

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

と聞かれますので「Y」を入力してリターンキーを押してください。

>> installer start clean install
>> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"...
>> sfPearFrontendPlugin downloading channel.xml ...
>> sfPearFrontendPlugin Starting to download channel.xml (796 bytes)
>> sfPearFrontendPlugin .
(snip)
>> link+     /usr/local/www/openpne.force.pdns.jp/openpne36b6/web/sfProtoculousPlugin
>> plugin    Configuring plugin - sfSymfonyTemplatingViewPlugin
>> installer installation is completed!

のようにメッセージが表示されていきます。

途中エラーが表示されず、最後に「Installer Installation is completed!」と表示されれば、OpenPNEのインストール作業は完了です。

・ドメインの設定

今回OpenPNEは専用のFQDN(openpne.force.pdns.jp)用を割り当てたので、DNSに対してopenpneをAレコードで追加しておきます。

openpne        IN      A       サーバのIPアドレス

当然の事ですがお使いの環境に合わせてDNSに登録してください。シリアルの変更を忘れずに行った後、namedを再起動させます。

・Apacheの設定

Apacheの設定は「さくらVPSでJoomla! 1.5.21 Japanese を動かしてみた。」あたりも参照してください。

ここではApacheの該当サブドメイン用設定ファイルのみ記述しておきます。(/usr/local/etc/apache22/Includes/openpne.force.pdns.jp.conf)

<VirtualHost *:80>
ServerAdmin 管理者のメールアドレス。
DocumentRoot /usr/local/www/openpne.force.pdns.jp/openpne36b6/web
ServerName  openpne.force.pdns.jp
LimitRequestBody 1048576
UserDir     disabled
HostNameLookups     ON
ErrorLog /usr/local/www/openpne.force.pdns.jp/log/httpd-error.log
CustomLog /usr/local/www/openpne.force.pdns.jp/log/httpd-access.log combined
<Directory /usr/local/www/openpne.force.pdns.jp/openpne36b6/web>
AllowOverride All
Allow from all
Order allow,deny
</Directory>
</VirtualHost>

設定が終わったら

/usr/local/etc/rc.d/apache22 restart

してApacheを再起動しておきます。

・OpenPNEの動作確認

ユーザログイン画面は「http://URL/」にアクセスします。

初期ユーザはメールアドレス「sns@example.com」、パスワード「password」となります。

SNS画面が表示されればOK。

不正アクセス防止のため、最低限パスワードは変更しておきましょう。常用するのであれば、「sns@example.com」アカウントは削除するべきでしょう。

管理画面は「http://URL/pc_backend.php」にアクセスします。

管理者でログインするにはアカウント「admin」、パスワード「password」となります。

管理画面が表示されれば、OpenPNEのインストールは終了です。不正アクセス防止のため、パスワードは必ず変更しておきます。

インストールサンプルは「http://openpne.force.pdns.jp/」で参照できますが、パスワード等を変更しているのでログイン画面しか見れませんのであしからず。


コメント

タイトルとURLをコピーしました