OpenPNE


OpenPNEは、オープンソースのSNSソフトウエアです。

Windows Web Server 2008 + IIS7.0へのOpenPNEのインストール手順を以下に示します。

  1. PHPのインストール
    PHPがインストールされていない場合は、本サイトのPHPページを参照して、PHPをインストールする。
  2. OpenPNEのダウンロード
    http://www.openpne.jp/pne-downloads/から最新安定版のzipファイルをダウンロードする。
  3. ダウンロードしたファイルを任意のインストールしたいフォルダに解凍する。
    ex.) C:¥WebApplications¥openpne
    以降、「OPENPNE_HOME」と記述する。
  4. データベースの設定
    phpMyAdminでの設定方法を示す。

    1. MySQLの管理者ユーザー(rootなど)でphpMyAdminにログインする。
    2. 「新規データベースを作成する」にOpenPNE用のデータベース名(ex. openpne)を記入して「作成」をクリックする。
      openpne-db01
    3. 一度トップページに戻ってから、上部のメニューで「特権」ページを選択し、「新しいユーザーを追加する」をクリックする。
      openpne-db02
    4. ユーザー情報の入力
      OpenPNEデータベースを所有するデータベースユーザーの情報を入力し、画面下の方の「実行する」をクリックする。

      ユーザー名 テキストフィールドの値を利用する WordPressデータベースを所有するユーザー名

      ex.) wordpress

      ホスト ローカル localhost
      パスワード テキストフィールドの値を利用する パスワード(生成しても良い)

      openpne-db03

    5. 表示された画面で下の方にスクロールし、データベースに固有の特権エリアでOpenPNE用データベース(ex. openpne)に対して特権を追加する。
      openpne-db04
    6. データベースに固有の特権をすべてにチェックし、「実行する」をクリックする。
      openpne-db05
    7. 一度phpMyAdminをログアウトする。
      openpne-db06
    8. 作成したOpenPNE用のユーザー(ex. openpne)でphpMyAdminにログインし直す。
    9. メニューの「データベース」ページを開き、作成したOpenPNE用データベース(ex. oepnpne)をクリックする。
      openpne-db07
    10. メニューの「インポート」ページを開き、インポートするファイルの「テキストファイルの位置」に「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-db08
    11. 引き続き同じ画面で、「テキストファイルの位置」に「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フォルダのファイルを指定する。

    データベースの設定は以上。

  5. php.iniの設定
    phpをインストールしたフォルダにあるphp.iniに対し、PHPのインストール時に設定したこのブログに書いてあるPHPアプリケーションのすべてに共通する設定に加え、以下を設定する。

    extension=php_mysql.dll
    extension=php_gd2.dll
    extension=php_mcrypt.dll

    設定後、IISを再起動する。

  6. 設定ファイルを作成する。
    OPENPNE_HOME¥config.php.sampleをOPENPNE_HOME¥config.phpにコピーする。
    このファイルには、データベースへの接続情報などが書かれている。
  7. データベースの設定に合わせてconfig.phpを変更する。
    $GLOBALS['_OPENPNE_DSN_LIST']['main']
    username 接続するMySQLユーザー名
    ex.) openpne
    password 接続する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');
  8. IIS仮想ディレクトリの設定
    「IIS仮想ディレクトリの作成」を参照して、IISの仮想ディレクトリを追加する。
    物理パスにはOPENPNE_HOME¥public_html(ex. C:¥WebApplications¥openpne¥public_html)を指定する。
  9. OpenPNEのセットアップを行う。
    setup URL(http://{あなたのURI}/{IIS仮想ディレクトリ}/?m=setup)アクセスし、必要な情報を入力して「セットアップ実行」をクリックする。
    openpne-setup01
  10. 管理画面(http://{あなたのURI}/{IIS仮想ディレクトリ}/?m=admin)にアクセスする。
    (8)で指定した、管理者アカウントでログインする。
    openpne-setup02
  11. セキュリティ向上のため、ページ名ランダム生成を実施する。
    管理画面メニューより選択する。
    openpne-setup03
  12. 「ページ名ランダム生成」ページで、「ランダム生成を実行する」をクリックする。
    openpne-setup04
    これにより、管理画面の各ページのURLがランダムな文字列になり、推測されにくくなる。
  13. セキュリティ向上のため、設定ファイル(config.php)を再度編集する。
    ADMIN_MODULE_NAMEを任意の文字列に変更する。
    ex.)

    define('ADMIN_MODULE_NAME', 'manager');

    これにより、管理画面のURLがhttp://~/?m=adminからhttp://~/?m=managerに変更される。

  14. ジョブの設定
    デイリーニュースメールの配信など、定期的に実行するジョブをWindowsタスク スケジューラに登録する。

    1. 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")

    2. タスクス ケジューラを起動する。
      [スタート]メニュー - [管理ツール] - [タスク スケジューラ]を選択する。
    3. 登録するジョブは以下の4つ
      • tool_send_daily_news (毎朝6時)
      • tool_send_birthday_mail (毎朝6時)
      • tool_send_schedule_mail (毎朝6時)
      • tool_rss_cache (20分間隔程度)

      カッコ内の実行タイミングは、OpenPNEのオフィシャルマニュアルの例に書かれているもの。
      このジョブ毎に以降の(4)~(12)を繰り返す。

    4. 右側の操作エリアの「基本タスクの作成」をクリックする
      openpne-scheduler01
    5. 「基本タスクの作成」画面で、ジョブを識別するための名称を記入する。
      openpne-scheduler02
    6. 「タスク トリガ」画面で、ジョブを実行するタイミングとして「毎日」を選択する。
      openpne-scheduler03
    7. 「毎日」画面で、ジョブを実行する時間を指定する。
      openpne-scheduler04
    8. 「操作」画面で、「プログラムの開始」を選択する。
      openpne-scheduler05
    9. 「プログラムの開始」画面で、実行するジョブの情報を入力する。
      プログラム/スクリプト cscript
      引数の追加
      (オプション)
      (1)で作成した共通スクリプトファイルのフルパスと、実行するジョブ名を記述する。
      ex.)

      C:\WebApplications\openpne\bin\jobscript.vbs tool_send_daily_news

      openpne-scheduler06

    10. 「概要」画面で、「[完了]をクリックしたときに、このタスクの [プロパティ] ダイアログを開く」にチェックして「完了」をクリックする。
      openpne-scheduler07
    11. 登録したジョブのプロパティ画面の「全般」ページが開き、「ユーザーがログオンしているかどうかにかかわらず実行する」を選択し、「パスワードを保存しない タスクがアクセスできるのはローカル コンピュータ リソースのみ」をチェックする。
      openpne-scheduler08
    12. 「設定」ページを開き、「スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する」にチェックし、「タスクを停止するまでの時間」を「1日間」にする。
      openpne-scheduler09
    13. tool_rss_cacheジョブにのみ、20分間隔で実行するため以下の設定を行う。
      1. 「トリガ」ページを開き、「編集」をクリックする。
        openpne-scheduler10
      2. 「トリガの編集」画面で、「遅延時間を指定する (ランダム)」のチェックをはずし、「繰り返し間隔」にチェックをいれそれを「20分間」に変更する。
        openpne-scheduler11
    14. 動作確認
      左側ツリーの「タスク スケジューラ ライブラリ」を選択し、一覧のジョブを右クリックして「実行する」をクリックする。
      openpne-scheduler12
      一覧にジョブが表示されない場合は[F5]キーを押す。
    15. 登録されているユーザーにメールが届いているかなどを確認する。
  15. SNSサイトにログインしてみよう。
    http://{あなたのURI}/{IIS仮想ディレクトリ}/(ex. http://itmx.kids-beads.com/openpne/)からログインできる。
    openpne01
  16. ログインすると以下のような画面になる。
    openpne02

以上

タグ: , ,

コメント / トラックバック2件

  1. kw より:

    define(‘OPENPNE_DIR’, ‘c:\apps\OpenPNE-2.12.6′);

    が config.php.sample になかったので はまった
    これは罠?

  2. kunyami より:

    > kwさん
    OPENPNE_DIRはOPENPNE_HOME\bin\config.inc.phpで定義されているので不要のはずですよ。

コメントをどうぞ

トラックバックURL