Weitere ähnliche Inhalte
Ähnlich wie ノンプログラマのためのウェブサーバ入門 (20)
Kürzlich hochgeladen (11)
ノンプログラマのためのウェブサーバ入門
- 2. 自己紹介
factory_ay と申します。
Twitter_id:@factory_ay
(http://twitter.com/#!/factory_ay
Facebook:factory.ay
(http://www.facebook.com/factory.ay
仕事では・・・
サーバ、ネットワーク、Java&ScalaやPHP、JS/Html
デザイン&コーディング以外をごった煮でやってます。
Webシステム全般、GEO/位置情報、形態素解析、スクレイピング
を仕事にしてます。
趣味では・・・
トラブルバスター、と言う名のなんでも屋をやってます。
壊れたPC&サーバ、クラックされたサイトの復旧、MT/WPの修正、ポス
レジ、業務用冷蔵庫の修理など、こちらもごった煮で修理してます。
- 6. サーバの種類
• ウェブサーバ
• アプリケーションサーバ
• DNSサーバ
• センドメールサーバ
• データーベースサーバ
• メールサーバ
今回、ココで取り扱うのは『ウェブサーバ』と『アプリケーションサーバ』です。
- 7. ウェブサーバのお仕事
• ブラウザが何を欲しがっているのか聞く
• 目的の物を探しだしてくる
• 見つけたファイルを準備してブラウザに送る
• ソレをどうすれば良いのかブラウザに教える
• PHPやCGIなど、プログラム言語だった場合
アプリケーションサーバに処理を渡す
PHPとかCGIとかプログラム以外全般を担当
- 9. ブラウザとサーバの動き
サーバ ブラウザ
②ドメインをチェック ①このURLの中身が欲しい
ドメイン:www.test.com http://www.test2.com/first.html
サーバに設定されているドメインのリスト
1.www.test1.info
/public/test1/
2.www.test2.com )→合うドメインの設定を見つけたらこのフォルダを
/public/test2/ ドキュメントルートとする(そのドメインの一番上のフォルダ)
3.www.test3.jp
/public/test/
③ドメイン以降のパスと実際のフォルダを合わせる
http://www.test2.com/first.html
/public/test2/index.html
/public/test2/images/
/public/test2/css/
/public/test2/first.html
/public/test2/second.html
④見つかったファイルをブラウザに投げる
- 14. 裏を返すと・・・
• サーバ全体で動きがおかしい
• フォームなどで文字化けが頻出
• キャッシュがいつまでも使われて手間
• 全体的に不安定
• 表示されるはずの物がDLされてしまう
• プログラムには何の問題も無いのにバグる
↓
こういった問題はウェブサーバの設定がおかし
くなってしまってるからかも?
- 21. 設定例
• 圧縮機能を使う
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript
• エラーの際に独自のHTMLファイルを使う
ErrorDocument 500 /wwww/sc/500.html
• ファイルの取扱を変える
AddType application/x-httpd-php .inc (.incファイルもPHPとして取り扱う
AddType “application/vnd.ms-excel” .xls (Excelを開けるようにする
• インデックスファイルを変更する
DirectoryIndex index.html index.htm index.cgi index.php
• エンコードの設定を変える
default_charset = "UTF-8"
更に・・・
- 23. URLリライト1
• www 無しのドメインからwww有りに移動
RewriteEngine on
RewriteCond %{HTTP_HOST} ^test.com ←設定内容
RewriteRule ^(.*)$ http://www.test.com/ [R=301,L]
ステータスコード301が発動し、ブラウザは自動で移動する
http://test.com/first.html → http://www.test.com/
• パスそのままでドメインをお引越し
RewriteEngine on
RewriteCond %{HTTP_HOST} ^test.com
RewriteRule ^(.*)$ http://www.nantoka.com/$1 [R=301,L]
ステータスコード301が発動し、ブラウザはパスを保ったまま自動で移動する
http://test.com/first.html → http://www.nantoka.com/first.html
- 24. URLリライト2(マッピングを書き換える
• 実際のフォルダ構成とは異なるURLを作る
設定前:http://test.com/sub1/sub2/image/logo.jpg → 404エラー
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^sub1/sub2/image/(.*)$ /test/image/$1 [QSA,L]
設定後: http://test.com/sub1/sub2/image/logo.jpg → /test/image/logo.jpg
• パラメーターを隠す
http://test.com/view.php?name=abc&day=2011-11-10 というURLを静的に
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^view/(.*?)/(.*?)/$ /view.php?name=$1&day=$2 [QSA,L]
設定後: http://test.com/view/abc/2011-11-10/ でアクセス可能に
- 28. まとめ
• HTMLを表示する、という裏には色んな仕組
みが隠れている。
• ウェブサーバには色んな機能が隠されている
• より理解すれば、もっと早く上手に仕事をこな
すことが出来る
• トラブルの防止/対処の為是非学んでください
• 大体のエラーはプログラム上で起きる・・・し
かし、探しても全く見つからない場合、ひょっ
とするとウェブサーバの方に原因があるのか
も?