<?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/"
	>

<channel>
	<title>futuremix &#187; Apache</title>
	<atom:link href="http://futuremix.org/tag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://futuremix.org</link>
	<description>津田ふみかの日記・言想風景改め未来模景。 Remix The Future.</description>
	<lastBuildDate>Fri, 05 Mar 2010 12:33:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CentOS5 に phpMyAdmin をインストール</title>
		<link>http://futuremix.org/2009/11/centos5-phpmyadmin-install</link>
		<comments>http://futuremix.org/2009/11/centos5-phpmyadmin-install#comments</comments>
		<pubDate>Wed, 25 Nov 2009 22:00:49 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[phpMyAdmin]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2981</guid>
		<description><![CDATA[インストール

  EPEL に RPM パッケージが用意されています。yum で EPEL を使えるようにして phpMyAdmin をインストールします。


# yum install phpMyAdmin

アク [...]]]></description>
			<content:encoded><![CDATA[<h3>インストール</h3>
<p>
  EPEL に RPM パッケージが用意されています。<a href="http://futuremix.org/2009/01/centos-epel-atrpms-yum">yum で EPEL を使えるように</a>して phpMyAdmin をインストールします。
</p>
<pre class="command">
# yum install phpMyAdmin
</pre>
<h3>アクセス許可</h3>
<p>
  初期状態では、サーバのローカルからしか許可されていません。これをローカルエリアネットワークからアクセスできるように許可するには、/etc/httpd/conf.d/phpMyAdmin.conf を編集します。
</p>
<pre class="config">
&lt;Directory "/usr/share/phpmyadmin"&gt;
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1
  <kbd>Allow from 192.168.1.0/24</kbd> ←追加
&lt;/Directory&gt;
</pre>
<p>
  これで http://サーバ名/phpmyadmin/ にアクセスして、ログイン画面が出ればOKです。
</p>
<p>
  もちろん、インターネット側からアクセスできるような設定もできますが、その場合は IP アドレスを限定したり Digest 認証の設定をするなどセキュリティには注意を払いましょう。
</p>
<h3>「mcrypt 拡張をロードできません」のエラー</h3>
<div class="screenshot">
<img src="http://futuremix.org/wp-content/uploads/2009/11/phpMyAdmin_mcrypt.png" alt="phpMyAdmin の mcrypt のエラー" title="phpMyAdmin の mcrypt のエラー" width="508" height="468" class="alignnone size-full wp-image-3003" />
</div>
<p>
  「<samp class="error">mcrypt 拡張をロードできません。PHPの設定を確認してください</samp>」というエラーが出た場合は、php-mcrypt パッケージがインストールされていません。yum でインストールして、Apache を再起動します。
</p>
<pre class="command">
# yum install php-mcrypt
# service httpd graceful
</pre>
<h3>blowfish_secret の設定</h3>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/11/phpMyAdmin_browfish-secret.png" alt="phpMyAdmin の browfish_secret が未設定というエラー画面" title="phpMyAdmin の browfish_secret が未設定というエラー画面" width="511" height="367" class="alignnone size-full wp-image-3004" />
</div>
<p>
「<samp class="error">設定ファイルが秘密のパスフレーズ（blowfis_secret）を必要とするようになりました</samp>」というエラーが出た場合は、/usr/share/phpmyadmin/config.inc.php ファイルを編集して、<var>$cfg['blowfish_secret']</var> に秘密のパスフレーズを設定します。
</p>
<pre class="config">
$cfg['blowfish_secret'] = '<em>ここに秘密のパスフレーズを設定</em>'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
</pre>
<h3>サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)のエラー</h3>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/11/phpMyAdmin_socket_error.png" alt="サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)ｋ５o\" title="サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)ｋ５o\" width="506" height="482" class="alignnone size-full wp-image-3005" />
</div>
<p>
  「サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)」というエラーが出るときは、メッセージどおり、MySQL のサーバが動いていない可能性があります。phpMyAdmin と MySQL のホストが異なる場合は、/usr/share/phpmyadmin/config.inc.php の $cfg['Servers'][$i]['host'] を変更します。
</p>
<pre class="config">
$cfg['Servers'][$i]['host'] = '<kbd>192.168.1.100</kbd>';  //←localhost から変更
</pre>
<p>
  RPM インストールであれば問題ないはずですが、それでもつながらない場合、ソケットの場所を確認します。ターミナルから mysql コマンドで接続したら　statusコマンドでソケットのパスを確認します。
</p>
<pre class="command">
$ mysql -u root
mysql&gt; status
<samp>--------------
UNIX socket:            /var/lib/mysql/mysql.sock</samp>
</pre>
<p>
  このパスを、phpMyAdmin の config.inc.php に記述します。また connect_type も確認しましょう。
</p>
<pre class="config">
$cfg['Servers'][$i]['connect_type']  = '<kbd>socket</kbd>';       // ←tcpから変更
$cfg['Servers'][$i]['socket']        = '<kbd>/var/lib/mysql/mysql.sock</kbd>';
</pre>
<h3>ログイン画面の前にブラウザのパスワードダイアログが表示される</h3>
<p>
  ログイン画面の前にパスワードダイアログがでる場合、以下の方法でログイン画面の表示に変更できます。管理画面に別途 Digest 認証などをかけているときは干渉して都合が悪いです。
</p>
<pre class="config">
$cfg['Servers'][$i]['auth_type']     = 'cookie'; //←http から変更
</pre>
<p>
  ログイン画面が出たら、通常は mysql データベースのログインアカウントとパスワードで入れるはずです。MySQL の初期状態では root ユーザでパスワード無しでは入れてしまいますので、その場合は root のパスワードを設定しましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/11/centos5-phpmyadmin-install/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache のバーチャルホストの設定</title>
		<link>http://futuremix.org/2009/11/apache-virtual-hosts-conf</link>
		<comments>http://futuremix.org/2009/11/apache-virtual-hosts-conf#comments</comments>
		<pubDate>Wed, 18 Nov 2009 10:16:01 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2958</guid>
		<description><![CDATA[
  Apache のバーチャルホストの設定は、httpd.conf に直接書く場合もありますが、他のファイルに分けて書いた方がメンテナンスは容易です。Apache 2.2 では、httpd/extra/httpd-vh [...]]]></description>
			<content:encoded><![CDATA[<p>
  Apache のバーチャルホストの設定は、httpd.conf に直接書く場合もありますが、他のファイルに分けて書いた方がメンテナンスは容易です。Apache 2.2 では、httpd/extra/httpd-vhosts.conf に書くようになっています。CentOS など Red Hat 系では /extra/ ディレクトリはなく、conf.d/*.conf が自動的に読み込まれますので、/etc/httpd/conf.d/httpd-vhosts.conf というファイルを作るのがよいと思います。
</p>
<p>
  CentOS 5での例ですが、まず /etc/httpd/conf/httpd.conf を編集します。
</p>
<pre class="config">
NameVirtualHost *:80
</pre>
<p>
上記を有効にします。バーチャルホストはドメインごとに以下のように設定します。
</p>
<pre class="command">
# www.example1.org
&lt;VirtualHost *:80&gt;
    DocumentRoot /var/www/vhosts/example1
    ServerName www.example1.org
    ServerAlias example1.org
    ErrorLog logs/example1.org-error_log
    CustomLog logs/example1.org-access_log combined
&lt;/VirtualHost&gt;
</pre>
<p>
  http://www.example1.org/ にアクセスしたときに /var/www/vhosts/example1/ ディレクトリのファイルを表示する例です。エイリアスとして www なしの http://example1.org/ でも同じ設定を使うようになっています。また、ログも分けて出力するようにしています。
</p>
<p>
  バーチャルホストの設定がたくさんあるときは、それぞれのサイトごとにファイルを分けた方が良い場合もあります。（特に複数の管理者で触るような場合）まず httpd.conf で
</p>
<pre class="config">
Include conf.d/vhosts/*.conf
</pre>
<p>
  のようにして、/etc/httpd/conf.d/vhosts/*.conf ファイルを読み込むように設定します。ドメインごとに example1.org.conf や example2.net.conf などのファイルを作っていきます。
</p>
<pre class="config">
&lt;VirtualHost *:80&gt;
    DocumentRoot /var/www/vhosts/example2
    ServerName example2.net
    ServerAlias www.example2.net
    AddDefaultCharset euc-jp
    &lt;Directory "/var/www/vhosts/example2"&gt;
      Options Includes ExecCGI FollowSymLinks MultiViews
    php_value mbstring.language Japanese
    php_value mbstring.internal_encoding EUC-JP
    php_value mbstring.http_input auto
    php_value mbstring.http_output EUC-JP
&lt;/VirtualHost&gt;
</pre>
<p>
  上記は、サーバ全体の文字コード指定は UTF-8 だが、example2.net だけは EUC-JP で稼動させたいときの設定です。HTML だけでなく PHP の内部コードと出力文字コードも EUC-JP にしています。
</p>
<p>
  設定を有効にするには、Apahce をリロードします。
</p>
<pre class="command">
# service httpd relaod
</pre>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/11/apache-virtual-hosts-conf/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5.4 で Oracle 対応 PHP の RPM</title>
		<link>http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm</link>
		<comments>http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm#comments</comments>
		<pubDate>Wed, 11 Nov 2009 13:00:54 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm</guid>
		<description><![CDATA[
  以前書いたCentOS 5.2 での Oracle 対応 PHP の RPM の改訂版です。今回は CentOS 5.4 (32bit版) のマシンで試しました。なお、Oracle instant Client は [...]]]></description>
			<content:encoded><![CDATA[<p>
  以前書いた<a href="http://futuremix.org/2008/08/centos-oracle-php-rpm-spec-patch">CentOS 5.2 での Oracle 対応 PHP の RPM</a> の改訂版です。今回は CentOS 5.4 (32bit版) のマシンで試しました。なお、Oracle instant Client は 11.x ではなく 10.2.0.4 を利用しました。
</p>
<p>
  CentOS 5.x では、PHP 5.1.6 をベースにしています。手順としては Oracle Instant Client をインストールし、CentOS の PHP の SRPM をダウンロードし、SPEC ファイルを編集し、ビルドという手順になります。
</p>
<h3>Oracle Instant Client の インストール</h3>
<p>
  Oracle Instant Client 10.2.0.4 の RPM をダウンロードします。ダウンロードには OTN の登録が必要です。ここでは Linux x86版(32bit版)の 10.2.0.4 の RPM をダウンロードします。最低限、oracle-instantclient-basic と oracle-instantclient-devel のパッケージはインストールが必要です。jdbc ドライバは不要です。
</p>
<p>
  次に /etc/ld.so.conf.d/oracle-instant-client.conf というファイルを作成し、ライブラリパスを追加します。
</p>
<pre class="command">
# echo '/usr/lib/oracle/10.2.0.4/client/lib/' &gt;&gt; /etc/ld.so.conf.d/oracle-instant-client.conf
</pre>
<p>
  64bit 版の場合は次のようになります。
</p>
<pre class="command">
# echo '/usr/lib/oracle/10.2.0.4/client64/lib/' &gt;&gt; /etc/ld.so.conf.d/oracle-instant-client.conf
</pre>
<p>
  ライブラリパスを再読込します。
</p>
<pre class="command">
# ldconfig
</pre>
<p>
  いまは PHP をビルドするのが目的なので、Oracle データベースへの接続確認は割愛します。
</p>
<h3>PHP の SRPM のダウンロード</h3>
<p>
  なぜか yumdownloader コマンドではうまく行かなかったので、理化学研究所のミラーから直接ダウンロードしました。
</p>
<pre class="command">
  wget http://ftp.riken.go.jp/Linux/centos/5.4/os/SRPMS/php-5.1.6-23.2.el5_3.src.rpm
</pre>
<p>
  この RPM をインストールすると、/usr/src/redhat/SPECS/ に php.spec ファイルが置かれます。また、/usr/src/redhat/SOURCES/ 配下にビルドに必要な PHP のソースファイルと、各種パッチファイルや設定ファイルなどが置かれます。
</p>
<h3>パッチファイルのダウンロード</h3>
<p>
  <a href="/downloads/php-5.1.6-oci8conf.patch">php-5.1.6-oci8conf.patch</a> をダウンロードして SOURCES ディレクトリに配置してください。Oracle が提供する SRPM や、<a href="http://remi.collet.free.fr/files/php-5.2.5-oci8conf.patch">他のパッチ</a>を元に、私が作ったものです。
</p>
<h3>SPEC ファイルの編集</h3>
<p>
  こちらも、oci8 のために変更が必要です。変更箇所が多いので、<a href="/downloads/php.spec.516_23_2">php.spec (php-5.1.6.23.2.el5_3 用 32bit)</a>に置きました。これをダウンロードして php.spec と差し替えてください。変更点は diff を取ればわかると思います。64bit 環境では、ライブラリパスを <code>/usr/lib/oracle/%{ociver}/client/lib</code> から <code>/usr/lib/oracle/%{ociver}/client64/lib</code> に変更する必要があります。
</p>
<h3>RPM のビルド</h3>
<pre class="command">
  $ rpmbuild -ba php.spec &#45;-target i686  &#45;-define 'oracle 1'
</pre>
<p>
  開発ライブラリなどがないと、コンパイルエラーとなります。事前に php.spec の BuildRequires セクションに書かれている RPM 群を yum コマンドでインストールしておきましょう。bzip2-devel, curl-devel, libstdc++-devel などです。
</p>
<pre class="command">
  # yum install bzip2-devel curl-devel libstdc++-devel
</pre>
<p>
  ビルドにはかなり時間がかかります。RPM ファイルは上記の例では /usr/src/redhat/RPMS/i686/ に配置されます。 php-oci8-5.1.6-23.2.ora.i686.rpm というファイルが PHP の OCI8 関数のモジュールを含んだ RPM です。 このモジュールを含む PHP の RPM をインストールしたら Apache を再起動します。phpinfo() コマンドで oci8 パッケージが有効になっていることを確認してみてください。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/11/phpinfo-php-oci8-500x485.png" alt="phpinfo() で OCI8関数が有効になった状態を確認する" title="phpinfo() で OCI8関数が有効になった状態を確認する" width="500" height="485" class="alignnone size-medium wp-image-2934" />
</div>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/11/centos-54-oracle-php-oci8-rpm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>無料 SSL 証明書 StartSSL を使う</title>
		<link>http://futuremix.org/2009/02/startssl</link>
		<comments>http://futuremix.org/2009/02/startssl#comments</comments>
		<pubDate>Tue, 03 Feb 2009 22:00:38 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=2158</guid>
		<description><![CDATA[
  無料で利用できる StartSSL の証明書を使って、Apache + mod_ssl で HTTPS 通信ができるように設定をする方法です。StartSSL は、個人であれば、1年間の期限付きで SSL 証明書を [...]]]></description>
			<content:encoded><![CDATA[<p>
  無料で利用できる <a href="https://www.startssl.com/">StartSSL</a> の証明書を使って、Apache + mod_ssl で HTTPS 通信ができるように設定をする方法です。StartSSL は、個人であれば、1年間の期限付きで SSL 証明書を無料で取得できます。ただし、ドメインの所有者である必要があります。
</p>
<p>
  無料とはいえ、Firefox や Safari であれば、認証局として登録されているので、これらのブラウザで警告は出ません。残念ながら IE は対応していないようです。私の場合は Firefox で試しました。なお、私が試した内容を参考程度に書いているだけですので、この記事をもとに何か損害が発生しても、責任が取れません。くれぐれも自己責任でお願いします。
</p>
<h3>StartSSL に登録</h3>
<p>
  まず <a href="https://www.startssl.com/">StartSSL</a> に登録します。StartSSL Free を選択し、「Register」を選択します。
</p>
<div class="screenshot">
<img src="http://futuremix.org/wp-content/uploads/2009/01/startssl1-500x393.png" alt="startssl の登録1" title="startssl の登録1" width="500" height="393" class="alignnone size-medium wp-image-2159" />
</div>
<p>
  住所、氏名、メールアドレスなどを入力します。「Zip, Locality/Place」には郵便番号と市町村名（もちろんローマ字で）を入力します。「State/Region」は都道府県名を選択します。「Phone」 は海外か日本国内へかける要領で、03-1234-5678 であれば +81-3-1234-5678 のようになります。Continue を押します。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl2-500x132.png" alt="StartSSL の登録2" title="StartSSL の登録2" width="500" height="132" class="alignnone size-medium wp-image-2160" />
</div>
<p>
  すぐに登録したメールアドレスに認証用のコードが送られてきますので、これを貼り付けて「continue」を押します。ちなみに最初メールが届いてから15分くらい経って入力したら、すでにキーが破棄されていて最初からやり直しになりましたので、すぐに作業しましょう。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl3-500x197.png" alt="StartSSL の登録3" title="StartSSL の登録3" width="500" height="197" class="alignnone size-medium wp-image-2161" />
</div>
<p>
  なぜか日本語化されている「高強度の暗号化」を選んで、「Continue」を押します。
</p>
<div class="screenshot">
<img src="http://futuremix.org/wp-content/uploads/2009/01/startssl4-500x124.png" alt="StartSSLの登録4" title="StartSSLの登録4" width="500" height="124" class="alignnone size-medium wp-image-2162" />
</div>
<p>
  ブラウザに証明書がインストールされました。今後は StartSSL へのログインは、この証明書を使って行なわれます。そのため、パスワードはありません。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl_client_ssl_dialog.png" alt="StartSSL へログインする際には、クライアント証明書を利用する。" title="StartSSL へログインする際には、クライアント証明書を利用する。" width="416" height="395" class="alignnone size-full wp-image-2174" />
</div>
<h3>クライアント証明書のバックアップ</h3>
<p>
  StartSSL には、クライアント証明書がインストールされたブラウザでなければアクセスできなくなりますので、万が一に備えて証明書をバックアップしましょう。次の例は Firefox 3 の場合です。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/client_ssl_backup1-500x437.png" alt="クライアント証明書のバックアップ1" title="クライアント証明書のバックアップ1" width="500" height="437" class="alignnone size-medium wp-image-2164" />
</div>
<p>
  「ツール」-「オプション」でオプション画面を出して、「詳細」タブを選択します。「証明書を表示」ボタンを押します。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/client_ssl_backup2-500x334.png" alt="クライアント証明書のバックアップ" title="クライアント証明書のバックアップ" width="500" height="334" class="alignnone size-medium wp-image-2165" />
</div>
<p>
  StartCom Free ……という証明書を選択し、「バックアップ」ボタンを押します。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/client_ssl_backup3-500x263.png" alt="クライアント証明書のバックアップ" title="クライアント証明書のバックアップ" width="500" height="263" class="alignnone size-medium wp-image-2166" />
</div>
<p>
  バックアップ用パスワードを訊かれますので入力します。このパスワードは後で証明書をインポートする際に必要となるものです。
</p>
<h3>ドメインを認証する</h3>
<p>
  Web サーバの証明書作成の前に、ドメインの所有者であることを確認するためのプロセスがあります。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl5-499x289.png" alt="StartSSL の設定5" title="StartSSL の設定5" width="499" height="289" class="alignnone size-medium wp-image-2170" />
</div>
<p>
  タブの Validations Wizard をクリックします。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl6.png" alt="StartSSL の設定6" title="StartSSL の設定6" width="545" height="343" class="alignnone size-full wp-image-2167" />
</div>
<p>
  Type として Domain Name Validation を選択します。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl7.png" alt="StartSSL の設定7" title="StartSSL の設定7" width="510" height="273" class="alignnone size-full wp-image-2168" />
</div>
<p>
  自分の所有するドメイン名を指定します。この時点では、www をつける必要はありません。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl8.png" alt="StartSSL の設定8" title="StartSSL の設定8" width="554" height="276" class="alignnone size-full wp-image-2169" />
</div>
<p>
  ドメインの正当な所有者であることを確認するためのキーが送られてくるメールアドレスを選択します。こちらで任意のアドレスを指定することはできません。「continue」を押すと、メールにキーが送られてきます。このキーを入力すると、ドメインの所有者であることが確認され、Web サーバ用の証明書などが作成できるようになります。
</p>
<h3>Webサーバ用の証明書を作成する</h3>
<p>
  いよいよ Webサーバ用の証明書を作成します。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl9.png" alt="StartSSL の設定9" title="StartSSL の設定9" width="545" height="371" class="alignnone size-full wp-image-2171" />
</div>
<p>
  「Certificates Wizard」のタブを押して、SSL/TLS Web Serber Certificate を選択します。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl10.png" alt="StartSSL の設定10" title="StartSSL の設定10" width="557" height="384" class="alignnone size-full wp-image-2172" />
</div>
<p>
  自分で作成した秘密鍵ファイルが無い場合は、ここで作成することもできます。10文字以上32文字以下のパスフレーズを入力して continue を押します。パスフレーズにはアルファベットと数字のみが使えます。（自分で作成した秘密鍵ファイルがある場合は、Skip を押して先に進みます。）
</p>
<div class="screenshot">
<img src="http://futuremix.org/wp-content/uploads/2009/01/startssl_private_key-500x332.png" alt="StartSSL の設定画面で秘密鍵を作成したところ" title="StartSSL の設定画面で秘密鍵を作成したところ" width="500" height="332" class="alignnone size-medium wp-image-2178" />
</div>
<p>
  このファイルをサーバに保存します。説明文では ssl.key という名前で保存と書かれていますが、ここでは /etc/httpd.conf/ssl.key/server.key に保存します。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl11.png" alt="StartSSL の設定11 サブドメインを指定する" title="StartSSL の設定11 サブドメインを指定する" width="551" height="309" class="alignnone size-full wp-image-2175" />
</div>
<p>
  サーバのサブドメインを指定します。ここではサブドメインとして www を指定しています。サブドメインを使わないについても証明書には含まれますので、とりあえず www を指定しておきましょう。なお、無料では複数のサブドメインや、ワイルドカード (*.example.org) の指定はできません。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl12-500x345.png" alt="StartSSL の設定12" title="StartSSL の設定12" width="500" height="345" class="alignnone size-medium wp-image-2176" />
</div>
<p>
  <abbr title="Certificate Signing Request">CSR</abbr> ファイルが作成されました。CSR ファイルは署名の要求をするためのもので、StartSSL がこの内容に署名をして証明書として発行してくれるものです。通常は同じサーバ・ドメインでも証明書の発行ごとに毎回異なる秘密鍵を生成して CSR ファイルを生成するものなので、特に保存の必要はないと思います。必要であればダウンロードして保存します。次に「continue」をクリックします。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2009/01/startssl13-500x297.png" alt="StartSSL の設定13" title="StartSSL の設定13" width="500" height="297" class="alignnone size-medium wp-image-2177" />
</div>
<p>
  PEM エンコードされた CRT ファイルができます。これが Web サーバの証明書ファイルです。これを /etc/httpd/conf/ssl.crt/server.crt として保存します。保存したら「continue」をクリックします。これで証明書の作成は終了です。
</p>
<h3>Apache + mod_ssl で設定</h3>
<p>
  次に Apache + mod_ssl の環境で、これらの証明書を使うように設定します。通常、httpd.conf は変更する必要はありません。CentOS で PRM から入れていれば、/etc/httpd/conf.d/ssl.conf というファイルがありますので、これを編集します。</p>
<pre class="config">
&lt;VirtualHost _default_:443&gt;
DocumentRoot "/var/www/html
ServerName example.org:443
ServerAlias www.example.org:443

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
……
&lt;/VirtualHost&gt;
</pre>
<p>
  SSL は NameNameVirtualHost を利用している場合でも利用できます。保存したら httpd を再起動します。
</p>
<pre class="command">
# service httpd configtest
<samp>Syntax OK</samp>
# service httpd restart
<samp>httpd を停止中:                                            [  OK  ]
httpd を起動中: Apache/2.0.52 mod_ssl/2.0.52 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server example.org:443 (RSA)
Enter pass phrase: <span class="comment">//←パスフレーズを入力</span>
OK: Pass Phrase Dialog successful. [  OK  ]</samp>
</pre>
<p>
  再起動時に、秘密鍵作成時に入力したパスフレーズを入力すれば Apache が起動します。この作業を毎回しないと Apache が起動しなくなり不便です。秘密鍵のパスフレーズを解除しておくには、openssl コマンドを使って次のようにします。
</p>
<pre class="command">
# openssl rsa -in server.key -out server.key
</pre>
<p>
  なお、秘密鍵ファイルは root と apache 以外の第三者が閲覧できないようなパーミッションに設定しておきましょう。
</p>
<h3>Web ブラウザでアクセスしてみる</h3>
<p>
  Firefox でサーバに https://～ でアクセスしてみます。設定に問題がなければ、何も警告が出ずに SSL 通信ができるはずです。
</p>
<p>
  ブラウザでアクセスできない場合、Port 443 がファイアウォールで遮断されていないか確認してください。
</p>
<div class="screenshot">
<img src="http://futuremix.org/wp-content/uploads/2009/01/ssl_error_rx_record_too_long.png" alt="ssl_error_rx_record_too_long のエラーが出て通信できない" width="560" height="300" class="alignnone wp-image-2180" />
</div>
<p>
  ssl_error_rx_record_too_long のエラーが出る場合は、httpd.conf か ssl.conf でバーチャルホストの設定が正しくされていない可能性がありますので、設定を確認してください。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2009/02/startssl/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP ファイルのアップロードエラー解決方法</title>
		<link>http://futuremix.org/2008/08/php-file-upload-problem</link>
		<comments>http://futuremix.org/2008/08/php-file-upload-problem#comments</comments>
		<pubDate>Fri, 22 Aug 2008 22:00:00 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1466</guid>
		<description><![CDATA[
  PHP のファイルアップロード実装で、つまずきそうな部分をまとめてました。

大きなファイルがアップロードできない

  php.ini の upload_max_filesize と post_max_size  [...]]]></description>
			<content:encoded><![CDATA[<p>
  PHP のファイルアップロード実装で、つまずきそうな部分をまとめてました。
</p>
<h3>大きなファイルがアップロードできない</h3>
<p>
  php.ini の <var>upload_max_filesize</var> と <var>post_max_size</var> の値がどのようになっているか確認。あと、<var>memory_limit</var> は上記の2つの値より大きくなっている必要があります。php.ini が直接覗けない場合は
</p>
<pre class="code">
  echo ini_get('upload_max_filesize');
  echo ini_get('post_max_size');
  echo ini_get('memory_limit');
</pre>
<p>
  のようにして確認することもできます。まあ、php.ini を編集できないと回避できないのですが。
</p>
<p>
  上記の設定に問題ない場合、HTML で MAX_FILE_SIZE を指定していないか確認します。
</p>
<pre class="example">
  &lt;input type="hidden" name="MAX_FILE_SIZE" value="1000000" /&gt;
</pre>
<p>
  HTML のフォームに <var>MAX_FILE_SIZE</var> を設定することが推奨されていますが、この値をセットしていることを忘れて、変更が漏れているかもしれません。
</p>
<p>
  Apache 側の設定の可能性もあります。httpd.conf や /etc/httpd/conf.d/php.conf などで、<var><a href="http://futuremix.org/2005/02/php-request-limit">LimitRequestBody</a></var> の値を制限しているかどうか確認してください。
</p>
<h3>そもそもアップロードできない</h3>
<p>
  大きいファイルだけでなく小さいファイルもアップロードできない場合は、php.ini で <var>file_uploads</var> が Off になっているかもしれません。</p>
<p>
  また、form 要素の <var>enctype</var> 属性が <kbd>multipart/form-data</kbd> に設定されていない可能性があります。
</p>
<pre class="example">
  &lt;form method="post" enctype="multipart/form-data"&gt;
</pre>
<p>
  それ以外では、サーバのテンポラリディレクトリが存在しなかったり、apache を実行しているユーザで書き込みできなくなっている可能性があります。php.ini の <var>upload_tmp_dir</var> に設定されているディレクトリが有効かどうか確認してください。
</p>
<h3>突然アップロードできなくなった</h3>
<p>
  サーバのディスク容量が不足しているかもしれません。
</p>
<h3>エラーコードを調べる</h3>
<p>
  PHP の変数 $_FILE["<var>input_name</var>"]["error"] にエラーコードが格納されています。<a href="http://jp.php.net/manual/ja/features.file-upload.errors.php">エラーコードの説明</a> を参照すると、より原因が絞り込めます。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2008/08/php-file-upload-problem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache 起動直後に PHP で ORA-00911 エラーが発生</title>
		<link>http://futuremix.org/2008/08/ora-00911-error-occurred-after-resterted-apache</link>
		<comments>http://futuremix.org/2008/08/ora-00911-error-occurred-after-resterted-apache#comments</comments>
		<pubDate>Wed, 20 Aug 2008 11:57:40 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://futuremix.org/?p=1464</guid>
		<description><![CDATA[
  Apache 起動直後に PHP から Oracle に接続すると、ORA-00911 エラーが発生することがあります。


ORA-00911: invalid character in hogehoge.php [...]]]></description>
			<content:encoded><![CDATA[<p>
  Apache 起動直後に PHP から Oracle に接続すると、ORA-00911 エラーが発生することがあります。
</p>
<pre class="log">
ORA-00911: invalid character in hogehoge.php on line X
</pre>
<p>
  しかし、SQL には誤りはなく sqlplus で実行できますし、しばらく時間が経過すると、Apache + PHP 上でもエラーかでなくなります。PHP のコード中では
</p>
<pre class="code">
putenv("NLS_LANG=Japanese_Japan.UTF8");
</pre>
<p>
として、<var>NLS_LANG</var>の値を設定していますが、どうもこの設定が反映されないようです。いろいろ調べると、apache の起動スクリプト中で環境変数を設定すればよいということでした。
</p>
<p>
  /etc/rc.d/init.d/httpd を直接編集しても良いのですが、Red Hat 系(Fedora や CentOS) では、それは避けた方が良さそうです。起動スクリプト中では /etc/sysconfig/httpd がユーザが編集するファイルとして読み込まれ、実行されますので、こちらに記述します。
</p>
<pre class="command">
# vi  /etc/sysconfig/httpd
</pre>
<pre class="config">
export NLS_LANG=Japanese_Japan.UTF8
</pre>
<p>
  これで Apache を再起動後すれば、起動直後でも NLS_LANG の値が有効になっており、エラーは発生しなくなりました。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2008/08/ora-00911-error-occurred-after-resterted-apache/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>世界のウェブサーバの1割がGoogle?</title>
		<link>http://futuremix.org/2007/10/google-servers</link>
		<comments>http://futuremix.org/2007/10/google-servers#comments</comments>
		<pubDate>Tue, 16 Oct 2007 13:09:21 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[検索エンジン]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/10/google-servers</guid>
		<description><![CDATA[
  CNET Japan の記事によると、IIS のシェアが拡大し、Apache に10ポイント差と迫っているらしい。Apache も 9月に 100 万台増加したが、IIS は 300 万台増加したのだそうです。それ [...]]]></description>
			<content:encoded><![CDATA[<p>
  <a href="http://japan.cnet.com/news/ent/story/0,2000056022,20358883,00.htm" title="ウェブサーバ市場でMSの「IIS」が好調--首位「Apache」との差を詰める:ニュース - CNET Japan">CNET Japan の記事</a>によると、IIS のシェアが拡大し、Apache に10ポイント差と迫っているらしい。Apache も 9月に 100 万台増加したが、IIS は 300 万台増加したのだそうです。それでシェアでは差を縮めているとのこと。
</p>
<p>
  この記事は <a href="http://news.netcraft.com/archives/2007/10/11/october_2007_web_server_survey.html" title="Netcraft: October 2007 Web Server Survey">Netcraft の統計</a>を元に書かれていますが、こちらで、シェアだけでなくアクティブなサイト数も見ることができます。その値が衝撃的。
</p>
<div class="screenshot">
  <img src="http://futuremix.org/wp-content/uploads/2007/10/netcraft-2007-oct-survey1.png" alt="Netcraft のによるアクティブサイトの統計グラフ" width="500" height="416" /><br />
   <cite><a href="http://news.netcraft.com/archives/2007/10/11/october_2007_web_server_survey.html" title="Netcraft: October 2007 Web Server Survey">Netcraft: October 2007 Web Server Survey</a></cite>
</div>
<p>
  これを見ると Google というウェブサーバが 9.76% も存在しています。これは Google のカスタム Linux 上で動作する独自の HTTP サーバのことでしょうが、それにしても多すぎます。1社で全世界のウェブサーバの1割を占めているのですから。素晴らしいというか、ちょっと恐ろしくなりますね。
</p>
<p>
  昨年読んだ記事では Google のサーバ数は世界に数十万台ということなので、今は100万台を超えていてもおかしくありませんが、それを遙かに上回っている模様。<a href="http://www.itmedia.co.jp/news/articles/0710/15/news025.html" title="Google、Gmailの増量ペースを加速 - ITmedia News">Google が Gmailの増量ペースを加速</a>とうニュースもありましたが、これだけのサーバがあるからこそ Gmail の容量を6Gにもできるわけですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/10/google-servers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HMSE_Robot</title>
		<link>http://futuremix.org/2007/09/hmse_robot-dos</link>
		<comments>http://futuremix.org/2007/09/hmse_robot-dos#comments</comments>
		<pubDate>Mon, 24 Sep 2007 08:00:59 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/09/hmse_robot-dos</guid>
		<description><![CDATA[
  MySQL メモリ食いつぶしという記事を書きましたが、原因は MySQL ではなく &#8220;HMSE_Robot&#8221; というロボットにより集中アクセスによるものでした。昨日と本日もこれによる絨毯爆撃 [...]]]></description>
			<content:encoded><![CDATA[<p>
  <a href="http://futuremix.org/2007/09/mysql-2" title="MySQL メモリ食いつぶし">MySQL メモリ食いつぶし</a>という記事を書きましたが、原因は MySQL ではなく &#8220;HMSE_Robot&#8221; というロボットにより集中アクセスによるものでした。昨日と本日もこれによる絨毯爆撃をくらい、一時サーバアクセスができない状態になっていました。
</p>
<p>
  &#8220;HMSE_Robot&#8221; ですが、アクセス元の IP は 222.239.220.194～222.239.220.198 で、韓国の IP です。詳細は分かりませんが、世界的に迷惑をかけまくっているようなので、Apache の設定で拒否するようにしました。
</p>
<pre class="config">
  deny from 222.239.220.192/29
</pre>
<p>
  この IP の割り当てが 韓国の Hanaro Telecom の割り当て範囲（222.232.0.0 &#8211; 222.239.255.255）　に含まれるため、222.232.0.0/13 を丸ごと拒否する設定をしているサーバもあるようですが、さすがにそれはやり過ぎのような気がします。
</p>
<p>
  とりあえずこれで様子を見ることと、これを機にメインメモリの増設、<a href="http://sourceforge.net/projects/moddosdetector" title="SourceForge.net: mod_dosdetector">mod_dosdetector</a> の導入を検討することにします。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/09/hmse_robot-dos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache の httpd: apr_sockaddr_info_get() failed for　エラー</title>
		<link>http://futuremix.org/2007/09/httpd-apr_sockaddr_info_get-failed</link>
		<comments>http://futuremix.org/2007/09/httpd-apr_sockaddr_info_get-failed#comments</comments>
		<pubDate>Sat, 22 Sep 2007 08:46:22 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/09/httpd-apr_sockaddr_info_get-failed</guid>
		<description><![CDATA[
  新しいサーバで Apache を動かしたら


  httpd: apr_sockaddr_info_get() failed for server_name
  httpd: Could not reliably [...]]]></description>
			<content:encoded><![CDATA[<p>
  新しいサーバで Apache を動かしたら
</p>
<pre class="log">
  httpd: apr_sockaddr_info_get() failed for server_name
  httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
</pre>
<p>
  のようなエラーが。どうもサーバ名が見あたらないらしい。
</p>
<p>
  原因は /etc/sysconfig/network に書いてある HOSTNAME が見つからないこと。もちろん自分自身なので /etc/hosts の 127.0.0.1 の部分に記述したらエラーは出なくなりました。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/09/httpd-apr_sockaddr_info_get-failed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>logwatch に大量の Apache アクセスログが添付される</title>
		<link>http://futuremix.org/2007/07/logwatch-httpd-log</link>
		<comments>http://futuremix.org/2007/07/logwatch-httpd-log#comments</comments>
		<pubDate>Sun, 29 Jul 2007 22:00:25 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[logwatch]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/07/logwatch-httpd-log</guid>
		<description><![CDATA[
  CentOS や Fedora Core には LogWatch というアプリケーションがついており、毎晩各種ログを検査して、問題のある部分を抜き出して送ってきてくれます。しかし Apache のログが大量に記録さ [...]]]></description>
			<content:encoded><![CDATA[<p>
  CentOS や Fedora Core には LogWatch というアプリケーションがついており、毎晩各種ログを検査して、問題のある部分を抜き出して送ってきてくれます。しかし Apache のログが大量に記録されてメールに添付され、私のサイトでは毎日数100KB のメールが届きます。これでは目を通していられません。そこで問題ない URL まで含まれないようにしましょう。
</p>
<p>
  LogWatch に含まれてくる大量の URL は次のようなものです。
</p>
<pre class="log">
  GET /2005/08/extensions/feed HTTP/1.1 with response code(s) 200 1 responses
  GET /2004/03/rss_atom HTTP/1.1 with response code(s) 200 1 responses
  GET /2004/02/tzone HTTP/1.1 with response code(s) 200 5 responses
  GET /2004/11/vaio-type-u HTTP/1.1 with response code(s) 200 2 responses
  GET /category/portal/page/2 HTTP/1.1 with response code(s) 200 1 responses
  GET /images/kotoba_bn HTTP/1.0 with response code(s) 200 16 responses
</pre>
<p>
  これらはステータスコード 200 を返していますが、URL が .html や .php などの拡張子で終わっていないために出力されています。Apache の設定で Option MultiViews を有効にして Content Negotiation を使っていたり、WordPress のようなブログを使っている場合に記録されますが、おかしなログではありません。</p>
<pre class="command">
# vi /etc/log.d/scripts/services/http
</pre>
<p>としてログを正規表現で検査するときの条件を 113 行目付近につけ加えます。</p>
<pre class="config">
   $content_types =  $content_types.'|&#x5c;.htm|&#x5c;.html|&#x5c;.jhtml|&#x5c;.phtml|&#x5c;.shtml|&#x5c;/';
   <kbd>$content_types =  $content_types.'|&#x5c;.html#.*|&#x5c;/[a-zA-Z0-9&#x5c;-_&#x5c;/&#x5c;!]+|&#x5c;/[a-zA-Z0-9&#x5c;-_&#x5c;/&#x5c;!]+#.*|&#x5c;/';</kbd>
   $content_types =  $content_types.'|&#x5c;.inc|&#x5c;.php|&#x5c;.php3|&#x5c;.asp|&#x5c;.pl|&#x5c;.wml|&#x5c;/';
</pre>
<p>
これで、すべてとは言いませんが、LogWatch の内容が減って軽くなったはずです。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/07/logwatch-httpd-log/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>www ありの URL を www 無しの URL にリダイレクトする</title>
		<link>http://futuremix.org/2007/07/www-rewrite-htaccess</link>
		<comments>http://futuremix.org/2007/07/www-rewrite-htaccess#comments</comments>
		<pubDate>Wed, 25 Jul 2007 22:00:12 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/07/www-rewrite-htaccess</guid>
		<description><![CDATA[
  


  独自ドメインでサイトを運営する際に、http://www.example.com/ のように &#8220;www&#8221; を頭につけるか、http://example.com/ のように &#82 [...]]]></description>
			<content:encoded><![CDATA[<div class="thumb">
  <img src="http://futuremix.org/wp-content/uploads/2007/07/www.jpg" alt="www" width="200" height="150" />
</div>
<p>
  独自ドメインでサイトを運営する際に、http://www.example.com/ のように &#8220;www&#8221; を頭につけるか、http://example.com/ のように &#8220;www&#8221; をつけないか、どちらかにしていると思います。しかし、設定によってどらちでもアクセス可能で同じ内容が表示されているという場合も多いです。（www の有無で別内容を表示することもできますが、普通はしませんよね。）
</p>
<p>
  このとき、www の有り無しどちらでアクセスさせるかを統一しておかないと、検索エンジンの結果に二重に表示されたり、ソーシャルブックマークサービスで別々の URL としてカウントされたりしますので、<abbr title="Search Engine Optimization">SEO</abbr> の観点でいうと好ましくありません。
</p>
<p>
  そこで、Apache であれば .htaccess ファイルを使ってリダイレクトさせることができます。
</p>
<pre class="code">
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule (.*) http://example.com/$1 [R=301,L]
</pre>
<p>
  これは www 有りから無しへリダイレクトさせる場合です。http://www.example.com/foo/bar にアクセスすると http://example.com/foo/bar に飛びます。うまく行かない場合は、.htaccess の利用が禁止・制限されている、mod_rewrite モジュールが入っていないなどの理由が考えられます。
</p>
<h3>追記: WordPress での注意点</h3>
<p>
  WordPress では最初から .htacces ファイルが置かれています。このファイル中の # BEGIN WordPress から # END WordPress までは管理画面の「パーマリンク構造を更新」ボタンを押すと上書きされてしまいます。.htaccess ファイルに設定を書く場合は、これらの前後にします。
</p>
<pre class="code">
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule (.*) http://example.com/$1 [R=301,L]

RewriteEngine on
RewriteRule (.*)\.html$ $1 [R=301,L]

# BEGIN WordPress
&lt;IfModule mod_rewrite.c&gt;
<em>この間は上書きされる</em>
&lt;/IfModule&gt;
# END WordPress
</pre>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/07/www-rewrite-htaccess/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google が X-Robots-Tag で PDF や XLS文書などのクロール制御に対応</title>
		<link>http://futuremix.org/2007/07/google-x-robots-tag</link>
		<comments>http://futuremix.org/2007/07/google-x-robots-tag#comments</comments>
		<pubDate>Mon, 23 Jul 2007 01:10:27 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[検索エンジン]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/07/google-x-robots-tag</guid>
		<description><![CDATA[
  search engine land の記事 を読むと、Google が非 HTML 文書である PDF Office ドキュメント (DOC, XLS) などの文書に対して、インデックス化の可否・アーカイブ化（キ [...]]]></description>
			<content:encoded><![CDATA[<p>
  <a href="http://searchengineland.com/070717-111517.php" title="More Info On Google's Unavailable After Meta Tag &amp; New X-Robots-Tag In Header Support">search engine land の記事</a> を読むと、Google が非 <abbr title="HyperText Markup Language">HTML</abbr> 文書である <abbr title="Portable Document Format">PDF</abbr> Office ドキュメント (DOC, XLS) などの文書に対して、インデックス化の可否・アーカイブ化（キャッシュ表示）の可否・スニペット表示の可否などを指定できるようにしたそうです。これまでは HTML 文書は META 要素で個別に指定できましたが、それ以外の文書は個別に指定する方法はありませんでした。(robots.txt は除く)
</p>
<p>
  実際にどのように使うかと HTTP のレスポンスヘッダ内にて、次のように出力します。
</p>
<dl>
<dt>文書をインデックスさせたくない場合</dt>
<dd>X-Robots-Tag: noindex</dd>
<dt>文書をキャッシュさせず、スニペットも表示しない（インデックスはされる）</dt>
<dd>X-Robots-Tag: noarchive, nosnippet</dd>
<dt>指定期間後にインデックスから削除させたい時</dt>
<dd>X-Robots-Tag: unavailable_after: 27 Jul 2007 19:30:00 GMT</dd>
</dl>
<p>
  これをどこで指定するかというと、たとえば Apache ならば .htaccess ファイルでの指定が考えられます。
</p>
<pre class="config">
&lt;Files "hogehoge.pdf"&gt;
Header set X-Robots-Tag "noarchive, nosnippet"
&lt;/Files&gt;
</pre>
<p>HTTP ヘッダを確認に X-Robots-Tag: noarchive, nosnippet が付加されるはずです。mod_headers モジュールが有効になっている必要がありますが、たいていは有効になっているでしょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/07/google-x-robots-tag/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.htaccess の Redirect と Content Negotiation の相性</title>
		<link>http://futuremix.org/2007/07/apache-redirect-multiviews</link>
		<comments>http://futuremix.org/2007/07/apache-redirect-multiviews#comments</comments>
		<pubDate>Sat, 21 Jul 2007 02:17:07 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/07/apache-redirect-multiviews</guid>
		<description><![CDATA[
  以前のサイトから、このブログに移行しましたが、MT から WordPress に移行したため、いくつかの URL(URL) が変わってしまいました。個別記事 (Permalink) については同じにしましたが、アー [...]]]></description>
			<content:encoded><![CDATA[<p>
  以前のサイトから、このブログに移行しましたが、MT から WordPress に移行したため、いくつかの <abbr title="Uniform Resource Locator">URL</abbr>(<abbr title="Uniform Resource Locator">URL</abbr>) が変わってしまいました。個別記事 (Permalink) については同じにしましたが、アーカイブページ・カテゴリーのページなどの URI 異なってしまっています。そこで .htaccess ファイルに <var>Redirect</var> ディレクティブを記述しようと思ったのにうまくいきません。</p>
<p>原因はどうも Apache のコンテント・ネゴシエーション (Content Negotiation) とぶつかっているようです。リダイレクトされないだけならまだしも、404 Not Found になってしまうので困ります。httpd.conf の Options から MultiViews を外したらうまく Redirect されるようになりました。
</p>
<p>以前は同じ設定をしていてもうまくリダイレクトされた記憶があるので、Apache の特定のバージョンによるものなのかわかりませんが、Apache 2.0.46 で試しても同様でした。ファイルが存在しているといけないようで、ファイルを削除してしまえばよいようです。たとえば .htaccess で
</p>
<pre class="config">
Redirect permanent /hoge http://example.com/newhoge/
</pre>
<p>の様に指定した場合、 /hoge.html などのファイルが残っていると、404 Not Found になります。/hoge.html を削除またはリネームすれば良さそうです。ハマりました。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/07/apache-redirect-multiviews/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress でアップロードに失敗してサムネイルが生成されない</title>
		<link>http://futuremix.org/2007/06/wordpress-upload-thumbnail-error</link>
		<comments>http://futuremix.org/2007/06/wordpress-upload-thumbnail-error#comments</comments>
		<pubDate>Tue, 19 Jun 2007 04:22:53 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/06/wordpress-upload-thumbnail-error</guid>
		<description><![CDATA[
  WordPress は画像ファイル (JPEG の写真など) をアップロードすると、簡単にサムネイルを生成してくれます。しかし、エラーメッセージがでたり、アップロード後に画面が空白になって失敗することがあります。フ [...]]]></description>
			<content:encoded><![CDATA[<p>
  WordPress は画像ファイル (JPEG の写真など) をアップロードすると、簡単にサムネイルを生成してくれます。しかし、エラーメッセージがでたり、アップロード後に画面が空白になって失敗することがあります。ファイルはアップロードされていても、サムネイルの作成にだけ失敗することがあります。空白の画面のソースを見ると
</p>
<blockquote>
<p>不正なファイルです。 使用可能なものをアップロードしてください。</p>
</blockquote>
<p>のエラーメッセージが出ている場合です。しかしファイル自体が不正なのでも、壊れているわけでもない場合、メモリ不足の可能性があります。サーバ自体にはメモリがたくさん積まれていても、通常は PHP で利用できるメモリが制限されています。
</p>
<p>
初期値は 8MByte なのですが、サムネイル作成には足りないのです。おそらく Apache のエラーログに
</p>
<pre class="log">
Allowed memory size of 8388608 bytes exhausted (tried to allocate 0 bytes)
</pre>
<p>のように出ているはずです。そこで、php.ini の <var>memory_limit</var> 値を編集します。</p>
<pre class="config">
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

memory_limit = <kbd>32</kbd>M      ; Maximum amount of memory a script may consume (8MB)
</pre>
<p>
これで Apahce を再起動して、画像をアップロードしてみてください。たぶんサムネイルがうまく生成されるはずです。これでもうまくいかないというときは小さいサイズの画像で試してみましょう。あまりに大きすぎる画像はあらかじめ縮小してアップロードするというのが良いでしょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/06/wordpress-upload-thumbnail-error/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress で画面が真っ白になる</title>
		<link>http://futuremix.org/2007/03/wordpress-white-problem</link>
		<comments>http://futuremix.org/2007/03/wordpress-white-problem#comments</comments>
		<pubDate>Thu, 29 Mar 2007 16:05:09 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://futuremix.org/2007/03/wordpress-white-problem</guid>
		<description><![CDATA[
  Apache の httpd.conf ファイルや .htaccess の設定を間違えると、WordPress の画面が真っ白になることがあります。  しかも Firefox では表示されて IE だと真っ白になる [...]]]></description>
			<content:encoded><![CDATA[<p>
  Apache の httpd.conf ファイルや .htaccess の設定を間違えると、WordPress の画面が真っ白になることがあります。  しかも Firefox では表示されて IE だと真っ白になるので気づかない場合も。  ソースを見ると次のように表示される場合は、<abbr title="PHP:HIPERTEXT PROCESSER">PHP</abbr> がうまく動作していません。
</p>
<pre class="code">
&lt;?php /* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php'); &gt;
</pre>
<p>
  たとえば .htaccess の中に <code>AddType "text/html;charset=utf-8" .php</code> のような記述があれば、間違いなくそれが原因です。 これを削除・コメントしてみましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2007/03/wordpress-white-problem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DoS 攻撃などの欠陥を修正した Apache の RPM(Red Hat 9用)</title>
		<link>http://futuremix.org/2005/11/apache-httpd-rpm</link>
		<comments>http://futuremix.org/2005/11/apache-httpd-rpm#comments</comments>
		<pubDate>Tue, 22 Nov 2005 06:43:14 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[DoS]]></category>
		<category><![CDATA[FedoraLegacy]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://futuremix.org/2005/11/apache-httpd-rpm</guid>
		<description><![CDATA[
  Apache 2.0 の 2.0.54 以前に、細工した HTTP ヘッダを用いて、DoS 攻撃を引き起こす欠陥 (CVE-2005-2728
) が発見されています。


  また、mod_ssl の 2.8.2 [...]]]></description>
			<content:encoded><![CDATA[<p>
  Apache 2.0 の 2.0.54 以前に、細工した <abbr title="HyperText Transfer Protocol">HTTP</abbr> ヘッダを用いて、<abbr title="Denial of Service">DoS</abbr> 攻撃を引き起こす欠陥 (<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-2728">CVE-2005-2728</a><br />
) が発見されています。
</p>
<p>
  また、mod_ssl の 2.8.24 以前の <var>SSLVerifyClient</var> ディレクティブに欠陥も発見されています。(<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-2700">CVE-2005-2700</a><br />
) この欠陥は、仮想ホストが <var>SSLVerifyClient</var> <kbd>optional</kbd> として設定され、さらに <var>SSLVerifyClient</var> <kbd>required</kbd> が特定のロケーション用に設定されている場合に発生に、攻撃者がクライアント証明書なしにアクセス制限を回避できる可能性があるというものです。
</p>
<p>
  これらへの対策はパッチを取り込んだ Red Hat 9 向けの <abbr title="Redhat Package Manager">RPM</abbr> が <a href="http://www.fedoralegacy.org/">Fedora Legacy Project</a> からリリースされています。ほかにも Red Hat 7.3、Fedora Core 1、2 向けのパッケージもリリースされています。
</p>
<p>
  例によって <a href="http://rpm.fumika.jp/apache">rpm.fumika.jp にて公開している Apache の RPM</a> を、新しいパッケージをベースにビルドし直しました。バージョンは 2.0.40-21.20.1 です。<a href="/2004/03/ie6-digest-error">IE6 の Digest 認証エラー</a>対応パッチを適用し、i686 向けに最適化したものです。ご入り用の方は（自己責任で）どうぞ。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2005/11/apache-httpd-rpm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora Legacy Watch : httpd, mod_ssl, glibc などのアップデート</title>
		<link>http://futuremix.org/2005/11/fedora-legacy-httpd-glibc</link>
		<comments>http://futuremix.org/2005/11/fedora-legacy-httpd-glibc#comments</comments>
		<pubDate>Tue, 22 Nov 2005 00:59:45 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[FedoraLegacy]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://futuremix.org/2005/11/fedora-legacy-httpd-glibc</guid>
		<description><![CDATA[
  この記事は以前 &#8220;Fedora Lagacy Watch&#8221; で公開していたものです。古い内容ですのでご注意下さい。


  少し前のことですが、今月に入って glibc、Apache (ht [...]]]></description>
			<content:encoded><![CDATA[<p>
 <em> この記事は以前 &#8220;Fedora Lagacy Watch&#8221; で公開していたものです。古い内容ですのでご注意下さい。</em>
</p>
<p>
  少し前のことですが、今月に入って <a href="http://www.fedoralegacy.org/updates/RH9/2005-11-13-FLSA_2005_152848__Updated_glibc_packages_fix_security_issues.html">glibc</a>、Apache (<a href="http://www.fedoralegacy.org/updates/RH9/2005-11-09-FLSA_2005_166941__Updated_httpd_and_mod_ssl_packages_fix_two_security_issues.html">httpd</a>、mod_ssl)、<a href="http://www.fedoralegacy.org/updates/RH9/2005-11-14-FLSA_2005_158801__Updated_bzip2_packages_fix_security_issues.html">bzip2</a>、<a href="http://www.fedoralegacy.org/updates/RH9/2005-11-14-FLSA_2005_152794__Updated_rp_pppoe_package_fixes_security_issue.html">rp_pppoe</a>、<a href="http://www.fedoralegacy.org/updates/FC1/2005-11-14-FLSA_2005_123013__Updated_xchat_package_fixes_security_issue.html">xchat</a> のセキュリティアップデートが公開されています。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2005/11/fedora-legacy-httpd-glibc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP Request Smuggling の欠陥を修正した Apache の RPM(Red Hat 9用)</title>
		<link>http://futuremix.org/2005/08/apache-http-request-smuggling</link>
		<comments>http://futuremix.org/2005/08/apache-http-request-smuggling#comments</comments>
		<pubDate>Fri, 12 Aug 2005 14:50:47 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[FedoraLegacy]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://futuremix.org/2005/08/apache-http-request-smuggling</guid>
		<description><![CDATA[
  HTTP Request Smuggling （HTTP リクエスト・スマグリング）という攻撃が最近新しい論文(PDF)で発表され、話題となりました。Apache を Proxy として利用している際、細工されたリ [...]]]></description>
			<content:encoded><![CDATA[<p>
  <dfn><a href="http://www.st.ryukoku.ac.jp/%7Ekjm/security/memo/2005/07.html#20050707_HRS">HTTP Request Smuggling</a> （<abbr title="HyperText Transfer Protocol">HTTP</abbr> リクエスト・スマグリング）</dfn>という攻撃が最近新しい<a href="http://www.watchfire.com/resources/HTTP-Request-Smuggling.pdf">論文</a>(PDF)で発表され、話題となりました。Apache を Proxy として利用している際、細工されたリクエストによりキャッシュ汚染などの問題が引き起こされるというものです。
</p>
<p>
  この攻撃（<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2088">CAN-2005-2088</a>）への対策は Apache 2.0.55 でなされていますが、このパッチを取り込んだ Red Hat 9 向けの <abbr title="Redhat Package Manager">RPM</abbr> が <a href="http://www.fedoralegacy.org/">Fedora Legacy Project</a> からリリースされました。ほかにも Red Hat 7.3、Fedora Core 1、2 向けのパッケージもリリースされています。<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2088">CAN-2005-2088</a> 以外にも <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-1344">CAN-2005-1344</a>、<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-1268">CAN-2005-1268</a> の欠陥が修正されています。
</p>
<p>
  例によって <a href="http://rpm.fumika.jp/apache">rpm.fumika.jp にて公開している Apache の RPM</a> を、新しいパッケージをベースにビルドし直しました。バージョンは 2.0.40-21.18.1 です。<a href="/2004/03/ie6-digest-error">IE6 の Digest 認証エラー</a>対応パッチを適用し、i686 向けに最適化したものです。ご入り用の方は（自己責任で）どうぞ。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2005/08/apache-http-request-smuggling/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora Legacy Watch : Apache、gzip、SpamAssassin、mc のアップデートがリリース</title>
		<link>http://futuremix.org/2005/08/fedora-legacy-apache-spamassassin</link>
		<comments>http://futuremix.org/2005/08/fedora-legacy-apache-spamassassin#comments</comments>
		<pubDate>Thu, 11 Aug 2005 05:06:27 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[FedoraLegacy]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[SpamAssassin]]></category>

		<guid isPermaLink="false">http://futuremix.org/2005/08/fedora-legacy-apache-spamassassin</guid>
		<description><![CDATA[
  この記事は以前 &#8220;Fedora Lagacy Watch&#8221; で公開していたものです。古い内容ですのでご注意下さい。


  Apache、gzip、SpamAssassin、mc のアップデ [...]]]></description>
			<content:encoded><![CDATA[<p>
 <em> この記事は以前 &#8220;Fedora Lagacy Watch&#8221; で公開していたものです。古い内容ですのでご注意下さい。</em>
</p>
<p>
  Apache、gzip、SpamAssassin、mc のアップデートがリリースされました。yum でダウンロードできますがミラーサイトによっては行き渡るまでに時間が掛かると思います。<a href="http://download.fedoralegacy.org/redhat/9/updates/i386/?C=M;O=D">FTP サーバから入手する</a>こともできます。まだ Advisory は掲載されていません。
</p>
<ul>
<li>Apache httpd。CAN-2005-1268 CAN-2005-1344 CAN-2005-2088 の修正。RH7.3、RH9、FC1、FC2 が対象</li>
<li>gzip。CAN-2005-0758 CAN-2005-0988 CAN-2005-1228 の修正。RH7.3、RH9、FC1、FC2 が対象</li>
<li>mc(Midnight Commander)。AN-2004-0226 CAN-2004-0231 CAN-2004-0232 CAN-2004-0494 CAN-2004-1004 CAN-2004-1005 CAN-2004-1009 CAN-2004-1090 CAN-2004-1091 CAN-2004-1092 CAN-2004-1093 CAN-2004-1174 CAN-2004-1175 CAN-2004-1176 CAN-2005-0763 の修正。RH7.3、RH9、FC1、FC2 が対象</li>
<li>spamassassin。CAN-2004-0796 の修正。FC2 のみが対象</li>
</ul>
<p>
  また、zlib が updates-testing 入りしています。</p>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2005/08/fedora-legacy-apache-spamassassin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another HTML-lint を Linux サーバに設置</title>
		<link>http://futuremix.org/2005/07/another-htmllint</link>
		<comments>http://futuremix.org/2005/07/another-htmllint#comments</comments>
		<pubDate>Sat, 16 Jul 2005 04:22:13 +0000</pubDate>
		<dc:creator>津田 ふみか</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Lynx]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://futuremix.org/2005/07/another-htmllint</guid>
		<description><![CDATA[
  HTML の文法チェックツールとして有名な Another HTML-lint を、自前の Linux サーバにセットアップしましたので、そのときの設定メモ。ちなみに fumika.jp のサーバではありませんので [...]]]></description>
			<content:encoded><![CDATA[<p>
  <abbr title="HyperText Markup Language">HTML</abbr> の文法チェックツールとして有名な <a href="http://openlab.ring.gr.jp/k16/htmllint/index.html">Another HTML-lint</a> を、自前の Linux サーバにセットアップしましたので、そのときの設定メモ。ちなみに fumika.jp のサーバではありませんので、ヘンな真似はしないで下さい。サーバは Red Hat Linux 9 です。
</p>
<h3 id="download">ダウンロード</h3>
<p>
  まず、<a href="http://openlab.ring.gr.jp/k16/htmllint/download.html">Another HTML-lint をダウンロード</a>します。最新の zip 版をダウンロードし、/var/www/html/htmllint/ に解凍します。ディレクトリ名は <kbd>htmllint</kbd> にする必要性はありませんが、ここでは便宜上そのようにしてあります。
</p>
<h3 id="modules">必要パッケージの確認</h3>
<p>
  Another HTML-lint は Perl の LWP(libwww-perl)、CGI および Jcode モジュールが必要です。
</p>
<pre class="command">
  $ rpm -qa | grep perl
</pre>
<p>
  として必要なモジュールがインストールされているかどうかを確認してください。Red Hat Linux 9 には Jcode の <abbr title="Redhat Package Manager">RPM</abbr> は含まれていませんが、<a href="http://rpm.fumika.jp/perl#perl-Jcode" title="Perl Modules RPM for Red Hat Linux 9">私がパッケージしたものを公開しています</a>ので、こちらをインストールしても良いかと思います。（もちろん自己責任でお願いします。）
</p>
<p>
  また、Another HTML-lint はテキストブラウザでの見栄えを出力してくれる機能があります。これを利用するために Lynx パッケージも入っているかどうかチェックしておいてください。
</p>
<pre class="command">
  $ rpm -q lynx
  <samp>lynx-2.8.5-11</samp>
</pre>
<p><span id="more-856"></span></p>
<h3 id="setup">設定</h3>
<p>
  解凍した中に htmllintenv というファイルがあります。これを <kbd>htmllint.env</kbd> に名前を変更した上で、開いて修正します。
</p>
<pre class="command">
  $ mv htmllintenv htmllint.env
  $ vi htmllint.env
</pre>
<pre class="config">
  <span class="comment">#コメントを外す</span>
  $KANJICODE = 'EUC';
  <span class="comment">#コメントを外してパスを修正</span>
  $LYNX = '/usr/bin/lynx -dump -nolist -force_html';
</pre>
<p>
  ほかにもプロキシサーバの設定などが必要でしたら行なってください。
</p>
<p>
  Red Hat Linux では、通常 perl のパスは /usr/local/bin/ ではなく /usr/bin/ です。htmllint（というファイルがあります）、htmllint.cgi、tagslist.cgi、および parsedtd.plファイルを開き、先頭行の Perl のパスを修正します。
</p>
<pre class="config">
  #!/usr/bin/perl
</pre>
<p>
  *.cgi ファイルのパーミッションを 755 などに変更し、<abbr title="Common Gateway Interface">CGI</abbr> が動作するようにします。
</p>
<pre class="command">
  $ chmod 755 htmllint.cgi tagslist.cgi
</pre>
<p>
  また、Lynx の設定を変更し、出力が EUC になるようにします。
</p>
<pre class="command">
  # vi /etc/lynx.cfg
</pre>
<pre class="config">
  <span class="comment">#CHARACTER_SET:iso-8859-1</span>
  CHARACTER_SET:euc-jp
</pre>
<h3 id="httpdconf">httpd.con の設定</h3>
<p>
  Red Hat Linux の Apache のデフォルト設定では、CGI が cgi-bin ディレクトリ以外では動きません。そこで htmllint ディレクトリでも CGI が動作するようにします。また、htmllint.env ファイルが第三者に見られないようにします。
</p>
<p>
  これらの設定は .htaccess ファイルで行なう方法もありますが、今回は httpd.conf ファイルに直接書いてみました。
</p>
<pre class="config">
  <span class="comment"># /etc/httpd/conf/httpd.conf</span>
  &lt;Directory "/var/www/html/htmllint"&gt;
    Options MultiViews ExecCGI
    AllowOverride None
    AddHandler cgi-script .cgi .env
    AddCharset ISO-2022-JP .html
    Order allow,deny
    Allow from all
  &lt;/Directory&gt;
</pre>
<p>
  .html に対して ISO-2022-JP の Charset を指定しないと、結果の解説ページなどが文字化けします。  設定が終わったら、Apache を再起動します。
</p>
<pre class="command">
  # service httpd configtest
  <samp>Syntax OK</samp>
  # service httpd graceful
</pre>
<h3 id="test">テスト</h3>
<p>
  ウェブブラウザで <kbd>http://サーバ名/htmllint/</kbd> にアクセスして、テストしてください。CGI のソースコードが表示されてしまう場合は、httpd.conf の設定か、パーミッションの設定に誤りがあります。CGI のエラーが発生する場合は、Perl のパスの書き換えができてないか、httpd.conf の設定に誤りがあると思います。
</p>
<h3 id="bookmarklet">ブックマークレット</h3>
<p>
  HTML-lint の動作が確認できたら、ブックマークレットを作っておきましょう。次のリンクは Mozilla Suite / Firefox 用です。他のブラウザでは確認していません。
</p>
<p>
  <a href=" javascript: var uri = location.href; var uri = uri.replace(/#.+/, %22%22); var uri =%22http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi?URL=%22 + uri + %22;V;TextView=lynx%22; window.open(uri, %22htmllint%22); eval();">Another HTML-lint でチェック</a>
</p>
<p>
  このリンクをブックマークツールバーなどにドラッグ・アンド・ドロップします。初期状態では本家のサーバにチェックに行くようになっていますので、これを<em>必ず</em>自分で設置した <abbr title="Uniform Resource Locator">URL</abbr> に<em>書き換えて</em>ください。チェックしたいページを開いた状態でブックマークレットを使います。
</p>
<h3>2009-11-12 追記</h3>
<p>
  lynx.cfg で出力コードを EUC に変更してしまうと、HTMLlint 以外の目的で Lynx を使うときに困ります。その場合は lynx.cgi を変更せずに、htmllint.env 内の <var>$LYNX</var> に文字コードの指定を追加します。
</p>
<pre class="config">
  $LYNX = '/usr/bin/lynx -dump -nolist -force_html <kbd>-display_charset=euc-jp</kbd>';
</pre>
]]></content:encoded>
			<wfw:commentRss>http://futuremix.org/2005/07/another-htmllint/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
