httpd.conf php 設定メモ

■ Webにおける拡張子の取り扱い(MIMEタイプ)

Webの世界では拡張子という概念と、もうひとつ『MIMEタイプ』という概念があります。MIMEタイプとは「タイプ名/サブタイプ名」の形式の文字列で、WEBサーバーとWEBブラウザの間はこのMIMEタイプを用いてデータの形式を指定しています。例えばMIMEタイプには以下のようなものがあります。

ファイル形式一般的な拡張子MIMEタイプ
テキスト .txt text/plain
HTML文書 .htm .html text/html
XML文書 .xml text/xml
JavaScript .js text/javascript
VBScript .vbs text/vbscript
CSS .css text/css
GIF画像 .gif image/gif
JPEG画像 .jpg .jpeg image/jpeg
PNG画像 .png image/png
CGIスクリプト .cgi application/x-httpd-cgi
Word文書 .doc application/msword
PDF文書 .pdf application/pdf

x- で始まる名前は、まだ標準化されていない仮の名前です。標準化された名前の一覧は下記にあります。

ブラウザが xx.gif というファイルをWEBサーバーに要求する際、WEBサーバーはxx.gifの内容(データ)を「これは image/gif タイプのデータです」と言いながら返却してくれます。これにより、ブラウザは受け取ったデータを正常に処理することができるのです。

しかし、Internet Explorer などのブラウザでは、この MIMEタイプの情報を無視して拡張子の方を信用したり、MIMEタイプや拡張子を無視してファイルの中身を見て「text/plain と言っているけど、これは HTML文書みたいだから、HTMLとして表示してあげるね」と、いらぬお節介をするブラウザもあり、なかなか、期待通りには制御できないのが実状のようです。

 

 

 

Webサーバで公開されているファイルはテキストファイルやHTMLファイルだけではありません。画像や動画など様々なファイルを扱います。クライアントからリクエストがあったファイルに対して、WWWサーバはファイルの内容を返すと同時にそのファイルがどのような種類のファイルなのかを合わせてクライアントへ返します。その結果、クライアント側は取得したデータを適切な表示方法で扱うことが出来るようになります。

基本となるMIMEタイプと拡張子の組み合わせはデフォルトでは「mime.types」ファイルで登録されています。このファイル名及び設置ディレクトリは「TypesConfig」で設定されています。

それでは「httpd.conf」ファイルで「TypesConfig」で検索してみてください。363行目付近に次の記述が見つかります。

 

既に登録されている拡張子の他に、別の拡張子に対するMIMEタイプを追加で登録することが出来ます。その場合は「mime.types」に追加で記述する代わりに「httpd.conf」ファイル内で「AddType」を使って記述することが推奨されています。

AddType MIMEタイプ 拡張子

MIMEタイプと拡張子をセットで指定します。

それでは「httpd.conf」ファイルで「AddType」で検索してみてください。363行目付近に次の記述が見つかります。

 

例としてPHPのファイルである「.php」及び「.phps」に対するMIMEタイプの設定を行うには次のように記述します。

<IfModule mime_module>

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

</IfModule>

( Written by Tatsuo Ikura+ )

Can't open /var/run/atd.pid to signal atd. No atd running?調査メモ

atコマンドでシェルを実行しようとしたら以下のエラーが出力

 

Can't open /var/run/atd.pid to signal atd. No atd running?

意訳

atdデーモンが動いていないよ? /var/run/atd.pidというファイル(※)がsignal atdに開けないよ。

※pidファイル

長時間動作し続けるプロセス(例えば MySQL デーモンなど)は、自身のPIDをファイルに書いておき、他のプロセスが参照できるようにしていることがある。

 

⇒atコマンドを実行するには、atdデーモンを起動する必要がある。(デーモンとは長時間動き続けているプロセスで、時間や命令、要求を受け付けたら別のプロセスやサービスを呼び出す、ずっといる受付嬢みたいなもの)

 

⇒atdデーモンがないからエラーが出力された。

 

対応策 atdデーモンを起動させる

$ su
# /sbin/chkconfig atd on
# /etc/rc.d/init.d/atd restart

 

メモ

topコマンド

Linux のタスクを表示する

PID (EM プロセス IDタスクの一意なプロセス ID。

PR (EM 優先度タスクの優先度 

NI (EM nice 値タスクの nice 値。 負の nice 値は高い優先度を意味し、正の nice 値は低い優先度を意味する。 このフィールドが 0 の場合、タスクの割り当て (dispatchability) を決定する際に 優先度を調整していないこと意味する。

VIRT (EM 仮想イメージ (kb)タスクが使用している(MVの総量。 コード・データ・共有ライブラリ・スワップアウトされているページが含まれる。 
VIRT = SWAP + RES.

 RES (EM 常駐サイズ (kb)タスクが使用しているスワップされていない(MP。 
RES = CODE + DATA. 
SHR (EM 共有メモリサイズ (kb)タスクが利用している共有メモリの総量。 他のプロセスと共有される可能性のあるメモリを単純に反映している。
%CPU (EM (PU 使用率前回のスクリーン更新からの、タスクの所要 CPU 時間の占有率。 総 (PU 時間のパーセンテージで表される。

%MEM (EM メモリ使用率 (RES)タスクが現在使用している利用可能な(MPの占有率。

TIME+ (EM (PU 時間 時間 (1/100

単位タスクが開始してから利用した 時間

Command (EM コマンドライン またはプログラムタスクを開始するのに使ったコマンドライン、 またはタスクに関連づけられたプログラムの名前を表示する。

コマンドラインオプション


-d : 遅延時間 間隔:-d ss.tt (秒 .1/10秒 )スクリーンを更新する間隔を指定する。

⇒-d 10で10秒間隔でtopコマンドを実行する。

 

-n : 繰り返し回数 制限:-n numbertop が終了するまでの繰り返し回数またはフレームの最大数を指定する。 

⇒-n 10 で10回 繰り返す。

-b : バッチモード 操作top を「バッチモード」で起動する。

⇒具体的には、オプションnと組み合わせて、一回topコマンドを実行した結果を出力して、次にもう一回topコマンドの実行結果を出力する。

 

 

top.sh

#!/bin/sh

top -d 10 -n 10 -b >> top_result.log

 

atコマンド

 at 時刻   -f 実行ファイル名