facebookやmixiで有名なSNSを自前でインストールする方法


SNSを自前でインストールする方法の紹介です。
ちょいと映画ソーシャルワークを見て、自分の研究室にもSNSをがあったらいいかも?ってことでインストールを試みてみました。
以下インストール方法になります。

virtualboxのインストール(普通にパソコン1台使う場合は不要です)

virtualboxをダウンロードしてインストールします

http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html

ネットインストールなCentOSのISO

容量の少ないネットインストール可能なCentOSのISOを下記からダウンロードします。
このISOファイルをVertualBoxの仮想サーバーのCDにマウントすれば起動時にインストールが始まります。

http://ftp.iij.ad.jp/pub/linux/centos/5.5/isos/x86_64/
CentOS-5.5-x86_64-netinstall.iso

インストール時に指定するFTPサーバー

ネットインストール時に指定するFTPサーバーはこちらに指定しました。

Web site name ftp.iij.ad.jp
CentOS directory pub/linux/centos/5.5/os/x86_64

CentOSの下準備

まずはCentOSを最新の状態にアップデートします。

$ yum -y update
$ yum -y install emacs

レポジトリの追加

最新のプログラムのインストールが可能なremiをレポジトリのに追加します。
ただ、手入力が面倒なので下記のようにサーバーに予めリストとして置きました。

$ wget moeten.info/flex/20110216/replist.txt
$ wget --no-check-certificate -i replist.txt
$ rpm -Uvh *.rpm

上記は以下のものとOpenPNEを一緒にダウンロードしてくれます。
http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

MySQLのインストール

remiレポジトリより最新のMySQLのをダウンロードします。バージョン5.5などがダウンロードされます。

$ yum remove mysql*
$ yum -y install --enablerepo=remi,remi-test perl-DBD-MySQL
$ yum -y install --disablerepo=base,updates --enablerepo=remi,remi-test mysql mysql-server

PHPのインストール

remiレポジトリより最新のPHPをダウンロードします。バージョン5.3.5などがダウンロードされます。

$ yum -y install --enablerepo=remi,remi-test php php-devel php-domxml php-mysql php-mbstring php-process php-gd php-cli php-common php-pdo php-xml php-mcrypt php-pear php-pecl-apc

MySQLApacheの起動

MySQLApacheを起動しておきます。また、サーバー起動時に自動でMySQLApacheが起動するようにしておきます。

$ /etc/rc.d/init.d/mysqld start
$ chkconfig mysqld on
$ apachectl start
$ chkconfig httpd on

PEARsymfonyのインストール

OpenPNEのインストールに必要なsymfonyをインストールします。

$ pear channel-update pear.php.net
$ pear upgrade-all
$ pear channel-discover pear.symfony-project.com
$ pear install symfony/symfony

OpenPNEのインストール

あらかじめダウンロードしておいたopenpneなzipファイルを解凍してインストールしていきます。

$ unzip openpne-xxxx.zip
$ mv openpne-xxxxx openpne
$ cd openpne
$ cp /usr/share/pear/Archive/Tar.php lib/vendor/PEAR/Archive/Tar.php
$ cp config/ProjectConfiguration.class.php.sample config/ProjectConfiguration.class.php
$ cp config/OpenPNE.yml.sample config/OpenPNE.yml
$ ./symfony openpne:install

公開フォルダにファイルを移動

OpenPNEフォルダを外部が閲覧できる場所に移動します。

$ mv openpne /var/www/
$ mv /var/www/web/* /var/www/html/

※ln -s やhttpd.confでも設定可能だと思いますがいろいろと面倒っというかわからないので上記のようにシンプルに行いました。

httpd.conの編集。.htaccessの継承を可能にする

httpd.confを編集してopenpne/html(web)/の中にある.htaccessを継承を可能にします。

$ emacs /etc/httpd/conf/httpd.conf
ライン32付近
<Directory "/var/www/html">
AllowOverride None
↓に変更
AllowOverride All

保存後Apacheを再起動します。

$ apachectl restart

.htaccessの編集

RewriteBaseの変更

$ emacs /var/www/html/.htaccess
#RewriteBase /
↓に変更
RewriteBase /

もしかしたら1行目の「Options +FollowSymLinks +ExecCGI」の部分がエラーを引き起こす場合がありましますので、先頭に「#」を付けて無効化します。
以上でインストールが完了となります。
あとはfirefoxなどでサーバーのIPもしくはhttp://localhost/へアクセスすればOKです。
お疲れ様でした(・∀・)

Xを入れる

サーバーにXを入れることができる場合は下記。

$ yum -y --enablerepo=remi,remi-test groupinstall "X Window System" "KDE (K Desktop Environment)"
もしくは
$ yum -y --enablerepo=remi,remi-test groupinstall "X Window System" "GNOME Desktop Enviroment"
$ startx
$ yum install firefox

っと、あまりサーバー詳しくないですが、なにかいいコマンドやら設定がありましたら教えてくださいませ。
追記
ユーザーでログインした際、プロフィール編集時にエラーが出て更新されないバグを修正する方法
lib/vender/smarty/lib/form/sfForm.class.php
を参考に修正をする
http://trac.symfony-project.org/attachment/ticket/9299/symfony-sfForm_csrf_loop.patch

OpenPNEオフィシャルガイドブック

OpenPNEオフィシャルガイドブック

はじめてのCentOS5 Linuxサーバ構築編 (TECHNICAL MASTER)

はじめてのCentOS5 Linuxサーバ構築編 (TECHNICAL MASTER)

どちらとも読みやすい本です