アーカイブ 12月, 2008

特定ディレクトリにあるファイルをすべてapplication/octet-streamにするには

HTTP header(ヘッダ)のContent-Typeをapplication/octet-streamに指定すると、明示的にブラウザにダウンロードをさせることが出来る。つまり、pdf等デフォルトではプラグインで再生されるようになっているものでも、ダウンロード画面を開かせることが出来る。

ファイルのリンク先をphpにして、その中でheader()関数とreadfile()関数を使うという方法もある(php ダウンロードさせる で検索すればサンプルは腐るほどある)けど、やはりリンクはファイルへの直リンが望ましいのではないか(まあ、DL解析には向かないかもしれないけど)。

そういうときに、httpd.confを弄れるのなら方法はある(もしかしたら.htaccessでもいけるかも?)。
特定のディレクトリ(Directory、正規表現ならDirectoryMatch)/サイトパス(Location、正規表現ならLocationMatch)の特定の拡張子のファイルのみをAddTypeでoctet-streamに指定すれば良いのだ。

<LocationMatch “^/(.*)/upload_directory”>
<IfModule mime_module>
AddType application/octet-stream zip lzh rar 7z
</IfModule>
</LocationMatch>

これで、DocumentRootから1階層潜った先にあるupload_directoryに格納されたzip、lzh、rar、7zは全て明示的にダウンロードされることになる。

「これらのファイルはデフォルトでダウンロードじゃないか」と思う人も多いと思うが、どうやらIEではoctet-streamに指定されていないzipをダウンロードすると中身の拡張子が消えるという環境があるようだから、まあ指定しておくに損はない(この話についてはきちんとした検証が済んでいないので、参考程度に)。

ちなみに、例えば画像をoctet-streamに指定しても、imgタグで貼ることは出来るようだ。安心。

コメントを書く

Windows Vistaでショートカットを作成するとき「~のショートカット」を最初から付けなくするには

  1. Win+Rでレジストリ エディタを起動
  2. HKEY_CURRENT_USER→Software→Microsoft→Windows
    →CurrentVersion→Explorerとたどり、「link」を編集
  3. 以下の画像の状態にして、OK、その後タスクマネージャからexplorer.exeを再起動させる。

Regedit

コメントを書く

ruby gemでremoveしたいときはuninstall

gem uninstall rails

みたいなかんじ。

コメントを書く

Filezillaで「サーバは経路設定できないアドレスで受動的な返信を送信しました.代わりにサーバのアドレスを使っています.」というエラーが出た場合は

設定>接続>FTP>パッシブモード

を「アクティブモードに戻る」にセットするとうまくいくかも。

コメントを書く

Apacheでphp.txtやcgi.txtとしているにも関わらず普通に実行出来てしまう場合

AddHandler default-handler .txt

を追加する。

コメントを書く

おいしいトーストの焼き方

  1. オーブントースターにトーストを入れる
  2. 「トースト」ボタンを2回押す
  3. 「温度調節」ボタンの↑を1度押す
  4. 完成

ここまで個人的すぎる記事も珍しい

コメントを書く

自分用 CentOS Server Setup Manual

超自分用なのであまり参考にしないように

ハードウェアの準備(Dell PowerEdge T105,SC440の場合)

  1. メモリは筐体を床に置いてから思いっきり手のひらではめる
  2. ちなみにT105ではDellの標準BTOメニューで800MHz駆動のメモリが価格差なしで選べるにも関わらず、標準以外の800MHz駆動のメモリを混在させて起動すると(The installed memory configuration is not optimal)等というエラーを毎回吐かれる。起動時にF1で回避するしか方法がない。BIOSのメモリチェックの項目を外しても意味がないので諦める。

インストールの準備(同上)

  1. 最初にF2でBIOS Setup画面に入り、
  2. 無効になっているSATAポートを有効にする
  3. 必要であればカバー開閉の警告(Alert! Cover was previously removed.)を解除(Enable)。
  4. とりあえずCentOSのディスクからmemtest86を起動し、3周程度回してみる
  5. 大丈夫そうならインストールへ移行

CentOS インストール

参考 CentOS5インストール – CentOSで自宅サーバー構築
基本的に上記URLの通りに設定しています。オリジナル部分のみをここに掲載します。

RAID Setup

Swapパーティションとルート(/)パーティション用にそれぞれRAID1を構築します。

  1. RAIDボタンをクリック ソフトウェア RAID パーティションを作成します
  2. sdaのみを選択し、固定容量で4096MBのパーティションを作成(基本パーティション)
  3. RAIDボタンをクリック ソフトウェア RAID パーティションを作成します
  4. sdbのみを選択し、固定容量で4096MBのパーティションを作成(基本パーティション)
  5. RAIDボタンをクリック ソフトウェア RAID パーティションを作成します
  6. sdaのみを選択し、最大容量でパーティションを作成(基本パーティション)
  7. RAIDボタンをクリック ソフトウェア RAID パーティションを作成します
  8. sdbのみを選択し、最大容量でパーティションを作成(基本パーティション)
  9. RAIDボタンをクリック RAID デバイスを作成します
  10. ファイルシステムタイプをswapに指定
  11. sdaとsdbでそれぞれ4096MBに切ったパーティションを選択
  12. RAIDレベルを1に設定
  13. 決定
  14. RAIDボタンをクリック RAID デバイスを作成します
  15. sdaとsdbでそれぞれ最大容量で切ったパーティションを選択
  16. マウントポイントを/に設定
  17. ファイルシステムタイプはext3を維持
  18. RAIDレベルを1に設定
  19. 決定

ネットワークデバイスの設定

  1. 編集をクリック
  2. IPv4のアドレスにそのサーバーに設定したいローカルIPを入力
  3. IPv4のプレフィックスに255.255.255.0(当方環境)を入力
  4. IPv6のチェックを外す
  5. ホスト名を設定 > 手動設定にそのサーバーに設定したいホストネームを入力
  6. ゲートウェイにルーター(当方環境では192.168.0.1)のアドレスを入力
  7. 1番目と2番目のDNSの欄にはプロバイダから提供されているプライマリ/セカンダリDNSサーバーのアドレスを入力する(ルーターのアドレスを指定するよりも高速化を期待出来る)

インストールが完了したら

ここからは僕が自作したシェルスクリプトをフラッシュメモリから実行するためのコマンドです。本当に僕専用ですね

  1. mkdir /mnt/flash
  2. mount -t vfat /dev/sdc1 /mnt/flash
  3. sh /mnt/flash/setup_agent/setup.sh

完了!

コメントを書く

シェルスクリプトの基本その3

echo “word” >> filedir/file

fileの最後の行にwordという文字を挿入することが出来る

echo “word” > filedir/file

fileのテキストを全部消去した上で、一番先頭にwordという文字を挿入することが出来る

コマンドの結果を変数に代入する方法

そんなことも出来るらしい。

サンプルコードは以下。
#!/bin/sh
HOSTNAME=`hostname`
echo $HOSTNAME

つまりバッククォートで囲む。

help = `echo “help” | grub`
echo “help”

きちんと出力されることを確認。

コメントを書く

ApacheのRedirectMatchを使って「トップディレクトリへのアクセスのみ」を転送する場合

RedirectMatch “^/$” “http://hoge.com/”

こうすることによってトップディレクトリへのアクセスのみをhoge.comに自動転送させることが出来る。

コメントを書く

計算方法の違いから来るHDDの表示容量と実質容量の一覧

HDDは製造メーカーとOSの間で容量の計算式が違う。

メーカー表記      1Gバイト=1,000Mバイト
PC上での実質容量  1Gバイト=1,024Mバイト

メーカー表記 実質容量    差分
250GB     約233GB   約-17GB
300GB     約280GB   約-20GB
320GB     約298GB   約-22GB
400GB     約373GB   約-27GB
500GB     約466GB   約-34GB
1.0TB     約932GB   約-68GB

コメントを書く

古い投稿 »