OpenPNEは、オープンソースのSNSソフトウエアです。
Windows Web Server 2008 + IIS7.0へのOpenPNEのインストール手順を以下に示します。
- PHPのインストール
PHPがインストールされていない場合は、本サイトのPHPページを参照して、PHPをインストールする。 - OpenPNEのダウンロード
http://www.openpne.jp/pne-downloads/から最新安定版のzipファイルをダウンロードする。 - ダウンロードしたファイルを任意のインストールしたいフォルダに解凍する。
ex.) C:¥WebApplications¥openpne
以降、「OPENPNE_HOME」と記述する。 - データベースの設定
phpMyAdminでの設定方法を示す。- MySQLの管理者ユーザー(rootなど)でphpMyAdminにログインする。
- 「新規データベースを作成する」にOpenPNE用のデータベース名(ex. openpne)を記入して「作成」をクリックする。

- 一度トップページに戻ってから、上部のメニューで「特権」ページを選択し、「新しいユーザーを追加する」をクリックする。

- ユーザー情報の入力
OpenPNEデータベースを所有するデータベースユーザーの情報を入力し、画面下の方の「実行する」をクリックする。ユーザー名 テキストフィールドの値を利用する WordPressデータベースを所有するユーザー名 ex.) wordpress
ホスト ローカル localhost パスワード テキストフィールドの値を利用する パスワード(生成しても良い) - 表示された画面で下の方にスクロールし、データベースに固有の特権エリアでOpenPNE用データベース(ex. openpne)に対して特権を追加する。

- データベースに固有の特権をすべてにチェックし、「実行する」をクリックする。

- 一度phpMyAdminをログアウトする。

- 作成したOpenPNE用のユーザー(ex. openpne)でphpMyAdminにログインし直す。
- メニューの「データベース」ページを開き、作成したOpenPNE用データベース(ex. oepnpne)をクリックする。

- メニューの「インポート」ページを開き、インポートするファイルの「テキストファイルの位置」に「OPENPNE_HOME¥setup¥sql¥mysql41¥install¥install-2.12-create_tables.sql」(ex. C:¥WebApplications¥openpne¥setup¥sql¥mysql41¥install¥install-2.12-create_tables.sql)を指定して、実行するをクリックする。
※利用するMySQLが4.0の場合、mysql40フォルダのファイルを指定する。

- 引き続き同じ画面で、「テキストファイルの位置」に「OPENPNE_HOME¥setup¥sql¥mysql41¥install¥install-2.12-insert_data.sql」(ex. C:¥WebApplications¥openpne¥setup¥sql¥mysql41¥install¥install-2.12-insert_data.sql)を指定して、実行するをクリックする。
※利用するMySQLが4.0の場合、mysql40フォルダのファイルを指定する。
データベースの設定は以上。
- php.iniの設定
phpをインストールしたフォルダにあるphp.iniに対し、PHPのインストール時に設定したこのブログに書いてあるPHPアプリケーションのすべてに共通する設定に加え、以下を設定する。extension=php_mysql.dll
extension=php_gd2.dll
extension=php_mcrypt.dll設定後、IISを再起動する。
- 設定ファイルを作成する。
OPENPNE_HOME¥config.php.sampleをOPENPNE_HOME¥config.phpにコピーする。
このファイルには、データベースへの接続情報などが書かれている。 - データベースの設定に合わせてconfig.phpを変更する。
$GLOBALS['_OPENPNE_DSN_LIST']['main'] username 接続するMySQLユーザー名
ex.) openpnepassword 接続するMySQLユーザーのパスワード hostspec MySQLサーバーのホスト名
ローカルのMySQLの場合は「localhost」とする。port MySQLの受信ポート番号
デフォルト(3306)から変更していない場合は、記述不要ex.)
$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array(
'dsn' => array(
'phptype' => 'mysql',
'username' => 'openpne',
'password' => 'password',
'hostspec' => 'localhost',
'port' => '3306',
'database' => 'openpne',
'new_link' => false,
),
);さらにDB暗号化キーとメールサーバードメインを設定する。
ENCRYPT_KEY DB暗号化キー
56バイト以内のASCII文字列で推測されづらいものであれば何でもよい。MAIL_SERVER_DOMAIN メールサーバードメイン
携帯メール投稿の宛先などのドメイン名に使われるex.)
define('ENCRYPT_KEY', 'aiSw234rjdFh)wth;GOF');
define('MAIL_SERVER_DOMAIN', 'mail.example.com'); - IIS仮想ディレクトリの設定
「IIS仮想ディレクトリの作成」を参照して、IISの仮想ディレクトリを追加する。
物理パスにはOPENPNE_HOME¥public_html(ex. C:¥WebApplications¥openpne¥public_html)を指定する。 - OpenPNEのセットアップを行う。
setup URL(http://{あなたのURI}/{IIS仮想ディレクトリ}/?m=setup)アクセスし、必要な情報を入力して「セットアップ実行」をクリックする。

- 管理画面(http://{あなたのURI}/{IIS仮想ディレクトリ}/?m=admin)にアクセスする。
(8)で指定した、管理者アカウントでログインする。

- セキュリティ向上のため、ページ名ランダム生成を実施する。
管理画面メニューより選択する。

- 「ページ名ランダム生成」ページで、「ランダム生成を実行する」をクリックする。

これにより、管理画面の各ページのURLがランダムな文字列になり、推測されにくくなる。 - セキュリティ向上のため、設定ファイル(config.php)を再度編集する。
ADMIN_MODULE_NAMEを任意の文字列に変更する。
ex.)define('ADMIN_MODULE_NAME', 'manager');これにより、管理画面のURLがhttp://~/?m=adminからhttp://~/?m=managerに変更される。
- ジョブの設定
デイリーニュースメールの配信など、定期的に実行するジョブをWindowsタスク スケジューラに登録する。- OPENPNE_HOME¥binフォルダに共通スクリプトファイルを作成する。
ex.) C:¥WebApplications¥openpne¥bin¥jobscript.vbs
OPENPNE_HOMEにはOpenPNEをインストールしたフォルダのフルパスを、PHP_HOMEには、PHPをインストールしたフルパスを記述する。OPENPNE_HOME = "C:\WebApplications\openpne"
PHP_HOME = "C:\Program Files (x86)\php52"Set objParam = WScript.Arguments
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.CurrentDirectory = OPENPNE_HOME & "\bin"
objShell.Run ("cmd /C """ & PHP_HOME & "\php.exe"" -f " & objParam(0) & ".php") - タスクス ケジューラを起動する。
[スタート]メニュー - [管理ツール] - [タスク スケジューラ]を選択する。 - 登録するジョブは以下の4つ
- tool_send_daily_news (毎朝6時)
- tool_send_birthday_mail (毎朝6時)
- tool_send_schedule_mail (毎朝6時)
- tool_rss_cache (20分間隔程度)
カッコ内の実行タイミングは、OpenPNEのオフィシャルマニュアルの例に書かれているもの。
このジョブ毎に以降の(4)~(12)を繰り返す。 - 右側の操作エリアの「基本タスクの作成」をクリックする

- 「基本タスクの作成」画面で、ジョブを識別するための名称を記入する。

- 「タスク トリガ」画面で、ジョブを実行するタイミングとして「毎日」を選択する。

- 「毎日」画面で、ジョブを実行する時間を指定する。

- 「操作」画面で、「プログラムの開始」を選択する。

- 「プログラムの開始」画面で、実行するジョブの情報を入力する。
プログラム/スクリプト cscript 引数の追加
(オプション)(1)で作成した共通スクリプトファイルのフルパスと、実行するジョブ名を記述する。
ex.)C:\WebApplications\openpne\bin\jobscript.vbs tool_send_daily_news - 「概要」画面で、「[完了]をクリックしたときに、このタスクの [プロパティ] ダイアログを開く」にチェックして「完了」をクリックする。

- 登録したジョブのプロパティ画面の「全般」ページが開き、「ユーザーがログオンしているかどうかにかかわらず実行する」を選択し、「パスワードを保存しない タスクがアクセスできるのはローカル コンピュータ リソースのみ」をチェックする。

- 「設定」ページを開き、「スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する」にチェックし、「タスクを停止するまでの時間」を「1日間」にする。

- tool_rss_cacheジョブにのみ、20分間隔で実行するため以下の設定を行う。
- 動作確認
左側ツリーの「タスク スケジューラ ライブラリ」を選択し、一覧のジョブを右クリックして「実行する」をクリックする。

一覧にジョブが表示されない場合は[F5]キーを押す。 - 登録されているユーザーにメールが届いているかなどを確認する。
- OPENPNE_HOME¥binフォルダに共通スクリプトファイルを作成する。
- SNSサイトにログインしてみよう。
http://{あなたのURI}/{IIS仮想ディレクトリ}/(ex. http://itmx.kids-beads.com/openpne/)からログインできる。

- ログインすると以下のような画面になる。

以上




