Ubuntu10.10 自宅サーバ構築手順:SNS(ソーシャル・ネットワーキング・サービス:OpenPNE3)の導入

この環境導入については公式マニュアル他参照しながら色々試してたのですが中々導入までには至らず…足りない情報を補完しつつ、ようやく開設(完了までの過程)に至る事が出来たのでそこまでの手順をまとめてメモしておこうと思います。



OpenPNE3を導入する際の事前準備として、Apache2とMySQLはそれぞれ導入が済んでいる事が必要です。
(以降の手順で、DB:MySQLとして進めて行きます)



  • 導入に際し必要なソフトをインストール。
absj31@absj31-MyHomeServer:/$ sudo apt-get install -y php5 php5-mysql php5-mcrypt php5-gd php5-xmlrpc php5-symfony1.0
absj31@absj31-MyHomeServer:/$ sudo apt-get install -y git git-core
  • DB(MySQL)環境に、OpenPNE導入に必要なデータベースを作成。以下の情報で作成した。
Database openpne3db
User openpne3dbuser
Pass openpne3dbpass
absj31@absj31-MyHomeServer:/$ mysql -u root -p
mysql> create database openpne3db;
Query OK, 1 row affected (0.00 sec)

mysql> use openpne3db;
Database changed
mysql> grant all privileges on openpne3db.* to openpne3dbuser@"%" identified by 'openpne3dbpass' with grant option;
Query OK, 0 rows affected (0.03 sec)

mysql> grant all privileges on openpne3db.* to openpne3dbuser@"XXX.XXX.XXX.%" identified by 'openpne3dbpass' with grant option;
Query OK, 0 rows affected (0.00 sec)
  • gitコマンドを利用して、OpenPNE3のアーカイブを入手。/opt 配下にインストールする事にした。
absj31@absj31-MyHomeServer:/$ cd /opt
absj31@absj31-MyHomeServer:/$ sudo git clone git://github.com/openpne/OpenPNE3.git
Initialized empty Git repository in /OpenPNE3/.git/
remote: Counting objects: 41984, done.
remote: Compressing objects: 100% (13489/13489), done.
remote: Total 41984 (delta 26977), reused 41350 (delta 26521)
Receiving objects: 100% (41984/41984), 15.82 MiB | 1.53 MiB/s, done.
Resolving deltas: 100% (26977/26977), done.
absj31@absj31-MyHomeServer:/$ 
  • インストールするバージョンを指定。の前にタグを確認してみる。一通り入っている模様。
absj31@absj31-MyHomeServer:/$ cd OpenPNE3/
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ git tag -l
OpenPNE-3.0.0
OpenPNE-3.0.1
OpenPNE-3.0.2
OpenPNE-3.0.3
OpenPNE-3.0.4
OpenPNE-3.0.5
OpenPNE-3.0.6
OpenPNE-3.0.6.1
OpenPNE-3.0.7
OpenPNE-3.0.8
OpenPNE-3.0.8.1
OpenPNE-3.0.8.2
OpenPNE-3.0.8.3
OpenPNE-3.0beta1
OpenPNE-3.0beta2
OpenPNE-3.0beta3
OpenPNE-3.1.0
OpenPNE-3.1.1
OpenPNE-3.1.2
OpenPNE-3.1.3
OpenPNE-3.1.3.1
OpenPNE-3.1.4
OpenPNE-3.1.5
OpenPNE-3.2.0
OpenPNE-3.2.1
OpenPNE-3.2.2
OpenPNE-3.2.2.1
OpenPNE-3.2.3
OpenPNE-3.2.4
OpenPNE-3.2.5
OpenPNE-3.2.5.1
OpenPNE-3.2.6
OpenPNE-3.2.7
OpenPNE-3.2.7.1
OpenPNE-3.2.7.2
OpenPNE-3.2.7.3
OpenPNE-3.2.7.4
OpenPNE-3.2RC1
OpenPNE-3.2beta1
OpenPNE-3.3.0
OpenPNE-3.3.1
OpenPNE-3.3.2
OpenPNE-3.4.0
OpenPNE-3.4.0.1
OpenPNE-3.4.1
OpenPNE-3.4.1.1
OpenPNE-3.4.2
OpenPNE-3.4.3
OpenPNE-3.4.4
OpenPNE-3.4.4.1
OpenPNE-3.4.5
OpenPNE-3.4.6
OpenPNE-3.4.6.1
OpenPNE-3.4.6.2
OpenPNE-3.4.7
OpenPNE-3.4.8
OpenPNE-3.4.9
OpenPNE-3.4.9.1
OpenPNE-3.4.9.2
OpenPNE-3.4RC1
OpenPNE-3.4beta1
OpenPNE-3.5.0
OpenPNE-3.5.1
OpenPNE-3.5.2
OpenPNE-3.5.3
OpenPNE-3.6beta1
OpenPNE-3.6beta2
OpenPNE-3.6beta3
OpenPNE-3.6beta4
OpenPNE-3.6beta5
OpenPNE-3.6beta6
OpenPNE-3.6beta7
OpenPNE-3.6beta8
OpenPNE-3alpha1
OpenPNE-3alpha2
OpenPNE-3alpha3
absj31@absj31-MyHomeServer:/opt/OpenPNE3$
  • 最新目の安定板、OpenPNE-3.4.9.2をインストールする方向で行ってみる。
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ sudo git checkout -b OpenPNE-3.4.9.2
Switched to a new branch 'OpenPNE-3.4.9.2'
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ git branch 
* OpenPNE-3.4.9.2
  master
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ 
  • 設定ファイルをサンプルファイルからコピー。
absj31@absj31-MyHomeServer:/$ cd OpenPNE3/
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo cp config/ProjectConfiguration.class.php.sample config/ProjectConfiguration.class.php
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo cp config/OpenPNE.yml.sample config/OpenPNE.yml
  • 上記作業でコピーしたOpenPNE.xmlファイルを編集。メール配信に関する設定を変更する(Gmailを用いた設定にしてみる)。
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ sudo vi config/OpenPNE.yml
------------------------------------
######################################
# 基本設定 (Basic)
######################################

# SNS の URL
# URL of the SNS
base_url: "http://(ドメイン名)/openpne"   【システムで末尾にスラッシュ(/)が付加されるようなので、設定値としての末尾「/」は不要】

######################################
# メール (Mail)
######################################

# SNS からのメール送信に使うドメイン
# Domain to use for sending e-mail from the SNS
mail_domain: "gmail.com"

# メール投稿アドレスにメンバー毎にユニークなハッシュを含める
# Contain an individual hash for an e-mail address that is used to post something to the SNS
is_mail_address_contain_hash: true

# メール投稿アドレスのハッシュの長さ
# Length of hash for an e-mail address for posting
mail_address_hash_length: 12

# SNS から送信するメールの Envelope From (Return-Path ヘッダ) に指定するアドレス
# Envelope From (Return-Path header) address for sending e-mail from the SNS
mail_envelope_from: "(取得済みGmailメールアドレス)"

# SNS から SMTP 経由でメールを送信する場合の SMTP サーバのホスト名
# Hostname of the SMTP server for sending e-mail via SMTP
mail_smtp_host: "smtp.gmail.com"

# SNS から SMTP 経由でメールを送信する場合の SMTP の設定
# Config of the SMTP for sending e-mail via SMTP
mail_smtp_config:
  auth:     "login"
  username: "(取得済みGmailメールアドレス)"
  password: "(取得済みGmailメールアドレスのパスワード)"
  ssl:      "tls"
  port:     587

# メールテンプレートに機能制限をおこなうかどうか
# Add restriction to mail templates
is_restrict_mail_template: true
------------------------------------
  • インストール実施。DBに関する設定を適宜入力していく。最後に[Y]でインストールが始まる。
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo ./symfony openpne:install
--------------------------
                          |
  Choose DBMS:            |
  - mysql                 |
  - pgsql (unsupported)   |
  - sqlite (unsupported)  |
                          |
--------------------------
mysql            【←入力後[Enter]押下]】
--------------------------
                          |
  Type database username  |
                          |
--------------------------
openpne3dbuser   【←入力後[Enter]押下]】
-------------------------------------
                                     |
  Type database password (optional)  |
                                     |
-------------------------------------
openpne3dbpass    【←入力後[Enter]押下]】
--------------------------
                          |
  Type database hostname  |
                          |
--------------------------
localhost         【←入力後[Enter]押下]】
----------------------------------------
                                        |
  Type database port number (optional)  |
                                        |
----------------------------------------
[そのままEnterキー押下]
----------------------
                      |
  Type database name  |
                      |
----------------------
openpne3db
----------------------------------------
                                        |
  Type database socket path (optional)  |
                                        |
----------------------------------------
[Enterキー押下]
---------------------------------------------
                                             |
  The DBMS                 : mysql           |
  The Database Username    : openpne3dbuser  |
  The Database Password    : ******          |
  The Database Hostname    : localhost       |
  The Database Port Number :                 |
  The Database Name        : openpne3db      |
  The Database Socket      :                 |
                                             |
  Is it OK to start this task? (Y/n)         |
                                             |
---------------------------------------------
Y            【←入力後[Enter]押下]】
  • 『installation is completed!』と出れば完了。
>> installer start clean install
>> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"...
>> sfPearFrontendPlugin downloading channel.xml ...
:
:
:
>> plugin    Configuring plugin - sfImageHandlerPlugin
>> plugin    Configuring plugin - sfProtoculousPlugin
>> link+     /OpenPNE3/web/sfProtoculousPlugin
>> plugin    Configuring plugin - sfSymfonyTemplatingViewPlugin
>> installer installation is completed!
absj31@absj31-MyHomeServer:/OpenPNE3$ 
  • インストールファイルのお掃除。
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo ./symfony project:clear-controllers
>> file-     /OpenPNE3/web/pc_backend_dev.php
>> file-     /OpenPNE3/web/pc_frontend_dev.php
>> file-     /OpenPNE3/web/mobile_frontend_dev.php
>> file-     /OpenPNE3/web/api_dev.php
absj31@absj31-MyHomeServer:/OpenPNE3$ 
  • web配下の.htaccessファイルを編集。
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo vi web/.htaccess
--------------------------------------------------------
  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  RewriteBase /openpne/   【←baseurlに即した値に変更】
  • 上記設定を有効にするためにmod_rewriteを有効にする。(この設定を行う事が漏れていたが為に導入後ログイン出来ず、かなりハマッった…)
absj31@absj31-MyHomeServer:/OpenPNE3$ sudo a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
  • Apache設定ファイルを変更。[AllowOverride None]の記述を[AllowOverride All]に変更。
absj31@absj31-MyHomeServer:/opt/OpenPNE3$ sudo vi /etc/apache2/sites-available/default
---------------------------------------------------------
        <Directory /var/www/>
                :
                AllowOverride All
                :
  • lnコマンドでリンク設定を行う。参照先ディレクトリ配下も所有者を変更。
absj31@absj31-MyHomeServerV:/opt/OpenPNE3$ sudo ln -s /opt/OpenPNE3/web/ /var/www/openpne
absj31@absj31-MyHomeServerV:/opt/OpenPNE3$ sudo chown -R www-data:www-data web/
  • Apache2再起動。
absj31@absj31-MyHomeServerV:/opt/OpenPNE3$ sudo service apache2 restart

  • ログインが正常に行える事を確認。


  • ログインが正常に行える事を確認。



取り敢えず、システムとして最低限利用可能な初期状態まで持って行く事は出来ました。整っている情報に中々巡り会えず難儀しました…。

上記の設定で軽く使ってみてるのだけれど、ドメイン名にスラッシュが二重に重なって設定されてしまい、所々でURLアクセスに不備が出ています。base_urlの最後にスラッシュ付加してるのが原因なのかな?後で入れ直して試してみるか…つかその前に、インストール後でも直せないものなのこの辺(OpenPNE.xml)の設定は?教えてください詳しいお方。(※追記:base_urlの設定値末尾がスラッシュで終わっていると余計に付加されてしまう形となる。設定値は http://(ドメイン名)/xxxx の形で記述。)

また、OpenPNEを運営していくには、様々な設定をカスタマイズしないと思ったような使いこなし方は出来なさそう。色々調べて試してみないと行けなさそうです。少しずつノウハウ溜めていこう。


参考: