<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>されどLAMPな日々 &#187; Apache</title>
	<atom:link href="http://blog.lamp-introduction.com/category/lamp%e5%a5%ae%e9%97%98%e8%a8%98/apache-lamp%e5%a5%ae%e9%97%98%e8%a8%98/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lamp-introduction.com</link>
	<description></description>
	<lastBuildDate>Tue, 31 Aug 2010 14:55:02 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/category/lamp%e5%a5%ae%e9%97%98%e8%a8%98/apache-lamp%e5%a5%ae%e9%97%98%e8%a8%98/feed/" />
		<item>
		<title>Basic認証とDigest認証の手順を学習してみる</title>
		<link>http://blog.lamp-introduction.com/2009/10/17/basic%e8%aa%8d%e8%a8%bc%e3%81%a8digest%e8%aa%8d%e8%a8%bc%e3%81%ae%e6%89%8b%e9%a0%86%e3%82%92%e5%ad%a6%e7%bf%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.lamp-introduction.com/2009/10/17/basic%e8%aa%8d%e8%a8%bc%e3%81%a8digest%e8%aa%8d%e8%a8%bc%e3%81%ae%e6%89%8b%e9%a0%86%e3%82%92%e5%ad%a6%e7%bf%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 04:27:49 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=1086</guid>
		<description><![CDATA[HTMLフォームからのID/Passwordによるログインや、OpenIDを利用してのログイン等が主流で、あまり目にする(&#38;実装する)機会の無い認証方法なので手順をなかなか覚えきれません&#62;&#60;
というワ [...]]]></description>
			<content:encoded><![CDATA[<p>HTMLフォームからのID/Passwordによるログインや、OpenIDを利用してのログイン等が主流で、あまり目にする(&amp;実装する)機会の無い認証方法なので手順をなかなか覚えきれません&gt;&lt;</p>
<p>というワケで、以下それぞれの手順をメモしておきます。</p>
<p><span style="text-decoration: underline;"><strong>Basic認証</strong></span></p>
<p>ブラウザのダイアログが出て「ユーザー名・パスワード」を要求されるアレですね。認証をかけたいディレクトリに.htaccessを置く必要があるので、.htaccessが利用可能である事が前提です。</p>
<p>まずは、照合用の.htpasswdファイルを作成。言わずもがなですが、公開ディレクトリより上層に配置します。シェルで以下のコマンドを実行します。</p>
<pre>;; 公開ディレクトリが/var/www/htmlなので
# htpasswd -b -c /var/www/.htpasswd ユーザー名 パスワード</pre>
<p>「-b」オプションで、端末から入力したパスワードを利用出来るようです。ただし、コマンド入力時にパスワードが丸見えなので気をつけなさい!!みたいな事がmanに書いてありました。</p>
<p>「-c」オプションは新規ファイル生成(create)なので、認証ユーザーを追加したい場合には不要のようです。取りあえず上記のコマンドで、「hoge」ユーザーのパスワード「hogehoge」を作成してみました。</p>
<p>で、次に認証をかけたいディレクトリ下に.htaccessファイルを配置します。取りあえずローカル環境でのテストなので、公開ディレクトリ以下全てを認証制にしてみます。.htaccessの内容はこんな感じです。</p>
<pre>AuthUserFile /var/www/.htpasswd
AuthName "Input ID and password"
AuthType Basic
require valid-user</pre>
<p>ポイントは「.htpasswdのパスは絶対パスで記述する」という点でしょうか。AuthNameに記述した内容がダイアログに表示されます。</p>
<p>Basic認証は、認証情報がリクエスト毎に送信され、尚かつその情報が暗号化ではなくbase64による「符号化」でしかない為、実質平文のID・パスワードがネットワーク上に流れるのであまりセキュアな方法とは言えないようです。</p>
<p>Firebugでリクエストヘッダを見てみると、以下の情報が送信されています。</p>
<pre>Authorization  Basic aG9nZTpob2dlaG9nZQ==</pre>
<p>この文字列をPHPのbase64_decode()関数などに与えてみると…</p>
<pre>$ php -a
php &gt; echo base64_decode("aG9nZTpob2dlaG9nZQ==");
php &gt; hoge:hogehoge
</pre>
<p>と、ユーザー名/パスワードがあっさり分かってしまいました。</p>
<p>そこで、次のDigest認証が推奨されています。</p>
<p><span style="text-decoration: underline;"><strong>Digest認証</strong></span></p>
<p>こちらの認証方法はBasic認証とほとんど同様のようですので、まずは照合用の.htdigestファイルを作成します。</p>
<pre>
# htdigest -c /var/www/.htdigest レルム ユーザー名
Adding password for hoge in realm Secret Area.
New password: [パスワード応答]
Re-type new password: [パスワード応答]
</pre>
<p>「レルム」というのは、.htaccessファイルに記述する「AuthName」と同一である必要があります。ここがBasic認証とは違いますね。</p>
<p>で、.htaccessは以下のようになります。</p>
<pre>
AuthType Digest
AuthName "Secret Area"
AuthDigestDomain /
AuthUserFile /var/www/.htdigest
require valid-user
</pre>
<p>「AuthType」が「Digest」になる点と、前述のように「AuthName」の意味合いが変わる事ぐらいでしょうか。</p>
<p>続いてこの場合のリクエストヘッダを見てみると、以下のような情報が送信されていました。</p>
<pre>
Authorization  Digest
username="hoge",
realm="Secret Area",
nonce="QlGMVhl2BAA=d7dd8bd6c5659d1efd515d79ed699ab1d694e99d",
uri="/",
algorithm=MD5,
response="afc54b31313e200977dcc5c0721d39bb",
qop=auth,
nc=00000006,
cnonce="303473c2c65228c6"
</pre>
<p>「algorithm=MD5」とありますので、認証情報が暗号化されて送信されているようです。この辺りが、Basic認証の代わりに推奨される理由でしょうか。</p>
<hr />
色々と調べてみると、Basic認証では「-b」オプションが無くても良かったり、Basic認証でも暗号化が利用出来たり、とまだまだ勉強する事がありそうですが、最低限の知識としては今の所これで充分かな??と思います。</p>
<p>今日はここまで。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2009/10/17/basic%e8%aa%8d%e8%a8%bc%e3%81%a8digest%e8%aa%8d%e8%a8%bc%e3%81%ae%e6%89%8b%e9%a0%86%e3%82%92%e5%ad%a6%e7%bf%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2009/10/17/basic%e8%aa%8d%e8%a8%bc%e3%81%a8digest%e8%aa%8d%e8%a8%bc%e3%81%ae%e6%89%8b%e9%a0%86%e3%82%92%e5%ad%a6%e7%bf%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/" />
	</item>
		<item>
		<title>ApacheでCGIの設定をしてみる</title>
		<link>http://blog.lamp-introduction.com/2009/07/28/apache%e3%81%a7cgi%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.lamp-introduction.com/2009/07/28/apache%e3%81%a7cgi%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 15:08:51 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=965</guid>
		<description><![CDATA[何故今さらCGI??という向きもありましょうが、そんな事は気にせず突き進むのであります。
実のところは、C言語にケチョンケチョンに返り討ちをくらう毎日に若干凹んでしまい、色々な解説サイトをフラフラ彷徨っていたところ「Cで [...]]]></description>
			<content:encoded><![CDATA[<p>何故今さらCGI??という向きもありましょうが、そんな事は気にせず突き進むのであります。</p>
<p>実のところは、C言語にケチョンケチョンに返り討ちをくらう毎日に若干凹んでしまい、色々な解説サイトをフラフラ彷徨っていたところ「Cで書くCGI」について言及されているサイトをまたもや発見。</p>
<p>コッソリとPythonやRubyのチュートリアルなぞ読んでみたりしている事もあり、ローカルに入れてるApacheで色々遊べるようにCGIが実行出来るように設定をしておこうと、まぁこういうワケです。</p>
<p>しかし、いつか本職の皆さんにドツかれそうな適当具合ですね(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ</p>
<p><span style="text-decoration: underline;"><strong>Ubuntu9.04の場合</strong></span></p>
<p style="padding-left: 30px;">UbuntuというかDebian系の場合は、以前も書いたように設定ファイルを細かく分散して管理しているようですね。RedHat系の設定ファイル構成に慣れているので、なかなか細かい所まで覚えきれません。</p>
<p style="padding-left: 30px;">それっぽいファイル「apache2.conf」や「htttpd.conf」にゴリゴリ設定を追記していくべきではなさそう(httpd.confに至っては何も記述されていませんし)なので、今回もGoogle先生にお世話になりまくりです。</p>
<p style="padding-left: 30px;">で、ローカルだし面倒だし「cgi-bin」ディレクトリ以外でもCGIが実行されるようにしたいな～、と以下のように設定してみました。</p>
<pre style="padding-left: 30px;">;; 念のためバックアップしておくのが無難(常識?)ですね
$ sudo vi /etc/apache2/sites-enabled/000-default</pre>
<p style="padding-left: 30px;">このファイルを見てみると、DocumentRootが「/var/www」である事と「cgi-bin」ディレクトリが「/usr/lib/cgi-bin/」エイリアスになっており、かつ「ExecCGI」の指定もあるので、ここに.cgiファイルを置けば面倒な設定をせずともアッサリ動かせそうですね。しかし、今回の目的上華麗にスルー!!</p>
<pre style="padding-left: 30px;">;; どこに置いても動くようにしたいので
&lt;Directory /var/www/&gt;
  Options Indexes FollowSymLinks MultiViews ExecCGI &lt;- 追記
  AllowOverride All
  Order allow,deny
  allow from all
&lt;/Directory&gt;</pre>
<p style="padding-left: 30px;">これで、</p>
<pre style="padding-left: 30px;">$ sudo apache2ctl configtest
$ sudo apache2ctl graceful</pre>
<p style="padding-left: 30px;">とApacheを再起動すればCGIが動くはず!!アレ??configtestやgracefulの時点で「apache2: Could not reliably determine the server&#8217;s fully qualified domain name, using 127.0.1.1」と言われます(ﾟ_｡)?</p>
<p style="padding-left: 30px;">調べてみたところ、設定ファイルで「ServerName」が指定されていないとこのメッセージが出る模様。なので、以下追記です。</p>
<pre style="padding-left: 30px;">;; ここで良いのでしょうかね??
$ sudo vi /etc/apache2/apache2.conf

(～中略～)
ServerRoot "/etc/apache2"
ServerName localhost &lt;- 追記</pre>
<p style="padding-left: 30px;">さて、これでミーハーよろしく「/var/www/」下に「sandbox」なんてディレクトリを作ってみて、そこにこれまたミーハー気分で、C言語で作成したバイナリファイル(getenv.cgi)を置いてみました。</p>
<p style="padding-left: 30px;">で、「http://localhost/sandbox/getenv.cgi」にアクセスすると…。アレアレ??ブラウザがファイルをダウンロードしようとします(･_･?)</p>
<p style="padding-left: 30px;">単純に.cgiファイルがCGIとして認識されていないようですので、今度は以下のように。</p>
<pre style="padding-left: 30px;">;; ここにありました
$ sudo vi /etc/apache2/mods-enabled/mime.conf

AddHandler cgi-script .cgi &lt;- コメントアウト(#)を削除</pre>
<p style="padding-left: 30px;">これで、再度Apacheを再起動して先ほどのURLにアクセスすると…。無事表示されました～。中身はUser AgentとIPアドレスを表示するだけのものですが…(*´σｰ｀)</p>
<p>公開サーバなどであれば、もっとセキュリティ面に配慮して設定すべきなのでしょうが、ローカルで閉じた環境のオレオレサーバなのでこれでOKかと。さて、Ubuntuが設定出来たらFedoraもやりたくなるのが心情というもの!!</p>
<p><span style="text-decoration: underline;"><strong>Fedora 11の場合</strong></span></p>
<p style="padding-left: 30px;">FedoraやCentOSだと「/etc/httpd/conf/httpd.conf」に設定が集約されていますので、とにかくまずはこれを見れば良いですね。Ubuntuとの違いはDocumentRootが「/var/www/html」になるという点ぐらいでしょうか??</p>
<p style="padding-left: 30px;">それ以外は、上記を参考にすれば書き留めておく程の事もなく終了してしまいました。</p>
<p>これで、PythonやRuby/Perlで遊べるぞ～!!ってC言語をやらんかい!!という話です。しかし、C言語は手強いですね～。「文字列」を扱うとすぐに混乱してしまいます。でも、その分ちゃんとコンパイルが通って動いた時の感激もひとしおなので頑張りますですよ～。</p>
<p>文脈からも分かるように、最近Pythonが気になって気になって仕方がなかったりもしますが…。</p>
<p>今日はここまでヾ(*&#8217;-'*)ﾏﾀﾈｰ♪</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2009/07/28/apache%e3%81%a7cgi%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2009/07/28/apache%e3%81%a7cgi%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/" />
	</item>
		<item>
		<title>Apacheでmod_rewriteを有効にしてみよう!!</title>
		<link>http://blog.lamp-introduction.com/2009/06/07/apache%e3%81%a7mod_rewrite%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86/</link>
		<comments>http://blog.lamp-introduction.com/2009/06/07/apache%e3%81%a7mod_rewrite%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 13:11:38 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntuで行こう!!]]></category>
		<category><![CDATA[当たって砕けろFedora]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=887</guid>
		<description><![CDATA[さてさて、皆さんはどうされますか??クリーンインストールですか??アップグレードですか??あっ、いや、3日後にせまったFedora 11のインストール方法の話です(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ
ミーハー [...]]]></description>
			<content:encoded><![CDATA[<p>さてさて、皆さんはどうされますか??クリーンインストールですか??アップグレードですか??あっ、いや、3日後にせまったFedora 11のインストール方法の話です(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ</p>
<p>ミーハーは当然、ガッチリとクリーンインストールです!!</p>
<p>さて、Fedoraといえばyum、yumといえばRPM、RPMといえばdeb、debといえばUbuntu。強引極まりない結びつけですが、Linuxの2大巨頭(?)ともいえるRPMとdeb。どちらのパッケージ管理を利用しているかで、配布されているアプリケーションや、設定ファイルの配置なんかも変わってきますよね。</p>
<p>そこで、今回はwebサーバの定番「Apache」の設定ファイルや設定方法の違いを書き留めておこう!!というエントリです。で、題材にmod_rewriteモジュールをチョイスした、とこういうワケですね。</p>
<p>…いや、まぁね、ただ単にハマッただけなのですけどね(/ω＼)</p>
<p>ではいってみましょ～!!</p>
<p><span style="text-decoration: underline;"><strong>RPM系(Fedora 10)の場合</strong></span></p>
<p>まず、Apacheをインストールしなきゃ始まりませんので、yumでサクッと入れちゃいます。</p>
<pre>;; 未だにsudoする癖がつきません
# yum install httpd</pre>
<p>httpdの設定に関するファイルは、/etc/httpd下に入るみたいですので、チラッとのぞいてみましょう(/▽ﾟ＼)ﾁﾗｯ</p>
<pre>;; 表示内容は若干端折ってます
$ ls -l /etc/httpd
drwxr-xr-x 2 root root 4096 conf
drwxr-xr-x 2 root root 4096 conf.d
lrwxrwxrwx 1 root root   19 logs -&gt; ../../var/log/httpd
lrwxrwxrwx 1 root root   27 modules -&gt; ../../usr/lib/httpd/modules
lrwxrwxrwx 1 root root   13 run -&gt; ../../var/run</pre>
<p>フムフム。FedoraやCentOSの場合、ここにあるconfディレクトリ下に設定ファイル「httpd.conf」が入ってるワケですね。設定ファイルの細かい記述については触れません(=必殺・放置)が、ではmod_rewriteを有効にするにはどうするのか??</p>
<p>取りあえず設定ファイル内をgrepしてみました。</p>
<pre>;; 発見!!
$ grep mod_rewrite /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so</pre>
<p>FedoraやCentOSのApacheは最初からmod_rewriteが有効になってるようですので、モジュールを利用するには、シンボリックリンクの貼られている/usr/lib/httpd/modules内にバイナリファイルが存在し、尚且つ、httpd.conf内に上記の「LoadModule ～」の1行が記述されていればOKなのだろう、と推測する事が出来ますね。</p>
<p>この「最初から有効」というのがハマった原因だったりもするのですが、次行ってみましょ～!!</p>
<p><span style="text-decoration: underline;"><strong>deb系(Ubuntu 9.04)の場合</strong></span></p>
<p>ハイ、これもまずはapt-getでサクッとインストールしちゃいます。</p>
<pre>;; httpdではないのですね
$ sudo apt-get install apache2</pre>
<p>RPMとはパッケージ名が違いますね。となると、設定ファイルはどこに入るのでしょうか??単純に考えると、/etc/apache2下ですね。</p>
<pre>;; 表示内容はまたもや端折ります
$ ls -l /etc/apache2
-rw-r--r-- 1 root root apache2.conf
drwxr-xr-x 2 root root conf.d
-rw-r--r-- 1 root root envvars
-rw-r--r-- 1 root root httpd.conf
drwxr-xr-x 2 root root mods-available
drwxr-xr-x 2 root root mods-enabled
-rw-r--r-- 1 root root ports.conf
drwxr-xr-x 2 root root sites-available
drwxr-xr-x 2 root root sites-enabled</pre>
<p>パッケージ名だけでなく、設定関連のファイル構成もだいぶ違う事が分かります。取りあえず、UbuntuでのApache設定ファイルはapache2.confになるようです。さて、じゃあmod_rewriteを有効化するにはどうするか??というと、以下の2つの手順を踏むようです。</p>
<ol>
<li>a2enmodコマンドを管理者権限で実行する</li>
<li>(.htaccessを使うなら)設定ファイルの内容を変更する</li>
</ol>
<p>まずは、a2enmodコマンドを早速実行してみます。mod_rewriteのプリフィックス「mod_」を除いたモジュール名が引数になるようですね。</p>
<pre>;; 一般ユーザでやると怒られました
# sudo a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!</pre>
<p>このコマンドを実行すると、/etc/apache2/mods-enabled下にrewrite.loadというシンボリックリンクが作成されました。で、このリンクの実体は../mods-available/rewrite.loadとなっていますので、実体の中を覗いてみました。</p>
<pre>;; 発見!!
$ cat /etc/apache2/mods-available/rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so</pre>
<p>おぉ～。ここでやっとFedoraにもあったモジュールロードの記述にたどり着きました。という事は、Ubuntuのようなdeb系Apacheのモジュールは、「LoadModule ～」が記述された実体ファイルへのシンボリックリンクを作成したり削除したり、という形で管理されていると考えて良いのですかね??</p>
<p>後は、mod_rewriteというのは.htaccessで利用する事が多いでしょうから、.htaccessを利用出来るように/etc/apache2/sites-available/defaultの以下を変更しました。</p>
<pre>;; ココでいいのかな??
&lt;Directory /var/www/&gt;
　　Options Indexes FollowSymLinks MultiViews
　　AllowOverride None # -&gt; AllowOverride Allへ
　　Order allow,deny
　　allow from all
&lt;/Directory&gt;</pre>
<p>う～ん、同じLinuxなのにここまで方法が違うのが、ディストリビューションの個性だな～と思うのですが、小っこい脳みそでは覚えるのが大変であります。</p>
<p>最後に、それぞれのApacheの制御コマンドを載せておきます。</p>
<pre>;; RPM系なら
# service httpd start -&gt; 起動
# service httpd stop -&gt; 停止
# service httpd restart -&gt; 再起動
# service httpd reload -&gt; php.iniなんかの再読み込み
# service httpd status -&gt; 動いてる??

;; deb系なら
$ sudo apache2ctl start -&gt; 起動
$ sudo apache2ctl stop -&gt; 停止
$ sudo apache2ctl restart -&gt; 再起動
$ sudo apache2ctl status -&gt; 動いてる??
$ sudo apache2ctl configtest -&gt; 設定ファイルの文法チェック
$ sudo apache2ctl graceful -&gt; 現在進行中の接続が終了してから再起動</pre>
<p>覚えるのは大変ですが、やっぱりこういう多様性もLinuxならではですよね!!</p>
<p>今日はここまでヾ(*&#8217;-'*)ﾏﾀﾈｰ♪</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2009/06/07/apache%e3%81%a7mod_rewrite%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2009/06/07/apache%e3%81%a7mod_rewrite%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86/" />
	</item>
		<item>
		<title>telnetで温故知新</title>
		<link>http://blog.lamp-introduction.com/2009/03/13/telnet%e3%81%a7%e6%b8%a9%e6%95%85%e7%9f%a5%e6%96%b0/</link>
		<comments>http://blog.lamp-introduction.com/2009/03/13/telnet%e3%81%a7%e6%b8%a9%e6%95%85%e7%9f%a5%e6%96%b0/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 16:12:13 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=713</guid>
		<description><![CDATA[リモートログインといえばSSH、通信が暗号化されないtelnetだなんて過去の遺物!!という時代にインターネットに触れた人間ですが、何故か気になるその存在。ちょっと腰を据えて触ってみたのですが…
ヤ、ヤバイ…telnet [...]]]></description>
			<content:encoded><![CDATA[<p>リモートログインといえばSSH、通信が暗号化されないtelnetだなんて過去の遺物!!という時代にインターネットに触れた人間ですが、何故か気になるその存在。ちょっと腰を据えて触ってみたのですが…</p>
<p>ヤ、ヤバイ…telnet楽しいです(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ</p>
<p>webアプリといえば、「言語の文法覚えたら次はセキュリティ!!」と言われるほど、脆弱性に気を使わなくてはイケナイ分野なのですよね??書籍やネットで知識を仕入れる事は出来ますが、何だか頭デッカチになってるだけのような気もします。やっぱり実体験に勝るものはないでしょうから、ここはいっちょうtelnetでよりリアルな通信を体験してみよう!!(＞▽＜)b</p>
<p>とまぁ、今回の動機はそんなところです。</p>
<p>さて、サーバデーモンとしてのtelnetは確かに廃れて久しいようですが、クライアントとしてのtelnetはまだまだ現役(のハズ)!!何たって、LinuxディストリビューションにもWindowsにもMacにも最初から用意されてますものね!?ちょっとした実験やら検証には持ってこいだと思います。</p>
<p>なので早速、実験!!実験!!…の前にまずは、telnetの使い方備忘録です。</p>
<p>&lt;HTTPでhogehoge.comにアクセス&gt;</p>
<pre style="padding-left: 30px;">$ telnet
telnet&gt; open hogehoge.com 80
GET /path/to/file HTTP/1.1
Host:hogehoge.com
[空Enter]</pre>
<p>&lt;SMTPでmail.hogehoge.comにアクセス&gt;</p>
<pre style="padding-left: 30px;">$ telnet
telnet&gt; open mail.hogehoge.com 25
HELO 自分のホスト名
MAIL FROM: 送信者のメールアドレス
RCPT TO: 送信相手のメールアドレス
DATA
From: 送信者のメールアドレス
To: 送信相手のメールアドレス
Subject: 件名
ここに本文
.
↑ピリオドのみの行で終了
QUIT</pre>
<p>&lt;POPでmail.hogehoge.comにアクセス&gt;</p>
<pre style="padding-left: 30px;">$ telnet
tenet&gt; open mail.hogehoge.com 110
user ユーザ名
pass パスワード
LIST 受信メール一覧
RETR メッセージ番号 → メールを読む
DELL メッセージ番号 → メールを削除
QUIT</pre>
<p>実験にはこの程度あれば十分ではないでしょうか??以下のサイトを参考にさせていただきました。他にもFTPやHTTPのProxyでの接続等、さらに詳しく紹介されています(人-)謝謝</p>
<p style="padding-left: 30px;"><a href="http://www.olug.gr.jp/?Telnet%A4%C7%CD%B7%A4%D6" target="_blank">Telnetで遊ぶ</a></p>
<p>簡単な使い方が分かった所で、会社のサイトやらGoogleやらYAHOOやらにアクセスして喜んでいたのですが、ちゃんと勉強もしなくちゃイケマセン。</p>
<p>で、取り敢えずwebアプリという事でlocalhostで動いてるapacheに色々アクセスしてみると、リクエストは空Enterのみの行で初めて完結するようですね。また、レスポンスもヘッダとボディの間に空Enterのみの行がある事が分かりました。</p>
<pre style="padding-left: 30px;">$ telnet
telnet&gt; open localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Host:localhost
　←ここでリクエストが終了!!
HTTP/1.1 200 OK
Date: Thu, 12 Mar 2009 15:27:33 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8g PHP/5.2.8
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "dc83f-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
　←ここでレスポンスヘッダ終了!!
&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</pre>
<p>空Enterのみの行という事は、最後の文字のお尻に改行コードが2つ連続でくっついてるという事ですよね??これを利用して意図的にレスポンスヘッダを分割させるのが、いわゆる「レスポンスヘッダ分割攻撃」というやつですよね??対策としては(ヘッダだろうがボディだろうが)「ユーザの入力値をそのまま出力しない」のが鉄則ですよね。φ(・ω・ )</p>
<p>さらにもう1つ、単純にvar_dumpでスーパーグローバル変数$_SERVERをダンプするPHPファイルを作り、それにアクセスしてみました。</p>
<p>&lt;telnet.php&gt;</p>
<pre style="padding-left: 30px;">&lt;?php
/* ワザワザ書くほどでもないですネ */
var_dump($_SERVER);
?&gt;</pre>
<p>ブラウザでアクセスしているワケではないですから、当然ユーザエージェントやリファラは変数に格納されていません。さて、そこでいわゆるUAやリファラの「偽装」を試してみるとどうなるのかな??と実験してみました。</p>
<pre style="padding-left: 30px;">$ telnet
telnet&gt; open hogehoge.com 80
GET /path/to/file HTTP/1.1
Host:hogehoge.com
User-Agent: <strong>hogehoge</strong>
Referer: <strong>fugafuga</strong>

HTTP/1.1 200 OK
Date: Thu, 12 Mar 2009 15:49:20 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8g PHP/5.2.8
X-Powered-By: PHP/5.2.8
Content-Length: 1152
Content-Type: text/html

array(24) {
  ["HTTP_HOST"]=&gt;
  string(9) "localhost"
  ["HTTP_USER_AGENT"]=&gt;
  string(8) "<span style="color: #ff0000;"><strong>hogehoge</strong></span>" ←アイヤ〜!!
  ["HTTP_REFERER"]=&gt;
  string(8) "<span style="color: #ff0000;"><strong>fugafura</strong></span>" ←偽装されちゃった!!

  〜以下略〜

}</pre>
<p>おぉ、見事に本来期待する形式ではない値が入ってますね。故に、この値を信用して処理ロジックを組むのはよろしくない、という事なのでしょう。φ(・ω・ )</p>
<p>他にもPOSTとか試してみたのですが、長くなってしまったのでこの辺りで終了しておこうと思います。しかし、こうしてより「生」に近い処理を体験してみると、頭の中でボンヤリとしていた知識が実際に身についたような気がします。昨日より一歩前進出来たかな(・x・ ).o0○</p>
<p>GUI主流のご時世にtelnet叩いてワァワァ喜んでる時点で後退かもしれませんが…。</p>
<p>今日はここまでヾ(*&#8217;-'*)ﾏﾀﾈｰ♪</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2009/03/13/telnet%e3%81%a7%e6%b8%a9%e6%95%85%e7%9f%a5%e6%96%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2009/03/13/telnet%e3%81%a7%e6%b8%a9%e6%95%85%e7%9f%a5%e6%96%b0/" />
	</item>
		<item>
		<title>Ubuntu8.10にApache2.2.11を入れてみる</title>
		<link>http://blog.lamp-introduction.com/2009/02/15/ubuntu810%e3%81%abapache2211%e3%82%92%e5%85%a5%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.lamp-introduction.com/2009/02/15/ubuntu810%e3%81%abapache2211%e3%82%92%e5%85%a5%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 05:12:50 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntuで行こう!!]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=613</guid>
		<description><![CDATA[2009/02/15時点での最新版は2.2.11になるみたいです。
ダウンロードはコチラ
で、ダウンロードしたtarballを適当なディレクトリで展開いたしました。
$ tar zxvf httpd-2.2.11.tar [...]]]></description>
			<content:encoded><![CDATA[<p>2009/02/15時点での最新版は2.2.11になるみたいです。</p>
<p>ダウンロードは<a href="http://www.apache.jp/misc/download.html" target="_blank">コチラ</a></p>
<p>で、ダウンロードしたtarballを適当なディレクトリで展開いたしました。</p>
<pre style="padding-left: 30px;">$ tar zxvf httpd-2.2.11.tar.gz</pre>
<p>次は./configure。色々なサイトを参考にさせていただいて、コンパイルオプションはこんな感じにしました。</p>
<pre style="padding-left: 30px;">$ ./configure \
&gt; --enable-so \
&gt; --enable-rewrite \
&gt; --enable-ssl \</pre>
<p><span style="text-decoration: underline;">&#8211;enable-so</span></p>
<p style="padding-left: 30px;">Apacheのモジュールを動的に組み込むのに必須のオプションだそうです。何はなくとも付けときましょう、という感じでしょうか??</p>
<p><span style="text-decoration: underline;">&#8211;enable-rewrite</span></p>
<p style="padding-left: 30px;">mod_rewriteの有効化ですね。CodeIgniterでは、URLからindex.phpを除去する為にrewrite機能を利用していますので必須としてみました。</p>
<p><span style="text-decoration: underline;">&#8211;enable-ssl</span></p>
<p style="padding-left: 30px;">SSLを有効にするオプションみたいですね。検証用ローカル環境には必要無さそうですが、取り敢えず付けてみました。ただし、SSLのパッケージがあらかじめ入ってないと「コンパイル出来るかボケェ!!」と怒られましたので、aptでopensslとlibssl-devを入れました。</p>
<p>これで後は、</p>
<pre style="padding-left: 30px;">$ make
$ sudo make install</pre>
<p>でインストール完了!!apacheを起動するには</p>
<pre style="padding-left: 30px;">$ sudo /usr/local/apache2/bin/apachectl start</pre>
<p>として、http://localhostにアクセスすると・・・</p>
<p style="padding-left: 30px;"><strong>It works !!</strong></p>
<p>やった!!取り敢えず動きました(≧∇≦)b</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2009/02/15/ubuntu810%e3%81%abapache2211%e3%82%92%e5%85%a5%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2009/02/15/ubuntu810%e3%81%abapache2211%e3%82%92%e5%85%a5%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/" />
	</item>
		<item>
		<title>ubuntu8.10でnautilusのFTP接続がFirefoxになってしまう</title>
		<link>http://blog.lamp-introduction.com/2008/12/17/ubuntu810%e3%81%a7nautilus%e3%81%aeftp%e6%8e%a5%e7%b6%9a%e3%81%8cfirefox%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%86/</link>
		<comments>http://blog.lamp-introduction.com/2008/12/17/ubuntu810%e3%81%a7nautilus%e3%81%aeftp%e6%8e%a5%e7%b6%9a%e3%81%8cfirefox%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%86/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 17:13:43 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntuで行こう!!]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=470</guid>
		<description><![CDATA[久々の連続投稿です〜。たった今解決しましたので、嬉しくて書いてしまいます(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ
ubuntuのnautilusファイルブラウザは、FTP接続なんかも出来ちゃってチョ〜便利。なので [...]]]></description>
			<content:encoded><![CDATA[<p>久々の連続投稿です〜。たった今解決しましたので、嬉しくて書いてしまいます(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ</p>
<p>ubuntuのnautilusファイルブラウザは、FTP接続なんかも出来ちゃってチョ〜便利。なので、ちょっとしたファイルの書き換えをしたい時などによく利用しているのですが、何故かnautilusのメニューからFTP接続しているにも関わらず、Firefox君がその役目を華麗にインターセプトしてくれます。</p>
<p>何か設定イジったかな〜?などと考えつつGoogle先生にお伺いを立ててみると、同じ境遇の方がいらっしゃいました。</p>
<p style="padding-left: 30px;"><a href="http://ubuntuforums.org/showthread.php?t=313515" target="_blank">Nautilus FTP instead of Firefox/Swiftfox</a></p>
<p>単純に、デフォルトのFTPアプリケーションがFirefoxになってしまっているだけのようです。なので、Alt+F2でgconf-editorと入力したら、desktop→gnome→url-handlers→ftpを選択。我が家の環境では、command欄が「/usr/bin/firefox swiftfox &#8220;%s&#8221;」となっていましたので、これを「nautilus &#8220;%s&#8221;」に変更。その後再度FTP接続してみると・・・</p>
<p>nautilusが起動しましたヾ(＠＾▽＾＠)ﾉ ワーイ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2008/12/17/ubuntu810%e3%81%a7nautilus%e3%81%aeftp%e6%8e%a5%e7%b6%9a%e3%81%8cfirefox%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2008/12/17/ubuntu810%e3%81%a7nautilus%e3%81%aeftp%e6%8e%a5%e7%b6%9a%e3%81%8cfirefox%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%86/" />
	</item>
		<item>
		<title>WordPressでシンタックスハイライトを利用する</title>
		<link>http://blog.lamp-introduction.com/2008/11/23/wordpress%e3%81%a7%e3%82%b7%e3%83%b3%e3%82%bf%e3%83%83%e3%82%af%e3%82%b9%e3%83%8f%e3%82%a4%e3%83%a9%e3%82%a4%e3%83%88%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.lamp-introduction.com/2008/11/23/wordpress%e3%81%a7%e3%82%b7%e3%83%b3%e3%82%bf%e3%83%83%e3%82%af%e3%82%b9%e3%83%8f%e3%82%a4%e3%83%a9%e3%82%a4%e3%83%88%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 10:25:39 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=387</guid>
		<description><![CDATA[以前「InkTypeに乗り換える!!」と喚いていたクセに、当分の間はお世話になりそうなWordPress。そこで、新しいプラグインを追加してみました(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ
今までの投稿では、ソー [...]]]></description>
			<content:encoded><![CDATA[<p>以前「<a href="http://www.inktype.org/" target="_blank">InkType</a>に乗り換える!!」と喚いていたクセに、当分の間はお世話になりそうなWordPress。そこで、新しいプラグインを追加してみました(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ</p>
<p>今までの投稿では、ソースコードは全て「blockquote」でマークアップするという暴挙に出ていたｵﾗｧ(pﾟﾛﾟ)==p)`д)ｸﾞﾊｯので、いくら何でもこれはマズかろう、と…。</p>
<p>色々なブログを見ていると&lt;pre&gt;&lt;/pre&gt;などが利用されているようです。そこで、同じように&lt;pre&gt;&lt;/pre&gt;でマークアップしてみましたが、このテーマではCSSが指定されていないようなのでどうにも味気ない。</p>
<p>CSSあんまりよく分からないし面倒だし、WordPressならプラグインなどあるのではなかろうか?と探してみたら、やっぱりありました〜Ｏ(≧▽≦)ＯさすがWordPress。</p>
<p>利用させていただいたのは、「<a href="http://wordpress.org/extend/plugins/syntaxhighlighter-plus/" target="_blank">SyntaxHighlighter Plus</a>」。使い方はとっても簡単で、ダウンロードしたプラグインを解凍したらフォルダごと/wp-content/plugins/にアップロード。管理画面からプラグインを有効化したら、それで準備はオッケーです。</p>
<p>でもって、ハイライトさせたい箇所を</p>
<p style="padding-left: 30px;"><strong>[sourcecode language='言語名'] [/sourcecode]</strong></p>
<p>で囲むだけ。実際にやってみるとこんな感じになりました。</p>
<pre class="brush: php">
&lt;?php
class Hoge extends Controller
{
    public function __construct()
    {
        parent::Controller();
    }

    public function index()
    {
         echo &#039;CodeIgniter is cool framework!!&#039;;
    }
}
/**
* End of file hoge.php
*/
</pre>
<p>Javasvriptを利用しているので、無効にされていると綺麗にハイライト出来ないようですから、オフでご覧になっている方は一度オンにしてみて下さい。</p>
<p>このプラグイン、PHPは勿論多言語に対応しているみたいです。参考にさせていただいたこちらのブログで詳しく解説されています。</p>
<p style="padding-left: 30px;"><a href="http://xxx91.nuts-choco.com/b-log/?p=359" target="_blank">【WP】ソースコードをシンタックスハイライトする”SyntaxHighlighter Plus</a></p>
<p>さて、週末にちょこっと触ってみた<a href="http://codeigniter.com/" target="_blank">Codeigniter1.7</a>ですが、フォームのバリデーション周りがかなり便利になった印象です。詳しくは次回にでも…。</p>
<p>今日はここまで･△･)ﾉ ﾊﾞｲﾊﾞｲ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2008/11/23/wordpress%e3%81%a7%e3%82%b7%e3%83%b3%e3%82%bf%e3%83%83%e3%82%af%e3%82%b9%e3%83%8f%e3%82%a4%e3%83%a9%e3%82%a4%e3%83%88%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2008/11/23/wordpress%e3%81%a7%e3%82%b7%e3%83%b3%e3%82%bf%e3%83%83%e3%82%af%e3%82%b9%e3%83%8f%e3%82%a4%e3%83%a9%e3%82%a4%e3%83%88%e3%82%92%e5%88%a9%e7%94%a8%e3%81%99%e3%82%8b/" />
	</item>
		<item>
		<title>特定のコンテンツをドキュメントルート外に設置</title>
		<link>http://blog.lamp-introduction.com/2008/11/20/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%82%92%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88%e3%83%ab%e3%83%bc%e3%83%88%e5%a4%96%e3%81%ab%e8%a8%ad%e7%bd%ae/</link>
		<comments>http://blog.lamp-introduction.com/2008/11/20/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%82%92%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88%e3%83%ab%e3%83%bc%e3%83%88%e5%a4%96%e3%81%ab%e8%a8%ad%e7%bd%ae/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 17:05:53 +0000</pubDate>
		<dc:creator>taro</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[LAMP奮闘記]]></category>

		<guid isPermaLink="false">http://lamp-introduction.com/wordpress/?p=377</guid>
		<description><![CDATA[今日は短いですが、Apacheの設定をしてみました(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ
Apacheで設定するドキュメントルート。このディレクトリ以下に設置されたファイルやディレクトリは、基本的にwwwからア [...]]]></description>
			<content:encoded><![CDATA[<p>今日は短いですが、Apacheの設定をしてみました(= &#8216;艸&#8217;)ﾑﾌﾟﾌﾟ</p>
<p>Apacheで設定するドキュメントルート。このディレクトリ以下に設置されたファイルやディレクトリは、基本的にwwwからアクセス出来てしまうので、セキュリティを高める意味でもアクセスされたくない(中身を覗かれたくない)ディレクトリは、ドキュメントルートより上の階層に設置するのが良いそうです。</p>
<p><strong>Alias</strong>というディレクティブを利用して実現できるそうです(Apacheのモジュールでmod_aliasが必要との事)。</p>
<blockquote><p>Alias　[ドメイン以下のパス]　[実際にアクセスさせるパス]</p></blockquote>
<p>という事は、例えばhttp:hoge.comなどというURLがありまして、そのドメイン以下にあるhttp://hoge.com/fugaというコンテンツをAliasさせたい場合、ドキュメントルートが/var/www/htmlだとすると、設定ファイルに記述する内容は</p>
<blockquote><p>Alias　/fuga　/var/www/fuga</p></blockquote>
<p>という感じですかね?</p>
<p>早速実験実験と、「されどLAMPな日々」をドキュメントルート外に設置してAliasしてみると…。</p>
<p>見事表示されましたＯ(≧▽≦)Ｏ</p>
<p>ディレクトリ・ファイルのパーミッションには注意しないとダメみたいです〜。あとは、同じ処理のAliasMatchというディレクティブもあるそうで、こちらはパス名に正規表現が使えるそうです。Apache便利だな〜。</p>
<p>最近CIが触れてないです。そろそろちゃんと1.7をチェックしたいです。</p>
<p>今日はここまで･△･)ﾉ ﾊﾞｲﾊﾞｲ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lamp-introduction.com/2008/11/20/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%82%92%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88%e3%83%ab%e3%83%bc%e3%83%88%e5%a4%96%e3%81%ab%e8%a8%ad%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.lamp-introduction.com/2008/11/20/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%82%92%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88%e3%83%ab%e3%83%bc%e3%83%88%e5%a4%96%e3%81%ab%e8%a8%ad%e7%bd%ae/" />
	</item>
	</channel>
</rss>
