OpenPNEの設置から、携帯電話から投稿できるようにするまでのメモです。
バージョン:OpenPNE2.14.1.1
■目的
OpenPNEで携帯電話から投稿できるようにする
■備考
※catch all対応のサーバーで利用する方法です。(xrea、E-server など。)
今回のメモはe-serverでの構築したメモです。過去にxrea、coreserverで構築した経験を元にしています。
もっとシンプルな方法もあると思いますが、汎用性が高そうだし、とりあえず動いていますので、このやり方をメモしておきます。
十分ではありませんが、xrea・coreserverでも対応できるようなメモもできるだけ残しておきます。
———————————————————————————————-
目次
1.OpenPNEのダウンロード(この設置メモはOpenPNE2.14.1.1を元にしています)
2.データベースを準備する
3.config.phpの作成
4.config.inc.phpを修正する
5.FTPでファイルを階層毎にアップロードする
6.ドメインのメールアドレスをcatch all に対応させる
7.snsmail.shを作成、アップロードする
8.メールチェック用PHPを作成、binにアップロードする
9.cron(クーロン)の設定をする。その1
10.cron(クーロン)の設定をする。その2
———————————————————————————————-
———————————————–
1.OpenPNEのダウンロード
———————————————–
こちらから最新版をダウンロード
http://www.openpne.jp/pne-downloads/openpne2/
———————————————–
2.データベースを準備する
———————————————–
1.サーバーにデータベースを作成する
2・データベースの文字コードは「UTF-8」にする。
3・データベースにテーブルをインポートする
インポートの順番は、先に
setup/sql/mysql41/install/install-2.14-create_tables.sql
次に、
setup/sql/mysql41/install/install-2.14-insert_data.sql
※install-2.14-create_tables.sqlを先にインポートする
※4.1より新しいバージョンはmysql41をインポート
※4.0はmysql40をインポート
———————————————–
3.config.phpの作成
———————————————–
1.config.php.sample を複製コピーして、config.phpにファイル名を変更する。
2.config.phpをエディタで開いて編集する。編集内容は次の通り。
■6行目 公開するドメインURLを入力
1 2 |
// Web上の絶対パス(URL)(最後にスラッシュを付けてください) define('OPENPNE_URL', 'http://sns.example.com/'); |
■12行目 データベースの情報を入力
1 2 3 4 5 6 7 8 9 10 11 |
// DBサーバ設定 $GLOBALS['_OPENPNE_DSN_LIST']['main'] = array( 'dsn' => array( 'phptype' => 'mysql', 'username' => '', 'password' => '', 'hostspec' => 'localhost', 'database' => '', 'new_link' => false, ), ); |
■21行目 半角英数字で適当な文字列を入れる
1 2 |
// DB暗号化キー(56バイト以内のASCII文字列) define('ENCRYPT_KEY', 'ここに半角英数字で適当な文字列をいれる'); |
■24行目 利用するメールアドレスのドメインを入力する
1 2 3 |
// メールサーバードメイン // 携帯メール投稿の宛先などのドメイン名に使われる define('MAIL_SERVER_DOMAIN', 'mail.example.com'); |
■266行目 セッション・クッキー設定を甘くする(自分の場合)
// セッション・クッキー設定
それぞれの数字をいじります。
1 2 3 4 5 |
変更前 ini_set('session.gc_maxlifetime', 432000); // 5 days $GLOBALS['OpenPNE']['common']['session_idletime'] = 432000; // 5 days $GLOBALS['OpenPNE']['ktai']['session_idletime'] = 3600; // 1 hour $GLOBALS['OpenPNE']['admin']['session_idletime'] = 86400; // 1 day |
1 2 3 4 5 |
変更後 ini_set('session.gc_maxlifetime', 864000); // 10 days $GLOBALS['OpenPNE']['common']['session_idletime'] = 864000; // 10 days $GLOBALS['OpenPNE']['ktai']['session_idletime'] = 18000; // 5 hour $GLOBALS['OpenPNE']['admin']['session_idletime'] = 864000; // 10 day |
■487行目 Google Maps API keyを入力する (利用する場合)
// Google Maps API key
■Google AJAX Search API keyを入力する (利用する場合)
// Google AJAX Search API key
■499行目 Amazon Product Advertising API を入力する。(レビュー機能を利用する場合)
// Amazon Product Advertising API
———————————————–
4.public_html/config.inc.phpを修正する
———————————————–
public_html/config.inc.phpを修正する
1 2 3 |
変更前 define('OPENPNE_DIR', realpath('../')); require_once OPENPNE_DIR . '/config.php'; |
1 2 3 |
変更後 define('OPENPNE_DIR', realpath('openpne')); require_once OPENPNE_DIR . '/config.php'; |
※openpneフォルダを作る場合の書き方です。
———————————————–
5.FTPでファイルを階層毎にアップロードする
———————————————–
以下のようなファイル構造でアップロードします。
アップロードしたら、パーミッションを必ず変更すること。
アップロードのイメージとしては
1.public_htmlの中身は全てindexにアップロードする。
2.indexの階層に「openpne」というフォルダを作成する
3.残りのファイルをopenpneフォルダの中に入れる。
※ setupフォルダ・config.php.sample・LICENSEはアップロードしなくても大丈夫です。
– public_html (ディレクトリ名は変更可能)
├ config.inc.php (OPENPNE_DIR ディレクトリを指定)
├ index.php
… (その他public_htmlの中身)
└ openpne (フォルダを作成する)
├ bin
├ lib
├ var
│ ├ function_cache [777]
│ ├ img_cache
│ │ ├ gif [777]
│ │ │ ├ w_h [777]
│ │ │ ├ w_h_raw [777]
│ │ │ ├ w76_h76 [777]
│ │ │ ├ w120_h120 [777]
│ │ │ ├ w180_h180 [777]
│ │ │ ├ w240_h320 [777]
│ │ │ └ w600_h600 [777]
│ │ ├ jpg [777]
│ │ │ ├ w_h [777]
│ │ │ … [777]
│ │ └ png [777]
│ │ ├ w_h [777]
│ │ … [777]
│ ├ log [777]
│ ├ rss_cache [777]
│ ├ templates_c [777]
│ └ tmp [777]
├ webapp <— OPENPNE_WEBAPP_DIR
├ webapp_biz <— OPENPNE_WEBAPP_BIZ_DIR
└ webapp_ext <— OPENPNE_WEBAPP_EXT_DIR
———————————————–
6.ドメインのメールアドレスをcatch all に対応させる
———————————————–
■E-serverの場合 (Sendmail利用の場合)
1.catch allで転送されるアドレス(ユーザ)を作成する。
2.webmin に接続、ログインする。
お客様 webmin に接続、ログインしまして、
[ サーバ ] → [ Sendmail の設定 ] → [ アドレス マッピング ] と進み、
下記条件にて [ 作成 ] いたします。
メール宛先 : ● ドメイン にチェックしまして、テキスト欄へと
設定するドメインをご入力ください。( example.com )
送信先 : ● アドレス にチェックしまして、テキスト欄へと
配送先ユーザ名をご入力ください。( tech )
これで、catch all でメールアドレスのないアドレスに来たメールが全てtech@example.comで受け取ることが可能になります。
PROXのヘルプ参考
http://www.prox.ne.jp/faq/19_233_ja.html?highlight=prox
■xrea、coreserverの場合
※ CATCH ALL機能対応アカウント名「default」を指定されますと、アカウント名の存在しない外部メールをすべて受信可能になります。
例えば、
default@example.com
を、[ 転送のみ ] にして mailexample.com に飛ばす。
これで、catch all でメールアドレスを設定していないアドレスに来たメールが全てmail@example.comで受け取ることが可能です。
———————————————–
7.snsmail.shを作成、アップロードする
———————————————–
以下のコードをテキストファイルにコピーして「snsmail.sh」という名前で保存する。
文字コードは「UTF-8」改行コードは「LF」にしてください。【重要】
「■■■■■」の部分は利用するOPENPNEまでのディレクトリ階層を書いてください。
1 2 3 |
#! /bin/sh /usr/bin/php /■■■■■/openpne/bin/chkmail.php exit |
作成したsnsmail.shを
「openpen」フォルダの中 (bin、lib、varと同じ階層)にアップロードする。
snsmail.shのパーミッションを755に変更する。
■xrea、coreserverの場合
1 2 3 |
#! /bin/sh /usr/local/bin/php /virtual/アカウント名/public_html/■■■■■/openpne/bin/chkmail.php exit |
———————————————–
8.メールチェック用PHPを作成、binにアップロードする
———————————————–
作成するphpファイルは全部で4つ
chkmail.php
chkmail_ini.php
chkmailimg.php
cpmail.php
OpenPNE携帯投稿用PHP
上記のリンクから4つのコードをテキストファイルにコピーして、それぞれのファイル名で保存してください。
「■■■■■」の部分は利用するOPENPNEまでのディレクトリ階層を書いてください。
「●●●●●」の部分は [ 6.ドメインのメールアドレスをcatch all に対応させる ] で作成した、メールアドレスの情報を入力してください。
保存と編集ができたら、ファイルをopenpne/bin/の中にアップロードします。
パーミッションは4つのファイル共に755に設定してください。
参考にしたサイト
http://www.itsup.net/a02/article.php?story=20060830150102507
———————————————–
9.cron(クーロン)の設定をする。その1
———————————————–
■E-serverの場合
▼cronジョブを実行するユーザ
cronの実行失敗などのメールを受けとるユーザです
▼コマンド
1 |
/■■■■■/openpne/snsmail.sh>/dev/null 2>&1 |
※「■■■■■」の部分は利用するOPENPNEまでのディレクトリ階層を書いてください。
▼以下で選択された時刻に実行する
実行する時刻を選択します。全部すべてを選択
■xrea、coreserverの場合
分時日月曜日
0 * * * * *
[ public_html/OPENPNE_DIR/openpne/snsmail.sh>/dev/null 2>&1 ]
分時日月曜日
30 * * * * *
[ public_html/OPENPNE_DIR/openpne/snsmail.sh>/dev/null 2>&1 ]
これで、30分おきに携帯から投稿されたメールを読みに行くことができます。
※ジョブの最大実行時間は3分のようです。それを超えるものは強制停止されます。
上記cronの記述を参考に編集してください。
———————————————–
10.cron(クーロン)の設定をする。その2
———————————————–
メール投稿以外のcronの設定
RSS取得
1 |
/■■■■■/openpne/bin/tool_rss_cache.cron /■■■■■/openpne/bin/ /usr/bin/php |
デイリーニュース
1 |
/■■■■■/openpne/bin/tool_send_daily_news.cron /■■■■■/openpne/bin/ /usr/bin/php |
バーステーメール
1 |
/■■■■■/openpne/bin/tool_send_birthday_mail.cron /■■■■■/openpne/bin/ /usr/bin/php |
あしあとメール
1 |
/■■■■■/openpne/bin/tool_ashiato_update_log.cron /■■■■■/openpne/bin/ /usr/bin/php |
それぞれの最後に以下を足すと、エラーメールが来なくなります。
1 |
>/dev/null 2>&1 |
以下のファイルについて、アップロードしてあるファイルを一度ダウンロードして、
文字コードは、shift-jisのLFでアスキーで保存しなおします。
パーミッションは755にすること。
tool_rss_cache.cron
tool_rss_cache.php
tool_ashiato_update_log.cron
tool_ashiato_update_log.php
tool_send_birthday_mail.php
tool_send_birthday_mail.cron
tool_send_daily_news.cron
tool_send_daily_news.php