Nacky - Snowland.net

Nacky(Issei Ishii)がDJ/Composerのようなふりして書き散らすblogサイト

Info

Nacky - Snowland.net - blogを移転しました

Archives

2010-01-30

バックアップを考える

状況
・ファイルサーバをLinux上のRAID5で構成.500GBx3の1TB.
・世代バックアップを同一ディスク内で週1で実行
・比較的毎日24時間使うことが多いのでバックアップ中に動作が遅くなるのが困る
・同一ディスク内なので飛んだらおしまい的な

アイディア
・別のHDDに取ればいいじゃないか
・別のマシンから読みに来るだけなら負荷もかからなくね?
・週1のバックアップのためだけに起動させておくのは電気代がもったいなくね?

希望
・安く,大容量
・RAID1か5である程度の信頼性がほしい
・バックアップ以外には使わない

解決案
・適当な安いPCにLinux入れてnfsで繋ぐ
・定期的にバックアッププログラムを走らせる
・タイマー起動,バックアップが終了したら自動でシャットダウン
・タイマーが無くてもファイルサーバからWOLパケットを投げてやればいいじゃないか

結論
Express5800/110GeでもS70FLでも買ってきてHDDたくさん載せればおしまいだー!
(ML115にしないのはいつはちゃん派だからSATAポートが少ないからです)

ということでそのうちやる.



15:36:16 - nacky - Category: Com/Tech - No comments - No Trackbacks

2010-01-27

PHPでbmpやtiffを扱いたい

PHPのGD関数だとimagecreatefromjpegとかでサクサクとjpegファイルを読み込めてとても便利なんですが,Windows BMPとtiffには対応していません.

Windows BMPに関してはDHKoldさんのimagecreatefrombmp関数(自力でbmpを読む)がありますのでありがたく使わせていただきます.
PHP: imagecreate - Manual #53879

じゃあtiffはどうするか.これがまた全然情報がない.
仕方ないのでとりあえずはtiff2pngという外部のプログラムを使うことにします.

tiff2png Home Page
PNG 利用術

Linux x86/glibc のバイナリがあるのでそちらをDL.
$ tiff2png -destdir <書き出し先> <tiffファイル>
動作確認.
あとはtmpnameなりを使ってテンポラリファイルを確保して,system()関数あたりで呼び出してやればOK.
# tiff2pngは-destdirを指定しないとカレントに書き出そうとするようで,パーミッション問題でややハマり.

追記
tiff2pngは拡張子.tiffや.tifだとリネームして.pngになってくれますが,tmpnameとかでテンポラリファイルとして拡張子なしのものを食わせると,後ろに.pngを追加したファイル名にしてくれます.

hogehoge.tif → hogehoge.png
hogehogetmp → hogehogetmp.png
20:54:54 - nacky - Category: Com/Tech ( PHP ) - No comments - No Trackbacks

Windows7のプレビューがファイルをロックしてしまう

「ファイルサーバ上にあるhtmlを編集してるんですけど,保存できないっておこられますー!」

ファイルサーバはsambaで組んであるのでsmbstatusで確認.
該当ファイルが DENY_WRITE で開かれている.

何かがロックかけっぱなしで死んだのかなー,ということで該当プロセスをkill.
smbstatusで確認すると,DENY_WRITEはなくなった.

再度アクセスしてもらう.
「また保存できませんー!」
確認すると,またDENY_WRITEで開いてるプロセスがある.

開いてもらってるクライアントPCはWindows7.
エクスプローラのプレビュー機能でhtmlの中身を見て,その上で編集しておりました.

プレビューで開きっぱなしのファイルは保存できない模様.
しかし相手のsambaの設定にもよるようで?ローカルファイルではプレビューしながら保存もできた.

とりあえず,現象は理解してもらってそのまま運用.
sambaのほうで対応できたりするのかな?
11:37:27 - nacky - Category: Com/Tech ( Windows ) - No comments - No Trackbacks

2010-01-23

IIS7,Windows7のメモ

Windows関連開発の方から「Windows7のマシンにしたらうまく動かないよー!」と言われたので手伝ったメモ.

HTTPエラー 500.19
0x80070005
IIS 7. 0 でホストされている Web サイトをアクセスすると、エラー メッセージ:「HTTP エラー 500.19-内部サーバー エラー」
c:\windows\system32\inetsrv\config\applicationHost.configあたりにIIS_IUSRSグループへの読み取り許可を与える.

HTTPエラー 401.2 Unauthorized
0x80070005
・IISの機能(Windowsの機能の有効化または無効化からたどれる)として使用したい認証用モジュールが入っているか確認
・セキュリティ>認証 で匿名認証が有効になってるか確認

HTTPエラー 404.2
0x800704ec
IIS 7. 0 を実行しているコンピューターでホストされている Web ページを訪問するときにエラー メッセージ:「HTTP エラー 404.2 – が見つかりません」
↑まったくわからんw
サーバーコンポーネント>ハンドラーマッピングでcgiだったらCGI-exe,dllだったらISAPI-dllを有効に.
しかしこれだけでは動かず,ISAPI-dllの実行可能ファイル(オプション)に直接ファイルを指定したら動いた!

----
Windows Server 2008でもこんなことしたっけ???
Windows7+IIS7を中途半端にセットアップされていた状況なので元々どうなのかは不明.
しかしapplicationHost.configが読めないとか匿名認証が有効でないとかは,よくハマりがちな気がする.
15:52:57 - nacky - Category: Com/Tech ( Windows ) - No comments - No Trackbacks

2010-01-14

yumで入れたapache+suexecのdocroot問題

■状況
CentOS使用
メンテの都合上apacheはデフォルトのまんま,yumで.
suexecの示してるディレクトリが/var/www なので,他のディレクトリ(/home/hoge/webとする)で動かしてるvirtualhostに対してsuexecが使えない.

■症状
cgi実行時,エラーログに
・Premature end of script headers
・suexec policy violation: see suexec log for more details
が出てる.
suexecのログには
・command not in docroot
が出てる.

■原因
suexecのdocrootが/var/wwwになっているので,その下のディレクトリじゃないとsuexecで実行させてもらえない.
(mod_userdirのときは別っぽい?)
/usr/sbin/suexec -Vしてみると
-D AP_DOC_ROOT="/var/www"
ということで,確かに/var/wwwになってる.

■対応法その1
suexecを再コンパイルすることなくCGI実行可能なトップディレクトリを変更する方法 » fanta-orange
これすげぇぇぇぇ!(suexecのバイナリ内で/var/wwwになってるところを書き換える)
と思ったが,suexecが書き換わったら再度やるのよね…ということで今回はパス.

■対応法その2
特定の VirtualHost でのみ SuEXEC したい - ふしぎなぼうし
こちらは/var/www以下の適当な場所に/home/hoge/webをmountする方法.
# mkdir /var/www/mnt/hoge/web
# mount --bind /home/hoge/web /var/www/mnt/hoge/web
httpd.confのDocumentRootも/var/www/mnt/hoge/webに変えてやる.
reloadして完了.
しかしこれはこれで/var/wwwの下に行っちゃっうので/homeのつもりで使ってると不具合あり(パーミッションとか).
使えるかどうかはシチュエーション次第だなぁ.
/home をbindしたほうが良かったかも?
19:43:12 - nacky - Category: Com/Tech - No comments - No Trackbacks

2010-01-06

windows7のDVDからブートできなかった

テスト用に古いPCを引っ張り出してきて,Windows7を入れることになりました.
Windows7のDVD(iso焼いたDVD-R)を入れてブート…しかし起動できない.
cannot boot from cd : error code 5
とか出てる.
どうも調べてみるとBIOSが古いとかISOイメージの規格に合ってなさげとかが理由のよう.
ちなみにWindows VistaのDVDはブートできるんだ…

こんな場合はUSBメモリに移してインストールするとかPXEブートが可能なのでネットワークインストールするとか手段があります.
前者が楽そうですが手元に4GBのUSBメモリが無かった…
後者はTFTPサーバを立てたりで面倒すぎ!

よって今回はVistaを一旦入れてからアップグレード!
えー!

しかし,面倒だなぁと思って作業していたら4GBのUSBメモリが出てきたので,そちらからインストールすることにしましたとさ.

参考
diskpartを使ってWindows Vista/7のインストールUSBメモリを作る - @IT

おしまい.

---
追記:
USBブートもなぜか固まる!なんだこれ!
ということで,結局Vistaの後にアップグレードしましたとさ…トホホ感!
21:21:50 - nacky - Category: Com/Tech ( Windows ) - No comments - No Trackbacks