debuild で失敗したときとりあえず patch だけはずす
$ QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null pop -a -R -f
SetEnvIf X-Forwarded-Port 443 HTTPS=on
Apache の環境変数の HTTPS = "on" とかしかチェックしないクソライブラリのために、LBの裏側にいる Apache でこんな設定を書きました、という話。
SetEnvIf X-Forwarded-Port 443 HTTPS=on
X-Forwarded-Proto "https" のほうがいいのかもしれない?
まぁあと変数名なんだっけ、と調べるときにPHPの$_SERVER変数をつかったせいで、HTTP_X_FORWARDED_PORT とかみてていや当然なんだけど HTTP_ とか頭につかないし _ は - だし、とかで無駄に時間を使ってしまって、もうほんとPHP脳とかしょうもねえな、と思いました。
がんばります。
ec2-run-instances
$ ec2-run-instances ami-xxxxxxxx --availability-zone ap-northeast-1b --instance-type m1.small --instance-count 1 --group default --key hoge RESERVATION r-xxxxxxxx 68778599xxxx default INSTANCE i-xxxxxxxx ami-xxxxxxxx pending hoge 0 m1.small 2011-07-23T08:02:04+0000 ap-northeast-1b aki-xxxxxxxx monitoring-disabled instance-store xen sg-xxxxxxxx default
こんな感じで起動する。
tag付けみたいなものはあとからする感じのようだ。
$ ec2-create-tags i-32ade233 --tag="Name=hoge-1" --tag="Role=web" --tag="Service=fuga" TAG instance i-xxxxxxxx Name hoge-1 TAG instance i-xxxxxxxx Role web TAG instance i-xxxxxxxx Service fuga
Indirect modification of overloaded property Hoge::$fuga has no effect
的なエラーがでた。
__get() によって返される値は参照ないから変更したって意味ないよって言う事。
<?php class Hoge { private $a = array(); public function __get($name) { return $this->a[$name]; } public function __set($name, $value) { $this->a[$name] = $value; } } $hoge = new Hoge();
に対して、
$hoge->fuga = 1;
的なことをした場合、これは、__set() が呼ばれるのはご存知のとおりだけど、例えば、
$hoge->fuga[1]['hoge'] = 1;
などとしたら、配列アクセスされた時点で __get() が呼ばれる。で、しかもその値はもちろん値返しされてるわけなので、それに代入とかしても全然意味ないよ、と言われている。
まあ、意外と分かりづらい且つ発生しにくいエラーかもしれないなあ。
nginx + PHP-FPM な構成で PATH_INFO を受け取る
- @ /etc/nginx/conf.d/*
location ~ /index.php/ { #fastcgi_split_path_info ^(.+\.php)(.*)$; # <- この設定は、nginx 0.7 以降じゃないとないらしい fastcgi_pass backend; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/var/nginx-www/dlt/html$fastcgi_script_name; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; # ... 他にも色々設定を... }
fastcgi_param 的なやつで環境変数的なアレに、$fastcgi_script_name を渡してあげるのが良いのね。