スポンサーサイト
UbuntuでApache周りの初期設定
aptitude install apache2 libapache2-svn libapache2-mod-php5 -y
SSL
a2enmod ssl
$ mkdir /etc/apache2/ssl
$ make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/site.pem
default-sslで鍵のPATHを変更
SSLCertificateFile /etc/apache2/ssl/site.pem
SSLCertificateKeyFile /etc/apache2/ssl/site.pem
a2ensite default-ssl
Subversion
mods-available/dav_svn.confを編集
<Location /svn>
DAV svn
SVNPath /var/svnroot
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
htpasswd -c /etc/apache2/dav_svn.passwd $USER_NAME
svnadmin create /var/svnroot
後は
service apache2 restart
英語キーボードで日本語入力 - 超適当メモ
英語キーボードで日本語入力
レジストリを弄る・・・
・[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
LayerDriver JPN → KBD101.DLL (元: KBD106.DLL)
OverrideKeyboardIdentifier → PCAT_101KEY (元: PCAT_106KEY)
OverrideKeyboardSubtype → 0 (元: 2)
OverrideKeyboardtype → 7 (元: 8)
AltIME
Ctrl + shift + hjklでカーソル移動
キーマクロに以下を
/030023=002500
/030024=002800
/030025=002600
/030026=002700
IME切り替えをCapsLockボタンで。
普通に、英数をCapsLockにする、でやると、
IMEを切り替えるたびCapsLockがかかる珍現象に見舞われるのでダメ。
CapsLockと、何か要らないキーを入れ替えて、入れ替えたキーにIME切り替えを割り当てる。
英語キーマップに無い、無変換を、IME切り替えに割り当てて、CapsLockを右Ctrlに割り当てる
キー入れ替えで
/3A7B
/9D3A
IME起動キーで
007b
スキャンコードの取得
AltIMEオプション設定画面で、拡張>>ボタンを押し、ダイアログボックスを大きくする。そこにスキャン(VKey)という部分があるので、これを使ってスキャンコードを調べる。
ボタンを押すと、「^9D(11) v9D(11)」などと表示される。この表示部分は新しいものが左、古いものが右にシフトしていく。読み方は、
v9D(11) キーを押した(v) スキャンコード 9D
^9D(11) キーを放した(^) スキャンコード 9D
v,^は↑↓と同じように向きを表している。
キー設定の書き込み
高度な設定画面にて、キー入れ替を書き込む。
/3a9d/1d38
これは、/3a9dで、CapsLock(3a)→左Ctrl(9d)、/1d38で左ctrl(1d)→左alt(38)の意味。
Shift+CapsLkキーでキャプスロックのON/OFFを切り替える
/01007B=001400
カーソル横のボタンを殺す
ブラウザの進む・戻るに割り当てられたりしていて超鬱陶しいので殺す。
AutoHotkey
http://www.autohotkey.com/download/
インストーラー版落とせば、拡張子ahkにAutoHotkeyがbindされるので、インストーラー版を入れる。
kill_browser_button.ahk
上記ファイルを作って叩くだけでOK。
なんだけれど、実行ファイル作った方が楽。
C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exeがコンパイラ
そのまま実行すればGUIで起動
C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe /in kill_browser_button.ahk
を実行すれば
kill_browser_button.exe
が出来るので、これを実行すればOK。こいつをスタートアップに登録しておけば万事OK。
-----------
Windows7対策
レジストリに値追加
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layout に
[Scancode Map] というバイナリ値を追加
00 00 00 00 00 00 00 00
03 00 00 00 64 00 3A 00
3A 00 1D E0 00 00 00 00
CapsLockを右Ctrlの位置においやり、
CapsLockのキーを、F13に割り当てる。
ほんで、IMEの設定でF13をIMEオン/オフにすれば良い。
んで、これだとGoogleIMEが微妙になったりする(日本語入力中にエンターもBSも押せなくなるし、ON/OFFがトグルしない)。
この場合、GoogleIME側のキー設定で、左下のプルダウンに、定義済みのキーマップからインポート -> MS-IMEで設定をすべてインポートした後、
直接入力のF13でIME有効化だけがあるはずなので、
入力文字なし、変換前入力中、変換中それぞれF13でIMEを無効化すれば良い。
Hankaku/Zenkakuがどうせ無いので、こいつを全部F13にしてしまうと良い。
レジストリを弄る・・・
・[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
LayerDriver JPN → KBD101.DLL (元: KBD106.DLL)
OverrideKeyboardIdentifier → PCAT_101KEY (元: PCAT_106KEY)
OverrideKeyboardSubtype → 0 (元: 2)
OverrideKeyboardtype → 7 (元: 8)
AltIME
Ctrl + shift + hjklでカーソル移動
キーマクロに以下を
/030023=002500
/030024=002800
/030025=002600
/030026=002700
IME切り替えをCapsLockボタンで。
普通に、英数をCapsLockにする、でやると、
IMEを切り替えるたびCapsLockがかかる珍現象に見舞われるのでダメ。
CapsLockと、何か要らないキーを入れ替えて、入れ替えたキーにIME切り替えを割り当てる。
英語キーマップに無い、無変換を、IME切り替えに割り当てて、CapsLockを右Ctrlに割り当てる
キー入れ替えで
/3A7B
/9D3A
IME起動キーで
007b
スキャンコードの取得
AltIMEオプション設定画面で、拡張>>ボタンを押し、ダイアログボックスを大きくする。そこにスキャン(VKey)という部分があるので、これを使ってスキャンコードを調べる。
ボタンを押すと、「^9D(11) v9D(11)」などと表示される。この表示部分は新しいものが左、古いものが右にシフトしていく。読み方は、
v9D(11) キーを押した(v) スキャンコード 9D
^9D(11) キーを放した(^) スキャンコード 9D
v,^は↑↓と同じように向きを表している。
キー設定の書き込み
高度な設定画面にて、キー入れ替を書き込む。
/3a9d/1d38
これは、/3a9dで、CapsLock(3a)→左Ctrl(9d)、/1d38で左ctrl(1d)→左alt(38)の意味。
Shift+CapsLkキーでキャプスロックのON/OFFを切り替える
/01007B=001400
カーソル横のボタンを殺す
ブラウザの進む・戻るに割り当てられたりしていて超鬱陶しいので殺す。
AutoHotkey
http://www.autohotkey.com/download/
インストーラー版落とせば、拡張子ahkにAutoHotkeyがbindされるので、インストーラー版を入れる。
kill_browser_button.ahk
上記ファイルを作って叩くだけでOK。
なんだけれど、実行ファイル作った方が楽。
C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exeがコンパイラ
そのまま実行すればGUIで起動
C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe /in kill_browser_button.ahk
を実行すれば
kill_browser_button.exe
が出来るので、これを実行すればOK。こいつをスタートアップに登録しておけば万事OK。
-----------
Windows7対策
レジストリに値追加
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layout に
[Scancode Map] というバイナリ値を追加
00 00 00 00 00 00 00 00
03 00 00 00 64 00 3A 00
3A 00 1D E0 00 00 00 00
CapsLockを右Ctrlの位置においやり、
CapsLockのキーを、F13に割り当てる。
ほんで、IMEの設定でF13をIMEオン/オフにすれば良い。
んで、これだとGoogleIMEが微妙になったりする(日本語入力中にエンターもBSも押せなくなるし、ON/OFFがトグルしない)。
この場合、GoogleIME側のキー設定で、左下のプルダウンに、定義済みのキーマップからインポート -> MS-IMEで設定をすべてインポートした後、
直接入力のF13でIME有効化だけがあるはずなので、
入力文字なし、変換前入力中、変換中それぞれF13でIMEを無効化すれば良い。
Hankaku/Zenkakuがどうせ無いので、こいつを全部F13にしてしまうと良い。
HTMLをサニタイズ - CakePHP
bakeした際のコード、全部サニタイジングされてない・・・。オソロシア過ぎ。
かと言って、いちいち自分でサニタイズ、面倒臭すぎ。
なのでViewに渡す値は、全部サニタイジングするが吉。
これで良いのか・・・?
否、鉄板!!
大体、HTMLのタグ生かすところなんてほっとんど無い。
だから、HTMLのタグを生かしたいとこで、View側でHTMLのアンエスケープやってやりゃ良い。
これぞ作業効率上昇の秘訣。
実行効率は少々落ちるが、ポカやってセキュリティーホールが開くよりなんぼもマシ。
$APP/cake/libs/controller/app_controller.php
YES、楽々。
あーHTMLのアンエスケープまともなものphpにないのがな・・・困ったちゃん。そのうち作る(遠い目)。
viewVars使って良いの?説があるが、1.2で消える、とか情報あるが、1.3で消えて無いし、
コードの中でも使われているので大丈夫だろ。
つぅか、消す必要無いだろ、こう言うの。ってかアクセサ作れや・・・何で無いよ。
ってこた使って良いってこったろ。いちいちアクセサ作らずpublicって方針は俺大好きだがね。
$this->setすら要らん、と思うもの。
どこぞのにわかアーキテクトは文句言うだろうが、関係あるかぁ。
現場でカプセル化に助けられた事は皆無。
下手なカプセル化でアクセサが無く困った事なら数え切れないくらいある。
それが現実。みんなも身に覚えあるだろう?
かと言って、いちいち自分でサニタイズ、面倒臭すぎ。
なのでViewに渡す値は、全部サニタイジングするが吉。
これで良いのか・・・?
否、鉄板!!
大体、HTMLのタグ生かすところなんてほっとんど無い。
だから、HTMLのタグを生かしたいとこで、View側でHTMLのアンエスケープやってやりゃ良い。
これぞ作業効率上昇の秘訣。
実行効率は少々落ちるが、ポカやってセキュリティーホールが開くよりなんぼもマシ。
$APP/cake/libs/controller/app_controller.php
class AppController extends Controller {
function beforeRender() {
$this->viewVars = Sanitize::clean($this->viewVars, array(
'escape' => false,
'backslash' => false,
));
}
}YES、楽々。
あーHTMLのアンエスケープまともなものphpにないのがな・・・困ったちゃん。そのうち作る(遠い目)。
viewVars使って良いの?説があるが、1.2で消える、とか情報あるが、1.3で消えて無いし、
コードの中でも使われているので大丈夫だろ。
つぅか、消す必要無いだろ、こう言うの。ってかアクセサ作れや・・・何で無いよ。
ってこた使って良いってこったろ。いちいちアクセサ作らずpublicって方針は俺大好きだがね。
$this->setすら要らん、と思うもの。
どこぞのにわかアーキテクトは文句言うだろうが、関係あるかぁ。
現場でカプセル化に助けられた事は皆無。
下手なカプセル化でアクセサが無く困った事なら数え切れないくらいある。
それが現実。みんなも身に覚えあるだろう?
コンフィグ外出し - CakePHP
外出しコンフィグは、環境変数でスイッチングするのが便利。
http://blog.livedoor.jp/j_yuze/archives/51562130.html
を参考にちょいと変更。面倒臭いのでデフォルトでテスト用のサーバコンフィグを読むように変えた。
普通はcommonだけ読む、何て事も無いだろうしね。
$APP/config/common.php
に共通設定書いておいて、各環境毎のファイルを
$APP/config/test.php
ってな感じで置いて、値を上書きする。
本番環境の場合は、環境変数CAKE_ENVに値をセットしてやる。
Apacheなら
ほんで
$APP/config/production.php
値を呼び出す際は
でもイイが
コントローラー側なら
View側なら
$APP/cake/libs/controller/app_controller.php
参考と違って、beforeRenderでsetしていないのは、
controller側でviewに投げるconfigぶっ飛ばせても良いと思うから。
後は適当なデータを定義しておくべし。
common.php
test.php
http://blog.livedoor.jp/j_yuze/archives/51562130.html
を参考にちょいと変更。面倒臭いのでデフォルトでテスト用のサーバコンフィグを読むように変えた。
普通はcommonだけ読む、何て事も無いだろうしね。
$APP/config/common.php
に共通設定書いておいて、各環境毎のファイルを
$APP/config/test.php
ってな感じで置いて、値を上書きする。
本番環境の場合は、環境変数CAKE_ENVに値をセットしてやる。
Apacheなら
SetEnv CAKE_ENV production
ほんで
$APP/config/production.php
値を呼び出す際は
Configure::read('hoge');
でもイイが
コントローラー側なら
$this->config['hoge']
View側なら
で呼べる。$config['hoge']
$APP/cake/libs/controller/app_controller.php
function beforeFilter() {
Configure::load('common');
$cakeEnv = isset($_SERVER['CAKE_ENV']) ? $_SERVER['CAKE_ENV'] : 'test';
if (Configure::load($cakeEnv)) {
$this->config = array_merge(Configure::read('common'), Configure::read($cakeEnv));
}
else {
$this->config = Configure::read('common');
}
$this->set('config', $this->config);
}
参考と違って、beforeRenderでsetしていないのは、
controller側でviewに投げるconfigぶっ飛ばせても良いと思うから。
後は適当なデータを定義しておくべし。
common.php
<?php
$config['common']['hoge'] = 'HOGE';
?>
test.php
<?php
$config['test']['fuga'] = 'FUGA';
?>

