Archive for the ‘server’ Category

PHPで実行時間を測定する

月曜日, 2月 25th, 2008

簡単なのだけど忘れやすいのでメモ。

PHP:
  1. <?php
  2.  
  3. $time1 = microtime();
  4.  
  5. // なんらかの重い処理
  6.  
  7. $time2 = microtime();
  8.  
  9. echo $time2 - $time1;
  10.  
  11. ?>



どこでも vi

日曜日, 12月 23rd, 2007

仕事で本格的に vi を使い始めて一ヶ月ちょっと。やっと慣れてきました。慣れて来たは良いけど、普通の GUI のエディタやブラウザのテキスト入力時まで ESC 押したり、dd 押したりしてしまいます。慣れは怖い。いままで敬遠していたのですが、慣れてしまえば vi ってものすごく使いやすいのかも、と思ってきました。

ブログを書いてる時も vi だったら楽なのに…という事が多々ありまして、ブラウザ上で vi 入力できる部品とか、有るんじゃない?と思って探したら、案の定、有りました。実用的ではないかもしれません。

MOONGIFT: » JSVim:オープンソースを毎日紹介
http://gpl.internetconnection.net/vi/

Emacs もあるよ。

9ne - A web based code edtior



ssh-agent でパスフレーズ認証省略したい。

木曜日, 12月 20th, 2007

ssh-agent に秘密鍵を登録してパスフレーズ無しで scp コマンドを実行しようと思っているのですが、うまくいきません。
key-gen で ~.ssh 以下に id_rsa という鍵を作ってユーザールートで

CODE:
  1. $ eval `ssh-agent`
  2. Agent pid xxxx
  3. $ ssh-add .ssh/id_rsa
  4. Enter passphrase for .ssh/id_rsa
  5. Identity added: .ssh/id_rsa(.ssh/id_rsa)

んで、他マシンから scp コマンドを実行してファイル転送してもパスワード聞かれる。なんでやろ?
// TODO 解決したら後で書く

@IT:sshでパスワードなしにログインするには
ITmedia エンタープライズ : Linux Tips「ssh-agentでパスフレーズをキャッシュさせたい〜ノンパスワードの実現〜」



macでPPTPを使う

土曜日, 10月 13th, 2007

特に使う予定はないのだけど、 mac から PPTP で会社の Win マシンに接続する方法のメモ。

アプリケーション > インターネット接続 で新しい VPN (PPTP) 接続を作成。

参照
MacとWindowsを繋ごう (無線LANとかVPNとか)
VPN on Mac OS X

Microsoft Remote Desktop で会社のマシンにつなげる。
Remote Desktop Connection for Mac
他にもクライアントはいろいろあるみたい。

接続はできるのだけど、何らかの理由で強制的に切断される。S さんに調べて頂いたら、MTU が大きすぎてサーバー側から切断されていた模様。あー、また知らん単語が出てきましたよー。



サーバーを内向的にする

月曜日, 4月 16th, 2007

BASIC認証を通してしかアクセスできないようにする
アクセス制限したいディレクトリに .htaccess と .htpasswd というファイルを作成して、以下の設定をする。
.htaccess ファイルに

AuthUserFile /ディレクトリのパス/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your password. "
AuthType Basic
require valid-user

.htpasswd ファイルに

ユーザー名:暗号化したパスワード

.htaccess実践活用術 さんの # IDとパスワードによるアクセス制限(Basic認証)の説明が分かりやすいです。

SSL以外ではアクセスできないようにする
.htaccess に SSLRequireSSL を追加する。

 よく囁かれる余談ですが、自分と違う分野で働いている友人に「IT系の人ってサーバーとかパソコンのことを擬人化するよね」と言われた。筐体を指さしながら「この人、ファイルサーバーにしていい?」とか「(このサーバーが)お亡くなりになった」とか言うのが面白いらしい。



鍵?

月曜日, 4月 2nd, 2007

暗号技術入門-秘密の国のアリス
 会社のサーバーで SSL を扱うので勉強してみようと思って読んでみた。なにこれ。面白い。技術書なのに推理小説を読んでいるときみたいな心持になる。
 結城 浩さんの本は興味を持つきっかけを与えてくれるような書き方をされているので本当に面白い。Javaでもお世話になりました。



画面表示の速度改善

月曜日, 1月 8th, 2007

Windows Server 2003上で ASP.NET + SQL Server 2005 の構成で Webページを表示する速度が遅い。

考えられる原因
・プログラムがどこかで遅い処理をしている
・クライアント側のネットワークが遅い
・サーバー側のネットワークが遅い

処置
・SQL Server 2005 の使用メモリを全体の約半分にしてみる。放って置くと SQL Server は際限なくメモリを使ってしまうので、それを制限する。SQL Server Management Studio の左ペインでサーバーのプロパティを開き、最大サーバーメモリを設定する。
・IIS の設定で、HTTP 圧縮をしてみる。サーバーとクライアントの間のデータ転送を圧縮して行う。
・遅い処理のコードレビュー
・IIS のリサイクルタイミングを増やす。そのままだと、リサイクルの際にセッションが切れてしまうので、State Service を利用する。
 参考 [ASP.NET]セッション情報を外部プロセスで管理するには?

 以上を試してメモリ消費は少なくなったのだが、まだまだ画面遷移に時間がかかるので Ajax で非同期通信を取り入れ画面遷移を無くした。断然、表示が速くなったので、お客さんに好評。画面表示が早くても遅くても、お客さんの作業進捗率はあまり変わらないようだ。しかし「さくさく動く」とユーザーに感じさせることは重要だと思い知らされた。



grep

月曜日, 9月 25th, 2006

本日のコマンド。
bzcat yyy_log-20060923.bz2の中のxxxという文字列を含む行だけ出力。

> bzcat yyy_log-20060923.bz2 | grep xxx

いちいち解凍せんくていいんや。



SoftwareRAIDで困った

水曜日, 8月 16th, 2006

 SUSE Linux のカーネルのバージョンがあがっていたのでアップデートしたら、OSが立ち上がらなくなりました。どうにもこうにもならなくなったので、Sさんに助けて頂いた。どうやら、SoftwareRAIDの定義ファイル /etc/mdadm.conf の先頭行が消えていたみたいです。
 Linuxにはどうにか慣れてきたけど、こういうときにはまだ右往左往してしまう。

追記 2006/08/29
Sさんが社内wikiにメモしてたものを了承を得て掲載。個人的にもメモっておきたかったので。

1) Rescue環境で起動し、rootでログイン。(OpenSUSEのCD1から起動→Rescue)

2) mdデバイスに、物理ディスクを結びつける。

# mdadm -A /dev/md0 /dev/sda1 /dev/sdb1
# mdadm -A /dev/md1 /dev/sda2 /dev/sdb2
# mdadm -A /dev/md2 /dev/sda3 /dev/sdb3
# mdadm -A /dev/md3 /dev/sda5 /dev/sdb5
# mdadm -A /dev/md4 /dev/sda6 /dev/sdb6
# mdadm -A /dev/md5 /dev/sda7 /dev/sdb7
# mdadm -A /dev/md6 /dev/sda8 /dev/sdb8
うちのサーバーはこんな感じで、以下の通りの領域割当となっている。
md0 (sda1/sdb1) : /
md1 (sda2/sdb2) : (swap)
md2 (sda3/sdb3) : /usr
md3 (sda5/sdb5) : /var
md4 (sda6/sdb6) : /tmp
md5 (sda7/sdb7) : /home1
md6 (sda8/sdb8) : /home2

3) 適当なマウントポイントを作成し、/(ルート)パーティションをマウントする。

# mkdir /tmp/sysroot
# mount /dev/md0 /tmp/sysroot

4) その中の/etc/mdadm.confの情報を正しいものにする。

# echo "DEVICE /dev/sda* /dev/sdb*" > /tmp/sysroot/etc/mdadm.conf.new
# mdadm --detail --scan >> /tmp/sysroot/etc/mdadm.conf.new
# cat /tmp/sysroot/etc/mdadm.conf.new
(内容を確認して、正しいようならば差し替え)
# cp /tmp/sysroot/etc/mdadm.conf.new /tmp/sysroot/etc/mdadm.conf

5) マウントポイントを/として、作業環境を作成する

# chroot /tmp/sysroot
# mount /usr
# mount /var

6) 起動イメージを作成する

# mkinitrd -d /dev/md0

7) 可能な限りアンマウント処理を行って、再起動する

# umount /var
# umount /usr
# exit
# umount /tmp/sysroot
# reboot

OSが動かんくなったら、Rescueモードで起動。次にこうなったら私がやります…。



サーバーの情報を確認する

月曜日, 7月 31st, 2006

 Apacheのバージョンがあがったので、うちのサーバーもバージョンを上げた。ついでにSさんに教えてもらったことをメモ。

  • mod_info
    http://ドメイン/server-info/Apacheのサーバー情報を表示する。
  • mod_status
    http://ドメイン/server-status
    Apacheのサーバーステータスを表示する。
  • mod_status, mod_info の両方とも Apacheセキュリティ では

    ほかのものよりも危険性が高いため、それらのインストールが必要かどうかについて検討すべきモジュール

    と書かれている。
     セキュリティを考えて、この情報は外部からアクセスできないようにした方が良い。

    アイヴァン リスティク, Ivan Ristic, クイープ / オライリージャパン(2005/10)
    Amazonランキング:位
    Amazonおすすめ度: