動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / CentOS4 / CentOS5 ]
なぜ、ホームページの文字が化けるのでしょうか?
それは以下の事が考えられます。
大方、ホームページを作成する場合は、Windows等よりホームページ作成アプリケーションで作成していると思います。(テキストエディタでも、もちろん作成できます。)
何も気にせずに出来上がったホームページを保存した場合、通常、文字コードはShift-JISという文字コードで保存されます。
このShift-JISは、日本語Windows標準の文字コード体系の為、各ホームページ作成アプリケーションのデフォルト文字コードはShift-JISになります。
当サイトの様に、『
Fedora/CentOS インストール後の設定[日本語コードの変更(UTF-8 → eucJP)]』Linuxの文字コードを設定した場合はEUC-JPというコードで管理される事となり、Webサーバより送信されるデータがブラウザ側で判断できない(誤認識)場合に文字化けが発生します。
ブラウザに文字コードを認識させるには、htmlソースのタグ「<HEAD>」内に以下のタグを記述します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>はじめての自宅サーバ構築</TITLE>
</HEAD>
<BODY>
<CENTER>
<H3>文字化け回避</H3>
漢字 ひらがな カタカナ 123 ABC 123 ABC
</CENTER>
</BODY>
</HTML>
|
上記のタグ「<META http-equiv="Content-Type" content="text/html;
charset=Shift_JIS">」を記述していなくてもブラウザが自動判別して正常に表示されていても、明示的に記述する方がよいでしょう。
大抵は、charsetの属性値は「Shift-JIS」か「EUC-JP」で良いと思います。(正確にはソースを保存した文字コードを記述します。)
詳しく知りたい方は、検索サイトで「html 文字コード charset」キーワードで検索すると多々の紹介サイトがヒットしますのでそちらをご覧ください。
apacheのデフォルトでのドキュメントルートは「/var/www/html」となっています。
このパス以外にドキュメントルートを変更した場合、設定ファイル「/etc/httpd/conf/httpd.conf」を変更します。
以下が、ドキュメントルートを変更した際の設定ファイル変更場所になります。
※)説明上、ドキュメントルートを「/home/www/html」とさせて頂きます。
変更後にapacheを再起動し、ページを表示させてみると以下の画面が表示されてページが表示できない場合があります。
ドキュメントルートの変更
# vi /etc/httpd/conf/httpd.conf
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/home/www/html"
|
上記を行うことによって、正常にhtmlが表示される様になります。

上記の方法「パスの所有者をapacheに変更する」を行った場合、何かと不具合(問題)があります。
たとえば、今回「/home/www/」を例に例えると、『www』ユーザを作成した場合の、純粋なwwwユーザホームパスになった場合です。
仮に、wwwユーザでサーバにログインした場合、以下の様にエラーとなってしまいます。
# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Fedora Core release 2 (Tettnang)
Kernel 2.6.9-1.6_FC2 on an i686
login: www
Password:
No directory /home/www!
Logging in with home = "/".
-bash: /home/www/.bash_profile: 許可がありません
|
これは、本来のwwwユーザのホームパスである「/home/www/」の所有者を「apache」にしてしまった為です。
例えば、wwwユーザーでホームページをアップデートしようとする際、FTPなどのツールでログインができないし、htmlファイル自体を置く事もできなくなってしまいます。
これを回避するには、「/home/www/」パスを本来のwwwユーザとし、所有者以外でも読み取りできる様にパーミッションを追加します。
現状の確認
# ls -l /home/
合計 32
drwx------ 4 linux linux 4096 1月 5 20:43 linux
drwx------ 3 apache apache 4096 1月 6 15:21 www
本来の所有者・グループに戻す
# chown www:www /home/www/
# ls -l /home/
合計 32
drwx------ 4 linux linux 4096 1月 5 20:43 linux
drwx------ 3 www www 4096 1月 6 15:21 www
所有者以外に読み取りの権限を与える
# chmod 705 /home/www/
# ls -l /home/
合計 32
drwx------ 4 linux linux 4096 1月 5 20:43 linux
drwx---r-x 3 www www 4096 1月 6 15:21 www
|
パーミッション(アクセス権)とは?
「ls -l」コマンドを入力した際に以下の様な結果が表示されます。
drwx---r-x 3 www www 4096 1月 6 15:21 www
上記で表示される一番左の「drwx---r-x」表記がパーミッションになり、各1文字ごとに意味を持っています。
| Directory |
所有者 |
グループ |
その他 |
| Read |
Write |
eXec |
Read |
Write |
eXec |
Read |
Write |
eXec |
| "d" Or "-" |
"r" Or "-" |
"w" Or "-" |
"x" Or "-" |
← |
← |
- Directoryの説明
- "d":ディレクトリ(パス)である
- "-":ディレクトリ(パス)でない(ファイルである)
- 所有者・グループ・その他の説明
「drwx---r-x 3 www www 4096 1月 6 15:21 www」
上記の左から3・4番目の項目に関連しており、3番目が所有者名、4番目がグループ名を表示しています。
- 所有者とは、ディレクトリ(パス)が3番目のユーザのアクセス権を示します。
- グループとは、ディレクトリ(パス)が4番目のグループのアクセス権を示します。
- その他は、3・4番目に属さないユーザのアクセス権を示します。
- Readの説明
- "r":読み取る事が可能
- "-":読み取る事はできない
- Writeの説明
- "w":書き込む事が可能
- "-":書き込む事はできない
- eXecの説明
- "x":実行する事が可能
- "-":実行する事はできない
上記を行うことによって、本来の「www」ユーザでのログオンと、htmlのアップロードも可能になります。
スクリプトの構文も正しく、パーミッションなども問題ないのにアクセスすると以下のような画面が表示され実行されない場合があります。

ここでは、アクセス制限(認証)を例にとって、説明します。
認証パス「/var/www/html/security/」の「.htaccess」内容を確認する
# vi /var/www/html/security/.htaccess
AuthType Basic
AuthName "Please enter your UserName and password"
AuthUserFile /var/www/secure/.htpasswd
AuthGroupFile /dev/null
require valid-user
|
CA証明書とは、承認局(サーバ)がユーザ等の認証をする為に使用します。
この証明書が無ければユーザーはSSLにて確立された通信を行うことができません。
クライアント(ユーザ)用のCA証明書の作成は
CA証明書をブラウザにインポートするためのca.derファイル作成を参照して下さい。
また、CA証明書は作成しただけでは意味を持ちません。
例を例えると、家の鍵を鍵屋に注文しただけで受け取っていなければ、家に入ることができませんよね?
この鍵(CA証明書)をSSL通信で行うクライアントにインポート(取り込み)を行わなければなりません。
クライアントへの取り込み方法は
クライアントへのCA証明書インストールを参照ください。
apacheのバージョンが 2.0.53未満(Ver < 2.0.53)では、大容量ファイルに対応していません。
以下を実施して、導入されているapache(httpd)のバージョンを事前に確認してください。
apache(httpd)のバージョン確認方法
# rpm -qa httpd
httpd-2.2.3-5
ちなみに2007年01月15日現在での各ディストリビューションでのバージョンは以下となっています。
【FedoraCore1 の場合】
[root@fedora root]# rpm -qa httpd
httpd-2.0.51-1.10.legacy
【FedoraCore2 の場合】
[root@fedora root]# rpm -qa httpd
httpd-2.0.51-2.9.5.legacy
【FedoraCore3 の場合】
[root@fedora root]# rpm -qa httpd
httpd-2.0.53-3.3
【FedoraCore4 の場合】
[root@fedora ~]# rpm -qa httpd
httpd-2.0.54-10.4
【FedoraCore5 の場合】
[root@fedora ~]# rpm -qa httpd
httpd-2.2.2-1.2
【FedoraCore6 の場合】
[root@fedora ~]# rpm -qa httpd
httpd-2.2.3-5
【Fedora7 の場合】 2007年06月06日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.4-4
【Fedora8 の場合】 2007年11月16日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.6-3
【CentOS4 の場合】
[root@centos ~]# rpm -qa httpd
httpd-2.0.52-28.ent.centos4
【CentOS5 の場合】 2007年04月19日現在
[root@centos ~]# rpm -qa httpd
httpd-2.2.3-6.el5.centos.1
|