OpenPNE作業 のバックアップソース(No.6)
※※このサイトは2012年頃より更新を停止しています。※※
*OpenPNE作業 オープンソースのSNSツール。 導入/利用の自分用殴り書きメモ。 #contents **2.2.8→2.4.2へのアップグレード [[参考>http://docs.openpne.jp/?cmd=read&page=SETUP%2F84&word=2.4%20%A5%A2%A5%C3%A5%D7%A5%B0%A5%EC%A1%BC%A5%C9]] bizの機能は、とりあえず俺のサイトでは要らない。 +アーカイブをリモートサーバ上で展開 +ローカルPCでアーカイブを展開 +ローカルPCでテンプレートを編集してリモートサーバ上で展開した方に上書き +config.phpを編集 2.2.8の頃よりも設定項目が増えているらしい。 下記の項目を自分サイト用に変更して、リモートサーバ上で展開した方にアップロード --//define('OPENPNE_URL', 'http://sns.example.com/'); --//$GLOBALS['_OPENPNE_DSN_LIST']['main'] = array --//define('ENCRYPT_KEY', ''); --//define('MAIL_SERVER_DOMAIN', 'mail.example.com'); --//define('OPENPNE_DEBUGGING', 1); --//define('OPENPNE_IMG_CACHE_DIR', OPENPNE_DIR . '/public_html/img'); --//define('MAIL_ADDRESS_HASHED', true); --//define('MAIL_DEBUG_LOG', true); +public_html/config.inc.phpを編集 自サイトのディレクトリ構成に合致するように、下記のrealpathを調整してリモートサーバ上で展開した方に上書き。 --//define('OPENPNE_DIR', realpath('../')); +public_html/index.phpを編集 ローカルPCでpublic_html/index.phpを編集して自分スクリプトをincludeするようにコードを加える。 そしてリモートサーバ上で展開した方に上書き。 +upgrade-2.2to2.4-mysql40.sqlをMySQL側で実行する。 MySQLは、マルチバイト環境にとって4.0と4.1とで大きな変更がある。 そこで4.0以前のMySQLを使ってる場合はupgrade-2.2to2.4-mysql40.sqlを使えってことだろう、と解釈した。 SQLを実行する時は--default-character-set=utf8を付けるのを忘れないようにした方がいいらしい。phpMyAdmin上ではどうすんだ? つーか、俺の使ってるサーバでコマンドラインから上記を付加して実行したらこんなことゆわれた。 mysql: Character set 'utf8' is not a compiled character set and is not specified in the '/usr/local/share/mysql/charsets/Index' file お前もか!!(どこと比べてるんだか しゃーないからdefault-character-setを指定しないで実行した。 まぁその後文字化けは特に発生してないようなので、だいじょぶそう。 次のアップグレードの時はphpMyAdminからSQL文を直接実行しよう。 phpMyAdminの画面表示文字コードがutf-8になってりゃ問題ないんちゃうん?ぐらい安易な考え。 +リモートサーバ上で展開した方のpublic_htmlをターゲットのドキュメントディレクトリと完全入れ替え。 +アップグレード作業完了 暗号化周りで不具合(管理画面からのメールアドレスの参照時文字化けとか)があったら、 [[ここ>http://docs.openpne.jp/?cmd=read&page=TROUBLE%2F257&word=2.4%20%A5%A2%A5%C3%A5%D7%A5%B0%A5%EC%A1%BC%A5%C9]]を見ておくとよいかも。 config.phpの define('OPENPNE_USE_OLD_CRYPT_BLOWFISH', false); ってところをtrueにすることで回避できる場合があるらしい。 **アップグレード時に再設定するHTMLテンプレート -''携帯からの登録画面'' 利用規約とかプライバシーポリシーは後回し。 --OpenPNE/webapp/modules/ktai/templates/ ---o_regist_pre.tpl -''携帯メール投稿の暫定回避策'' バーチャルドメイン環境に設置してるもんだから、メールアカウントの流動に対応できない。 そのため下記のファイルからメール投稿のアンカーをコメントアウト --OpenPNE/webapp/modules/ktai/templates/ ---c_bbs.tpl ---h_home.tpl **スキンの修正 -ログイントップページ --skin_login.jpg --skin_login_open.jpg -ナビゲーションバーの文字列を変更。 --skin_navi_c.jpg --skin_navi_c_2.jpg --skin_navi_f.jpg --skin_navi_f_2.jpg --skin_navi_h.jpg --skin_navi_h_2.jpg -検索ボタン --button_search_1.gif --button_search_2.gif --button_search_3.gif -ログイン前ヘッダ --サイトタイトル --skin_before_header.jpg -ログイン後ヘッダ --サイトタイトルと検索ボタンとカテゴリ部分 --skin_after_header.jpg --skin_after_header_2.jpg -ロゴ画像 --no_logo.gif +++blank画像を作る +++文字の無い部分を、選択で縦一辺の矩形選択する。 +++張り付けで文字の無い部分を広げて、また選択、貼り付け繰り返す。 +++いったんblank画像を保存する。 +++blank画像に文字を入れる。 +++新規レイヤーを背景透明で作成する。 +++文字ツールで文字を入力する。 +++透明レイヤーと結合する。 +++結合したレイヤーを複製する。 +++複製したレイヤーのモードを適宜変更する。 +++ガウスアンぼかしを適用する。 +++調整が済んだらjpgかpngでエクスポート保存。 --no_logo_small.gif 上記で作ったやつとかを画像拡大縮小で小さくする。 **受信メールの処理 -''プログラムの構成'' --初期includeする構成ファイル OpenPNE_DIR/bin/mail.php OpenPNE_DIR/bin/config.inc.php OpenPNE_DIR/config.php OpenPNE_DIR/webapp/init.inc OpenPNE_DIR/lib/PNE/KtaiMail.php OpenPNE_DIR/webapp/lib/mail/sns.php --ミソ sns.phpで下記のようにして宛先アドレスの分解をしている。 list($to_user, $to_host) = explode('@', $this->to, 2); その後to_userを解析してmatchesでユーザIDとかトピックIDとかを割り出してる。 -''受信メールを処理するプログラムに食わせるにあたり'' --catch all 「catch all」って、ドメイン宛のメールを、アカウントの有無に関わらず受信処理するってことっぽいね?これができれば完全に機能が使いきれるはず。これができるメール環境から転送ってのも手。 --catch all できない環境の場合 http://tejimaya.org/openpne/docs/2_2/OpenPNE_Setup.html#section3-2 バーチャルドメイン配下では上記URLで求められているような新形式の設定ができない。 旧形式の方も固定アドレスであるgetとblogだけしか設定できない。 sendmail環境の場合は.forwardでプログラムに食わすとかなんとか情報があるけど、.fowardはアカウントごとの処理。 バーチャルドメイン配下だと配送までの間にmaildropも挟まってる可能性あり。 maildropの環境における設定のミソは.mailfilter。 該当アカウントのMailディレクトリ(Maildir形式)に.mailfilterを置く。 コマンドの記述は to "| /usr/local/bin/php OPENPNE_DIR/bin/bin/mail.php" といった具合に、「|」の次に半角スペースを入れてあげないと動作しないので要注意。 参考 http://sky.ap.teacup.com/webpg/ http://www.is.titech.ac.jp/~yanagis0/text/maildrop.html http://faq.sakura.ne.jp/wiki/backup/A5E1A1BCA5EB.txt http://q.hatena.ne.jp/1128498655 **登録したメールアドレスの保存されているテーブル c_member_secure ここにバイナリデータとして保存されている。 削除するにはどうしたらいいんだ? ID1のユーザの携帯のアドレスを削除できなくて困った。 http://docs.openpne.jp/?TROUBLE%2F195 にて解決。SQL文を下記のように直接打ちゃいい。 UPDATE c_member_secure SET ktai_address = '' WHERE c_member_id = 1; **ちょいメモ ***参考リンク -''外部ブログRSS取り込みについて'' OpenPNEドキュメントサイトのFAQ/9より。 http://dot9music.blog.shinobi.jp/Entry/6/ -''NEKOGET_PNESKIN'' OpenPNEのスキンテーマを自動生成する。 http://pneskin2.nekoget.com/