Posts tagged log
OpenPNE 管理画面を別ディレクトリにする
1OpenPNE の管理画面の URL は
http://www.example.com/?m=admin
という URL になります。
これは SNS の URL
http://www.example.com/?m=pc
などと同じ index.php を使用しています。
このため、管理画面だけ IP アドレス制限をしたいなどという場合に、.htaccess などで制限ができません。
OpenPNE のセットアップマニュアルには 「6-3. 管理画面を別ドメインで運用する (オプション)」という内容で別ドメインで運用する方法が紹介されています。
しかし、レンタルサーバなどでバーチャルドメインなどが使用できない場合に管理画面を別ディレクトリにして .htaccess などでIPアドレス制限や Basic 認証をかけられるようにする方法です。
- OPENPNE_DIR ├ bin ├ lib ├ var ├ webapp ├ webapp_ext ├ webapp_biz └ config.php - public_html ├ config.inc.php ├ index.php
の public_html 以下のファイルを public_html/admin ディレクトリ以下にコピーする
-public_html ├ admin (管理画面のディレクトリ名) ├ config.inc.php ├ index.php ・ ・ ・
コピーした public_html/admin/config.inc.php を書き換える
< ?php /** * @copyright 2005-2007 OpenPNE Project * @license http://www.php.net/license/3_01.txt PHP License 3.01 */ define('OPENPNE_DIR', realpath('../../')); // ディレクトリ階層が違うので合わせるために変更する require_once OPENPNE_DIR . '/config.php'; // 管理画面のベースURL設定 define('OPENPNE_ADMIN_URL', 'http://www.exmaple.com/admin/'); // 無効にするモジュール $GLOBALS['_OPENPNE_DISABLE_MODULES'] = array('pc', 'ktai'); ?>
これで、htt://www.exmple.com/admin/?m=admin でアクセスできるようになります。
注意点は ?m=admin をつけないとアクセスできません。
また、元の http://www.example.com/?m=admin でアクセスできないように
// 無効にするモジュール $GLOBALS['_OPENPNE_DISABLE_MODULES'] = array('admin', 'setup');
を public_html/config.inc.php に追加してください。
また、前回のエントリで紹介した 「特定ページを SSL で接続する」 で管理画面を SSL で接続する設定をしている場合は
// 管理画面のベースURL設定 define('OPENPNE_ADMIN_URL', 'https://www.exmaple.com/admin/');
のように URL も忘れずに https にしておかないとアクセスできなくなります。
OpenPNE 特定ページを SSL で接続する
3OpenPNE で個人情報などを送信するようなフォームや管理画面を SSL で接続する方法です。
SSL を使用するように設定を変更する
openpne/config.phpの以下の行を変更
特定ページを SSL で接続するように設定
define('OPENPNE_USE_SSL_PARAM', false);
をdefine('OPENPNE_USE_SSL_PARAM', true);
に変更
これだけで特定ページが SSL で接続されるようになります。
SSL を使用したいアクションを追加する
デフォルトで SSL 接続されるようになっているページ以外も SSL 接続にしたい場合は
$GLOBALS['_OPENPNE_SSL_REQUIRED'] = array( 'pc' => array( 'page_o_regist_prof', 'page_o_regist_prof_confirm', 'do_o_regist_prof', 'page_o_regist_intro', 'page_o_ri', 'page_o_regist_end', 'page_h_config_prof', 'page_h_config_prof_confirm', 'do_h_config_prof', 'page_h_config_ktai', 'do_h_config_ktai_send', ), 'ktai' => array( 'page_o_login', 'do_o_login', 'do_o_easy_login', 'page_o_login2', 'do_o_update_ktai_address', 'page_o_regist_pre', 'page_o_regist_input', 'do_o_insert_c_member', 'page_o_regist_end', 'page_o_password_query', 'do_o_password_query', 'page_h_config_prof', 'do_h_config_prof_update_c_member', 'page_h_config_easy_login', 'do_h_config_easy_login', 'page_h_config_mail', 'do_h_config_mail_insert_c_ktai_address_pre', 'page_h_pc_send', 'page_h_pc_send_confirm', 'do_h_pc_send_insert_c_pc_address_pre', 'page_h_config_password_query', 'do_h_config_password_query_update_password_query', 'page_h_config_password', 'do_h_config_password_update_password', ));
となっているところに SSL 接続したいアクションを追加していく。
例えば、携帯ではリマインダーは SSL 接続になりますが PC では SSL 接続ではありません。
そこで PC でも SSL にしたい場合は上の pc の配列にリマインダーのアクションの “page_o_password_query” を追加します。
これで http://www.example.com/?m=pc&a=page_o_password_query という URL は自動的に
https://www.example.com/?m=pc&a=page_o_password_query へリダイレクトされます。
注意点は上記の URL からフォームが送信される ?m=pc&a=do_o_password_query というURL も SSL にする必要があります。
これをしないとフォームの画面は SSL でも送信先が SSL ではなくなってしまいます。
PC 用のリマインダーを SSL にする場合は “page_o_password_query” と “do_o_password_query” の2つを追加する必要があるということです。
確認画面が入るフォームなどではフォーム画面表示アクション、確認画面表示アクション、実行アクションと3つ追加する必要があります。
ユーザに SSL を使用するか選択させるアクションの追加
ユーザが SSL を使用するか選択できるリストというのもあります。
$GLOBALS['_OPENPNE_SSL_SELECTABLE'] = array( 'pc' => array( 'page_h_config', 'do_h_config_1', 'do_h_config_2', 'do_h_config_3', 'page_o_login', 'page_o_tologin', 'do_o_login', ), 'ktai' => array( 'page_h_config', ));
このリストに追加するとフォームの右上やリンクの下に SSL 用のリンクが表示されユーザが SSL の使用をするか選択することができます。
CakePHP 携帯でセションを有効にする
2CakePHP で携帯サイトの開発をしています。
ドコモなどはクッキーが使用できないのでセションID を URL で引き継がないといけないのですが、PC サイトではクッキーでセションID を保持したいところです。
携帯サイトと PC サイトが共存しているときの携帯用のビューを表示させる方法は下記が参考になります。
CakePHP 携帯用ビューを表示する | Shin x blog
また、携帯でのアクセス時にクッキーを使用せずにセション を保持するのは下記が参考になります。
Docomoとセッション フォーラム – CakePHP Users in Japan
私は上記の方法に
ini_set('session.use_trans_sid', 1);
を入れて使用しています。
全てのリンク、フォームにセションID が付加されるので便利です。
ただリダイレクトするときだけ、
$this->redirect('/controller/action/'.session_name().'='.session_id());
のようにセションIDを入れました。
あとビューを書くときに覚えておくとよいのが、ini_set(‘session.use_trans_sid’, 1); を指定したときにリンクを http:// から始まる URL を書くとセションID は当然ですが付加されません。相対パス、絶対パスなどの自サイト内へのリンクのみセションIDが付加されます。
自サイト内のリンクに http:// から書くとセションID が付かないのではまらないように。
OpenPNE コンテンツをセンター寄せにする
0OpenPNE のデザインは左寄せなのですが、これをセンター寄せに変更したいという要望がありました。
最初は CSS に
.ext_sub_container { width: 720px;margin: 0px auto; }
を追加してみたのですが、やはり IE ではうまく表示できません。
そこでテンプレートを見直すと
inc_header.tpl 339行目
<div align="left">
というを
<div align="center">
に変更したらうまく行きました。
ちなみに OpenPNE テンプレートのカスタマイズ でも書きましたが
/openpne/webapp/modules/pc/templates/inc_header.tpl を
/opnepne/webapp_ext/modules/pc/templates/inc_header.tpl に
コピーしてからカスタマイズすると元のファイルを残したままカスタマイズできるのでお勧めです。
その場合は /openpne/config.php の
define('USE_EXT_DIR', false);
を
define('USE_EXT_DIR', true)
に変更するのをお忘れなく。
北海道旅行 その4 スープカレー Massarra (マッサーラ)
0旭山動物園の帰りに札幌でスープカレーを食べました。
カリー専門店 Massarra (マッサーラ)というお店です。
女性のオーナーがやっているお店で店員さんもすごく感じのいい方でした。
スープカレーは初めて食べたのですがすごくおいしく気に入りました!
ご飯のおかわりは自由なのもうれしいサービスですね。
北海道旅行 その3 札幌ドーム展望台
1最終日は天候が大荒れだったので札幌ドームの展望台へ行ってみました。
時間が合えばドームツアーに参加しようと思っていたのですが間に合わなかったので展望台のみです。
チケットを購入後エレベータで3階に行くともう既に外野席よりも上に着いていました。
そこから2つエスカレータを上がると展望台です。
また、展望台以外にもセンターの後方にはキッズルームがあり、無料で子供が遊べます。
行った日は天候が悪かったためかお母さん達がお弁当持参で子供連れてたくさん遊びに来ていました。
キッズルームは無料なので駐車場代だけでかなり遊べるので近所にあれば行っちゃいますね。
北海道旅行 その2 旭山動物園
02日目は大人気の旭山動物園へ。
キロロに泊まったので片道3時間半から4時間かかるとホテルの方に言われたので行くのを迷いましたが、覚悟を決めて出発。
結局休憩を入れて3時間くらいで着きました。(高速道路は決して飛ばしていませんよ)
昼前に着いた時にはすごい混雑でしたね。お弁当は売り切れていてちょっと残念。
旭山動物園は見せ方がすごくうまいのは有名ですが、いたるところにある手書きの看板やポスターがいい味出してます!
ペンギン
入り口に近いこともあるのか、入るのに10分ほど待つ列が出来ていました。
アザラシ。
ものすごい人の数。パイプの中をアザラシが通ると大歓声が。
北海道旅行 その1 モエレ沼公園
1イサム・ノグチが設計したモエレ沼公園
新千歳空港からレンタカーで1時間弱くらいで着きました。駐車場は広大で無料でした。
園内もかなり広く1日使ってゆっくりするのがいいかもしれません。
うちの子供は遊具に大興奮して遊んでいました。