スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

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

vmwareでUbuntu11.04server使った時の注意

リブートすると画面真っ黒
ttyが7がデフォルトなのが原因
適当にttyを変える
がVMWareなので普通じゃCtrl + Altは使えない

Ctrl + Alt + Space
Ctrl + Alt + F1


と最初にCtrl + Alt + Spaceを押してやる必要がある

で、これを毎度やるのは面倒くさいので

/boot/grub/grub.cfgを編集

vt.handoff=7


vt.handoff=1

テーマ : Linux - ジャンル : コンピュータ

英語キーボードで日本語入力 - 超適当メモ

英語キーボードで日本語入力

レジストリを弄る・・・

・[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
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なら

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';

?>




テーマ : プログラミング - ジャンル : コンピュータ