こんにちは、あかぴんです。
mixi や Yahoo! Days など SNS が大流行していますが、ちょっと羨ましかったので、
Solaris 10 の Zone 上で Open Source の SNS エンジンである OpenPNE を
インストールしてみましたので、その覚え書きでも。
インストール先のマシンは U30 で、OS は Solaris 10 3/05。
Ultra 30 (US-II 300MHz/1GB MEM)
Solaris 10 3/05 + Recommended Patch (Jul/28/06)
|
これに Zone を作って、そこに OpenPNE をインストールしました。
Zone は以下のような感じで、とりあえずデフォルト + zonepath +
network 設定という感じです。
# zonecfg -z kururu
zonecfg:kururu> export
create -b
set zonepath=/zones/kururu
set autoboot=true
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add net
set address=129.158.52.67
set physical=hme0
end
zonecfg:kururu> verify
zonecfg:kururu> commit
zonecfg:kururu> exit
# zoneadm -z kururu install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <77073> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1295> packages on the zone.
Initialized <1295> packages on zone.
Zone is initialized.
Installation of <1> packages was skipped.
Installation of these packages generated warnings:
The file contains a log of the zone installation.
# zoneadm list -vc
ID NAME STATUS PATH
0 global running /
- keroro configured /zones/keroro
- kururu installed /zones/kururu
|
下準備はこの程度で、これから OpenPNE で必要となる最低限の
パッケージ(Apache, PHP, MySQL) をインストールします。
これらは Solaris もしくは Companion CD にも含まれているの
ですが、今回は必要なもの一式をまとめてパッケージングして
いる XAMPP Solaris 0.8.1 を使いました。
xampp for solaris
http://www.apachefriends.org/en/xampp-solaris.html
このパッケージ、いまは SPARC/Solaris 版しか提供されていない
のですが、Apache 2.2.0, MySQK 5.0.18, PHP 5.1.1 等、OpenPNE
で必要となるもの全て含まれてます。
インストール方法は簡単で、xampp-solaris-0.8.1.sh をダウンロード後、
root で実行するだけです。
今回、インストール先やアクセスするための URL は以下としました。
[インストール先]
xampp /opt/xampp
OpenPNE /opt/OpenPNE
[URL]
xampp http://kururu.japan.sun.com/xampp/
OpenPNE http://kururu.japan.sun.com/OpenPNE/
|
まずパッケージの入手。近場から持ってきます。
# /usr/sfw/bin/wget http://jaist.dl.sourceforge.net/sourceforge/xampp/xampp-solaris-0.8.1.sh
|
次に xampp のインストール
# /bin/sh xampp-solaris-0.8.1.sh
Where do you want to install XAMPP? (press Ctrl+C to abort installation)
[/opt/xampp]
.
.
.
x ./phpsqliteadmin/dbconfig.php, 974 bytes, 2 テープブロック
x ./phpsqliteadmin/SPSQLite.class.diff, 3372 bytes, 7 テープブロック
x ./phpsqliteadmin/phpsla.css, 1645 bytes, 4 テープブロック
x ./cgi-bin, 0 bytes, 0 テープブロック
x ./cgi-bin/test-cgi, 757 bytes, 2 テープブロック
x ./cgi-bin/printenv, 274 bytes, 1 テープブロック
XAMPP installation complete. You may now start XAMPP by calling:
/opt/xampp/xampp start
Good luck and have fun!
|
xampp を起動します。
# /opt/xampp/xampp start
Starting XAMPP for Solaris 0.8.1...
XAMPP: Starting Apache...
XAMPP: Starting MySQL...
XAMPP: A FTP daemon is already running.
XAMPP for Solaris started.
|
無事起動したら、http://kururu.japan.sun.com/ で確認。
以下の画面が表示されればインストール成功。
いまの状況だと、誰もが管理者ページにアクセスできてしまいますので
パスワード認証するように設定します。
(実際はパスワードは表示されません)
# /opt/xampp/xampp security
XAMPP: Quick security check...
XAMPP: Your XAMPP pages are NOT secured by a password.
XAMPP: Do you want to set a password? [yes]
XAMPP: Password: keroro
XAMPP: Password (again): keroro
XAMPP: Password protection active. Please use 'xampp' as user name!
XAMPP: MySQL is accessable via network.
XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes]
XAMPP: Turned off.
XAMPP: Stopping MySQL...
XAMPP: Starting MySQL...
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes]
XAMPP: Write the password somewhere down to make sure you won't forget it!!!
XAMPP: Password: keroro
XAMPP: Password (again): keroro
XAMPP: Setting new MySQL root password.
XAMPP: Change phpMyAdmin's authentication method.
XAMPP: The FTP password is still set to 'xampp'.
XAMPP: Do you want to change the password? [yes]
XAMPP: Password: keroro
XAMPP: Password (again): keroro
XAMPP: ProFTPD isn't running...
XAMPP: Done.
|
各種パスワードの設定が終わったら、再度 http://kururu.japan.sun.com/ に
アクセスして確認。
以下のような画面が出れば設定成功。
ユーザ名は xampp、パスワードは先ほど設定したものとなります。
以上で、OpenPNE で必要となる Apache, PHP, MySQL のインストールは完了です。
いよいよ OpenPNE の入手からインストール、設定となります。
http://docs.openpne.jp/ にアクセスして最新のパッケージを持ってきます。
# /usr/sfw/bin/wget http://tejimaya.org/openpne/OpenPNE_2_2_4.zip
|
アーカイブを展開してインストールします。
# unzip OpenPNE_2_2_4.zip
# mv OpenPNE /opt
# chmod -R 777 /opt/OpenPNE/var
# ln -s /opt/OpenPNE/public_html /opt/xampp/htdocs/OpenPNE
|
サーバ固有の情報を定義していきます。
まず config.php.sample から config.php ファイルを作成します。
# cd /opt/OpenPNE
# cp config.php.sample config.php
|
config.php.sample の文字コードは UTF-8 となっているので、
EUC 環境の人は config.php を作成する際、以下のようにすると
理解できる文字列で設定できるようになります。
# iconv -f UTF-8 -t eucJP config.php.sample > config.php
|
config.php にある OPENPNE_URL, DSN, ENCRYPT_KEY, MAIL_SERVER_DOMAIN
を設定します。
暗号化キー(56バイト以内のASCII文字)は適当にこんな感じで生成するのもあり?
# digest -a md5 /var/adm/wtmpx
2ef45e993a2ecff2d1e9b69e8d402ce0
今回は以下のように設定しました。
// Web上の絶対パス(URL)(最後にスラッシュを付けてください)
define('OPENPNE_URL', 'http://kururu.japan.sun.com/OpenPNE/');
// DBサーバ設定
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
'dsn' => array(
'phptype' => 'mysql',
'username' => 'root',
'password' => 'kururu',
'hostspec' => 'localhost',
'database' => 'openpne',
'new_link' => false,
),
);
// DB暗号化キー(56バイト以内のASCII文字列)
define('ENCRYPT_KEY', '2ef45e993a2ecff2d1e9b69e8d402ce0');
// メールサーバードメイン
// 携帯メール投稿の宛先などのドメイン名に使われる
define('MAIL_SERVER_DOMAIN', 'kururu.japan.sun.com');
|
cron の設定をします。
以下では crontab 編集用の Editor を vi と定義後、
crontab -e で編集しました。
ちなみに tcsh 使ってます。
# setenv EDITOR vi
# crontab -e ← crontab の編集
.
.
.
# crontab -l | grep OpenPNE ← crontab の編集後
# For OpenPNE
0 6 * * * /bin/sh /opt/OpenPNE/bin/tool_send_dairy_news.cron /opt/OpenPNE/bin/ /opt/xampp/bin/php
0 6 * * * /bin/sh /opt/OpenPNE/bin/tool_send_birthday_mail.cron /opt/OpenPNE/bin/ /opt/xampp/bin/php
0 6 * * * /bin/sh /opt/OpenPNE/bin/tool_send_schedule_mail.cron /opt/OpenPNE/bin/ /opt/xampp/bin/php
20 * * * * /bin/sh /opt/OpenPNE/bin/tool_rss_cache.cron /opt/OpenPNE/bin/ /opt/xampp/bin/php
|
最後に OpenPNE 用データベースを作成します。
Web から phpMyAdmin を使っても作成できるのですが、
今回はさくっとコマンドラインで作ります。
(実際はパスワードは表示されません)
# /opt/xampp/bin/mysql -u root -p
Enter password:keroro
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 5.0.18
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database `openpne` default character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> quit
Bye
# /opt/xampp/bin/mysql -u root -p --default-character-set=utf8 openpne < /opt/OpenPNE/setup/sql/install_2_2_create_tables.sql
Enter password: keroro
# /opt/xampp/bin/mysql -u root -p --default-character-set=utf8 openpne < /opt/OpenPNE/setup/sql/install_2_2_insert_data.sql
Enter password: keroro
|
http://kururu.japan.sun.com/ で OpenPNE にアクセスできるように
/opt/xampp/htdocs/index.html にある refresh の飛び先を変更します。
<html>
<head>
<meta http-equiv="refresh" content="0;url=/OpenPNE/">
</head>
<body bgcolor=#ffffff>
</body>
</html>
|
最後に管理者ページにアクセスして SNS の設定を行います。
管理者ページには引数 ?m=admin を付けてアクセスします。
http://kururu.japan.sun.com/?m=admin
|
全ての設定が完了したら、自作の SNS にアクセスしてみましょう。
こんな感じの画面が表示されれば成功です。
管理者ページで設定したユーザ名、パスワードでログインすると
以下のような画面が表示されます。
OpenPNE は詳細部分までカスタマイズ可能なので、ドキュメントなど
を参考に、好きな世界を作ってください。
なお、今回は Solaris 10 のコンテナ (Zone) の中で構築しましたが
特にこちらは必須ではありません。Solaris 10 の Global Zone や
Solaris 9 でも SPARC マシンであれば構築可能です。コンテナを使った
のは、何かあった際に rm -rf /zones/kururu するだけで、他のサービス
に影響を与えることなく痕跡を消すことができて便利かなぁと思って
やっただけで他意はありません(^^;)。
それでは!