若葉総合高校の江川先生から授業でSNS体験をさせたいという相談を受け、OpenPNEのセットアップと授業準備を手伝うことになりました。
授業で使用するSNSということで、外部からはアクセスできない学校ローカルの環境にSNSを構築した手順をメモとして残しておきます。
(あくまで個人の作業メモです)
Debian GNU/Linux(Lenny)をセットアップ。
/etc/apt/sources.list にcontribとnon-freeがなかったので以下のように編集。deb http://ftp.jp.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
# apt-get update; apt-get upgrade を実行して最新の状態にする。
# apt-get install ssh sudo を導入
# update-alternatives --config editor で、標準editorをvimに変更(好みの問題)
(debconfの優先度は「低」を普段は使っているが、今回は標準の「高」のまま設定を行った)
http://www.openpne.jp/より、
安定版のOpenPNEをダウンロード(この記事執筆時点では、2009/11/19リリースの2.14.3)
ダウンロードしたら展開して、同梱のsetup/OpenPNE_Setup.htmlに従いセットアップを行う。
Webサーバ(apacheを導入)
Lennyには、パッケージングによって異なるApacheがあるが、今回はapache2-mpm-preforkを使うことに。
# apt-get install apache2-mpm-prefork
インストールするだけで動くはずなので、適当なブラウザでアクセスすると、It works!の文字が見える。(/var/www/index.htmlが見えている)
PHPの導入
# apt-get install php5 php5-gd php-pear php5-mysql
MySQLの導入
# apt-get install mysql-server
MySQL を管理する "root" ユーザのパスワードを求められので、パスワードを決めて入力(2回入力)
MySQLの確認
$ mysql -u root -p
Enter password: と出るので先ほど入れたパスワードを入力
ログインできたら、デフォルトでインストールされているデータベースを確認
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)
mysql>
一度ログアウト。
PHP5からMySQLを使うためのパケージを導入(と思ったらすでに先ほどphp5-mysqlがインストール済みだった)
メールサーバは、postfix推奨なので、postfixを導入。
debconfの設定はとりあえずdefaultのままで後で設定。
Debianパッケージの導入はここまで。
OpenPNE_Setup.htmlを見ながらファイルの設置。
OPENPNE_DIRは、/usr/local/にコピー
# cp -r /tmp/OpenPNE-2.14.3 /usr/local/
# cd /usr/local/
# ln -s OpenPNE-2.14.3 OpenPNE
# ls -ld OpenPNE*
lrwxrwxrwx 1 root staff 14 2009-11-30 20:13 OpenPNE -> OpenPNE-2.14.3
drwxr-sr-x 10 root staff 4096 2009-11-30 20:13 OpenPNE-2.14.3
# chgrp www-data -R OpenPNE-2.14.3
# chmod g+w -R OpenPNE-2.14.3
ファイルの配置は以上。配置したファイルとサーバの状況に応じて設定ファイルを変更。
# cp config.php.sample config.php
# vi config.php
「必要に応じて、その他の設定も書き換える」とOpenPNE_Setup.htmlには記載してあるが、とりあえず以下の項目を変更
OPENPNE_URL //Web上の絶対パス(URL)
今回は、http://sns.wakabasogo-h.local/にした。
DSN // DBサーバの設定
username,password,databaseを変更
ENCRYPT_KEY // DB暗号化キー
56文字適当に。
データベースの設定(データベース名SNSとした)
$ mysql -u root -p(本当は、root以外のユーザを作成したほうがよいのだが、今回は省略)
<省略> mysql> CREATE DATABASE `SNS` DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql>
OpenPNEセットアップ用SQLを実行
$ cd setup/sql/mysql41/install/
$ mysql -u root -p --default-character-set=utf8 SNS < install-2.14-create_tables.sql
$ mysql -u root -p --default-character-set=utf8 SNS < install-2.14-insert_data.sql
PENBIZ用SQLも実行しておく。
$ cd ../option
$ mysql -u root -p --default-character-set=utf8 SNS < pnebiz-header.sql
Apacheの設定
# cp /etc/apache2/sites-enabled/000-default /etc/apache2/conf.d/local
# vi /etc/apache2/conf.d/local
以下の内容を追加
追加したらapacheを再起動。ServerName sns.wakabasogo-h.local
DocumentRoot /usr/local/OpenPNE/public_html/
DirectoryIndex index.php
cronの設定
# chmod 0755 bin/*.cron
/etc/crontabに以下を追加
00 6 * * * root sh /usr/local/OpenPNE/bin/tool_send_daily_news.cron /usr/local/OpenP
NE/bin/ /usr/bin/php
00 6 * * * root sh /usr/local/OpenPNE/bin/tool_send_birthday_mail.cron /usr/local/OpenP
NE/bin/ /usr/bin/php
00 6 * * * root sh /usr/local/OpenPNE/bin/tool_send_schedule_mail.cron /usr/local/OpenP
NE/bin/ /usr/bin/php
*/20 * * * * root sh /usr/local/OpenPNE/bin/tool_rss_cache.cron /usr/local/OpenPNE/bin/ /usr/bin/php
セットアップモジュールを実行するために、以下のURLにアクセス。
(例) http://sns.wakabasogo-h.local/?m=setup
SNS名、初期メンバー、管理用アカウントを設定する。
(管理用アカウント名は、4文字以上)
管理画面にアクセスして、管理用アカウントでログインする。
管理メニューの「SNS設定」からSNSの基本情報などの設定を行って作業は終了。
より詳細な情報は、
setup/OpenPNE_Setup.html
に記載があるので、こちらを参考。
あくまでも作業メモなので、参考程度にしてください。
追記 2010.2.5 メモリーが512Mでは使い物にならないので、とりあえず3Gに増設しました。3Gでは40人がアクセスしても快適に授業が行えました。