OpenPNE3のインストール手法に関しては、OpenPNE公式サイトなどで紹介されていますが、どちらかと言えばフリーズされたバージョンに向けたものといえるでしょう。
このチュートリアルでは、開発リポジトリからOpenPNE本体を取得する方法を掲載します。
OpenPNE3が求めている環境の詳細や、開発リポジトリを利用しない方法は公式サイトで公開されています。
(こちらは過去の安定版のものです)
Git
OpenPNE3はソースコードのリポジトリとしてGithubを利用しています。GithubはGitによるリポジトリや、そのフォーク(分岐)を視覚的に管理することができる便利なサイトです。
Gitは、かつてOpenPNE2が利用していた集中型のSubversionと異なり、分散型のシステムです。Subversionは集中にリポジトリが存在していて、それをみんなが利用するというものです。一方、Gitはリポジトリのコピーを自分の環境に作るということになっています。
Gitの良さや詳細な操作法などは以下の書籍や、手嶋屋の小川さんが作成したこちらのスライドを参考にしていただければと思います。
Debianの場合、以下のように簡単にgitをインストールすることができます。
$ sudo apt-get install git-core
Github上からソースコードの入手は以下のように行えます。
$ git clone git://github.com/openpne/OpenPNE3.git
これにより、自分の環境にリポジトリのクローンが作られます。(上の通りにやれば特に何も指定していないのでOpenPNE3というディレクトリができているはずです。)
しかし、このままではmasterブランチといい、現在開発中の状態になってしまいます。(予期せぬ挙動をするかもしれません!)なので、作られたOpenPNE3のディレクトリに移動し、以下のコマンドによりリリースされたバージョンの状態にするようにしましょう。
$ git checkout タグ
ProjectConfigurationのコピー
symfonyのProjectConfigurationをサンプルファイルからコピーします。
cp config/ProjectConfiguration.class.php.sample config/ProjectConfiguration.class.php
基本的には、内容を変更する必要はないでしょう。
インストールタスク
OpenPNE3には、パーミッションの変更・DBの設定その他諸々を一度にやってくれる便利なコマンドが存在します。OpenPNE3のディレクトリで以下のコマンドを実行してください。
$ ./symfony openpne:install
起動すると、DBについての質問がされますので入力してください。(このとき指定するデータベースのユーザはDBが作成できる権限が望ましいです。)
Webアクセスができるようにする 〜 スタンダードな方法
もし、OpenPNE3を1つだけ導入するのであれば、symfonyと同じようにVirtualHostを利用する方法が良いでしょう。方法しては、Practical symfonyの1日目に掲載されている方法と同様です。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName #DOMAIN_NAME#
DocumentRoot "#SNS_DIR#/web"
DirectoryIndex index.php
<Directory "#SNS_DIR#/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf #SNS_DIR#/lib/vendor/symfony/data/web/sf
<Directory "#SNS_DIR#/lib/vendor/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
例として、httpd.confはこのようになるでしょう。#DOMAIN_NAME#はSNSのドメイン名、#SNS_DIR#はSNSのプロジェクトディレクトリにそれぞれ置き換えてください。
【付録】Webアクセスができるようにする 〜 VirtualDocumentRootを利用する
もし、複数のOpenPNE3をセットアップする場合、いちいちVirtualHostの設定を増やしていくのは面倒です。それを対処するために指定のディレクトリに*/webへのホスト名でシンボリックリンクを張ることにより簡単にセットアップできるようにすることができます。
この方法を利用する際は、Apacheのmod_vhost_alias拡張が導入されている必要があります。
<VirtualHost *:80>
VirtualDocumentRoot /var/hosts/%0
<Directory "/var/hosts">
Options ExecCGI FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Alias /sf #SNS_DIR#/lib/vendor/symfony/data/web/sf
<Directory "#SNS_DIR#/lib/vendor/symfony/data/web/sf">
Options ExecCGI FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/var/hosts/op3.*">
AllowOverride None
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
この設定の利用の仕方として、/var/hosts下に op3.○○○ という名前の*/webへのシンボリックリンクを作成することにより、web/.htaccessの設定を変えることなくsymfonyのWebデバックツールの画像も正常に表示させるというものです。
いちいち、
web/.htaccessの設定を変えるのが面倒だ!という場合はご利用ください。