2010/08/16

apacheのコツ

apacheのコツをいくつか。

configはどこにある?

まず、プロセスを見ましょう。すると、httpdなプロセスがいくつかいるはず。
このバイナリに"-V"オプションをつけて実行してみましょう。
ファイルシステムのパーミッションに阻まれない限り、non-rootユーザでも実行できます。
すると、こんな感じの情報が出てきます。

# httpd -V
Server version: Apache/2.2.3
Server built: Apr 4 2010 17:19:54
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

で、何を見るべきかというと、-Dオプションに続く「HTTPD_ROOT」と「SERVER_CONFIG」を見るのです。このふたつをくっつけたところを見に行ってみると、httpd.confがいるはずです。


ここから先はソースで入れるような人には向かないかもしれませんが、RPM版apacheについていくつか。

httpd.confは初期設定を除いてできるだけいじらない

httpd.confはグローバルな設定(スコープがGlobalなconfig)に止めて、それ意外はできる限り書かないようにしましょう。
VirtualHostの設定なんて書くべきじゃありません。入れておくべきはこのぐらいでしょうか。
  • グローバルパラメータの設定
  • MPMの設定
  • モジュールの読み込み設定
  • 各種インクルード

じゃあ、それ以外はどこに書くの?


Includeを活用しましょう

それは、役割ごとにIncludeするんです。
RPM版apacheのデフォルトでは、こんな記述があります。

Include conf.d/*.conf

サーバ上のパスだと/etc/httpd/conf.d/になります。

ここにいくつかファイルがあるはずですが、不要なものは名前を変えてincludeされないようにしましょう。mod_perlを使わないのであれば、perl.confをperl.conf.offとかに変えるだけ。拡張子が".conf"のものしか読まれないので、これで充分です。

バーチャルホストについてはいろいろやり方がありますが、自分のやりかたを参考までに書いておきます。
  • conf以下にvhostsというディレクトリを掘る
  • vhostsの中に、バーチャルホストのコモンネーム.confでファイルを作成し、該当するバーチャルホストの設定を書く
  • conf.dの下にvhosts.confというファイルを作成する
  • このvhosts.confに、必要なNameVirtualHostを列記し、その下に、Includeでバーチャルホストファイルを読み込んでいく。
こうすることで、httpd.confに余計な改変を加えず、好きな順番でバーチャルホストを読み込ませることができます。
何でバーチャルの順番に気を遣うか。IPアクセスされた際に、最初に設定されたバーチャルホストが反応してしまうので、どのバーチャルホストを先頭に持ってくるかが重要なのです。


まとまりのない文章ですいません。

2010/07/16

WindowsXPにおけるSpeedStep

昔、どっかで調べたことです。
今さら使うのかどうか分かりませんが、とりあえずメモ。


Constant:常に低い駆動周波数でCPUを駆動
Adaptive:CPU使用率が高いときに高い駆動周波数に設定
Degrade:低い駆動周波数でCPUを駆動し、バッテリーの残り容量に合わせてCPUのパフォーマンスを下げていく
None:常に高い駆動周波数でCPUを駆動

電源管理アプレットでの設定 → ACアダプターつき / ACアダプターなし
自宅または会社のデスク → None / Adaptive
ポータブル/ラップトップ → Adaptive / Adaptive
プレゼンテーション → Adaptive / Degrade
常にオン → None / None
最小の電源管理 → Adaptive / Adaptive
バッテリの最大利用 → Adaptive / Degrade

追記
HKU\.DEFAULT\Control Panel\PowerCfg\PowerPolicies\数字

2010/07/11

初体験

大地53をロバ化された...(泣)

ちなみに今日の収穫。
・ヌイグルミ7
・OC3
・ロバ2
・テーマ1
・わらし2

...ちょっと低めだな。

もはやハードウェアに縛られている時代ではない

本日、インターンの対応をやっていて思ったこと。

クラウドに何を求めるのか?

少なくとも、「新しい技術」ではない。
あくまでクラウドとは「基盤」である。
その上にどんな「サービス」があるのかが重要だ。

電車が時間通りに運行されていれば、最低限まともな電車であると認識する。
線路の上を走っていようがタイヤで走っていようが、ACだろうがDCだろうが、狭軌だろうが標準軌だろうが、そんなものは関係ない。それらはあくまで「基盤」である。我々が求めるものは「サービス」である。

サービスは、利用できるのであればその形態は問わない。
iPhoneだろうが、Netbookだろうが、PCだろうが。
googleだって使えるし、evernoteも然り。
そう、ネットにさえ繋がれば、どんなデバイスでも同じように使えるのだ。

2010/07/06

Firefoxのアドオンpart2

前回に引き続き、こんどは会社で使っているPCについてです。
part1で出てきたものについてはタイトルのみ。

Elasticfox
Amazon EC2のフロントエンドツールです。
Evernote Web Clipper
FireBug
HTML関連のエラーを見つけてくれるやつなはずです。
FireGestures
自宅PCに入れているのとはまた別のジェスチャーアドオン。All-in-one Gesturesよりはシンプル。
HTML Validator
HTMLの構文チェックをしてくれます。
Live HTTP Headers
Web Developer
開発者向けのツールだった気がする。人から薦められて入れたので、ちゃんとは覚えてないです。
YSlow
ページのレスポンスタイムをブラウザから計測できるツールです。


あとは会社で使っているPCがもう1台ありますが、それはまたの機会に。

2010/07/04

Firefoxのアドオンpart1

ちょっと気になったので、各環境のFirefoxで自分がどんなアドオンを入れているか調べてみました。隠れた目的としては、各環境で適当な管理状態になっているアドオンを、この際統一してみよう、というのがあります。


All-in-One Gestures

マウスジェスチャーを実現するアドオンです。ローカライズされており、かなり細かいところまで設定が可能。

Compact Menu 2

アドレスバーのところにメニューを押し込むことができるアドオンです。本来のブラウザ領域をできるだけ広く取ろうとすると、メニューバーの領域すらももったいなく感じたために入れてあります。

Evernote Web CLipper

Evernoteにメモを送り込むためのアドオンです。iPhone使いには必須。

FxIF

画像のプロパティを開いたときにExIFのデータが見られるようにするアドオンです。意外に見るツールがないんですよね。

Live HTTP headers

HTTPプロトコルのリクエストやレスポンスをそのまま見ることができます。仕事上必須アイテム。

Tab Mix Plus

タブの挙動を細かく制御できるアドオンです。タブを閉じたあと、どのタブをアクティブにするかを制御できるので、別のタブブラウザからの乗り換えを吸収するのに良いかも。

TwitterBar

アドレスバーからtwitterに投稿できるアドオン。アドレスバーに文章を入れて、右端にあるボタンを押すことで投稿できます。わざわざ別ウィンドウを開かなくてもそのままtwitできるのがポイント。

タブカタログ

まんまですね。Ctrl+Tabでタブを切り替えるときに現れるので便利。



他の環境についても書いていきますが、週明け以降に。
気になったのがあれば是非お試しください。

2010/06/15

Oops!



あらめずらしい

当たりすぎだろ

今日の隕石運、かなりイイ感じ。
夜中はダメ隕石と予想してミサイル2発を置いたら正解。
日中は朝からアイテム隕石5連発。しかもテーマは1回だけ。

どこまで続くかなぁ。

subversionのフックを使ってコンテンツ管理

subversionでコミットをかけた際に最新リポジトリを別ディレクトリに吐き出す方法について、軽くテストしてみました。


  1. $REPOS/hooks/post-commitを新規に作成する。

  2. post-commitに下記の内容を書く。


    /usr/bin/svn export --force repos-path documentroot


  3. chmod +x post-commit



とりあえず目的は達成。あとは、まるまる上書きしたくない場合にどうするかをもうちょっと考えてみます。確認結果については別トピックではなくここに追記する予定。

追記。
exportとcheckoutの違いを挙動から見る限りでは、リポジトリ情報(つまり.svn)が一緒に落ちてくるかどうかの違いっぽいです。
また、importコマンドのテストも行ったんですが、パーミッション管理が必要なツリーは管理に向かないですね。例えば/etc以下の管理とか。まあ、リポジトリにアクセスするときに特定のユーザを指定しているので、当然といえば当然ですね。

2010/06/14

はやぶさ public viewing

宇宙探査船「はやぶさ」が7年の月日を経て地球に帰還するという瞬間を少しでも楽しむべく、相模原は淵野辺にある「宇宙科学研究所」まで行ってきました。


今回見た場所は「研究管理棟」というところで、「はやぶさ」を実際に地球までコントロールする管制室もこの建物の中にあるそうです。正門から1分ほど歩いた正面にあるのですが、そのすぐそばにはM-V(ミューファイブ)型ロケットやM-3SII(ミュースリーエスツー、でいいのかな?)型ロケットの実物模型も展示してあります。長い期間相模原に住んでいましたが、近くにこんなに楽しめるところがあったのは意外です。






会場はこんな感じ。1階入ってすぐのところが「展示室」となっているのですが、100人ぐらいだろうというJAXAの予想を大きく上回り、400人近く来場していたそうです。残念ながらメインの会議室(管制室中継あり)は入館直前で満席になってしまったとのことで、展示室側に席を陣取りました。
進行スタイルとしては、「宇宙教育テレビ」と称したテレビ番組のようです。なので、MCのおにいさんとおねえさんがJAXAのTシャツを着て座っています。脇には大型のディスプレイも設営され、観覧席からもいろんな情報が見えるようになっていました。
プレスもいろいろ来ており、テレビカメラや新聞などのメディアがいたようです。


コスプレイヤーまで現れました。この方、あとでインタビューされていたのですが、兵庫から来たそうです!登場したころはまだはやぶさは高度7万km近くを飛んでいたのですが、一足先に「おかえりなさい!」といったところでしょうか。

twitter端末がMC席になく、観客のほうが先に各種イベントに気付いていたのが残念でしたが、みんなでワイワイ楽しむのはやはり楽しいですね。研究所を後にしたのは夜11時半過ぎでしたが、ちょっと無理してでも行って正解だったと思います。