はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> トラブルシュート >> ホームページ公開時のトラブル
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora11 / Fedora12 / Fedora13 / Fedora14 / Fedora15 / Fedora16 / Fedora17 / CentOS4 / CentOS5 / CentOS6 ]
  1. ホームページが文字化けしてしまう
  2. htmlの保存場所を変更したら、変更後のページが表示しなくなってしまった
  3. CGI(Common Gateway Interface)の実行ができない
    Perlのパスを疑う
    CGIの実行が許されているか疑う
    CGIの実行拡張子を確認する
    SELinuxを無効にして確認してみる
  4. SSI(Server Side Include)の実行ができない
    SSIの実行が許されているか疑う
    SSIの実行が許可されているドキュメントの拡張子を確認する
    SELinuxを無効にして確認してみる
  5. Webページアクセス制限(.htpasswd & .htaccess)ができない
    分散設定ファイル「.htaccess」が有効になっているか確認する
    分散設定ファイル「.htaccess」が別名で定義されていないか確認する
    分散設定ファイル「.htaccess」の設定内容を確認する
  6. HTTPS(Hypertext Transfer Protocol Security)でアクセスできない
    証明書・秘密鍵([*.csr][*.key][ca.der])が作成されているか確認する
    CA証明書が作成されていない。またはCA証明書がクライアントにインポートされていない
    証明書・秘密鍵も作成した。CA証明書もクライアントにインポートしたのにSSL通信できない
  7. 大容量ファイル(mpg・mp3・tar・等々)のダウンロードができない

■ ホームページが文字化けしてしまう

なぜ、ホームページの文字が化けるのでしょうか?
それは以下の事が考えられます。
大方、ホームページを作成する場合は、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」キーワードで検索すると多々の紹介サイトがヒットしますのでそちらをご覧ください。

■ 文字コードを明示的に記述して文字化けが解消されたブラウザ画面

■ htmlの保存場所を変更したら、変更後のページが表示しなくなってしまった

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"

上記のエラーメッセージの場合、「You don't have permission to access / on this server.」と出力されている為、アクセス権がない為です。
対処するには2つの方法があります。

■ パスの所有者をapacheに変更する

ドキュメントルートに設定しているパスを表示
# ls -l /home/
合計 32
drwx------  4 linux    linux    4096  1月  5 20:43 linux
drwx------  3 www      www      4096  1月  6 15:21 www
左側が所有者、右側がグループになります

*:所有者を変更するには、apache設定ファイルの以下の設定内容に依存します。
/etc/httpd/conf/httpd.confの内容
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
# . On HPUX you may not be able to use shared memory as nobody, and the
# suggested workaround is to create a user www and use that user.
# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
# when the value of (unsigned)Group is above 60000;
# don't use Group #-1 on these systems!
#
User apache
Group apache

所有者・グループの変更
# chown apache:apache /home/www/

上記を行うことによって、正常にhtmlが表示される様になります。

■ パスの所有者(other)を追加する

上記の方法「パスの所有者を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 "-"

  1. Directoryの説明
    • "d":ディレクトリ(パス)である
    • "-":ディレクトリ(パス)でない(ファイルである)
  2. 所有者・グループ・その他の説明
    「drwx---r-x 3 www www 4096 1月 6 15:21 www」
    上記の左から3・4番目の項目に関連しており、3番目が所有者名、4番目がグループ名を表示しています。
    • 所有者とは、ディレクトリ(パス)が3番目のユーザのアクセス権を示します。
    • グループとは、ディレクトリ(パス)が4番目のグループのアクセス権を示します。
    • その他は、3・4番目に属さないユーザのアクセス権を示します。
  3. Readの説明
    • "r":読み取る事が可能
    • "-":読み取る事はできない
  4. Writeの説明
    • "w":書き込む事が可能
    • "-":書き込む事はできない
  5. eXecの説明
    • "x":実行する事が可能
    • "-":実行する事はできない

上記を行うことによって、本来の「www」ユーザでのログオンと、htmlのアップロードも可能になります。

■ CGI(Common Gateway Interface)の実行ができない

■ Perlのパスを疑う

CGIを実行するPerlの場所を確認する
# which perl
/usr/local/bin/perl

各CGIの先頭行と上記のPerlの場所が合っているか確認する
# vi xxxxx.cgi
#!/usr/local/bin/perl

■ CGIの実行が許されているか疑う

apache設定ファイルの確認
apacheの設定ファイル内でCGIを実行するパス(ディレクトリ情報)の
設定で「ExecCGI」が定義されているか確認する
# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/cgi-bin">
    Options Includes ExecCGI FollowSymLinks
        :
        :
</Directory>

■ CGIの実行拡張子を確認する

apache設定ファイルの確認
以下の例では、「.cgi」と「.pl」拡張子がCGI実行できます
# vi /etc/httpd/conf/httpd.conf
AddHandler cgi-script .cgi .pl

■ SELinuxを無効にして確認してみる

スクリプトの構文も正しく、パーミッションなども問題ないのにアクセスすると以下のような画面が表示され実行されない場合があります。

■ SSI(Server Side Include)の実行ができない

■ SSIの実行が許されているか疑う

apache設定ファイルの確認
apacheの設定ファイル内でSSIを実行するパス(ディレクトリ情報)の
設定で「Includes」が定義されているか確認する
# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/cgi-bin">
    Options Includes ExecCGI FollowSymLinks
        :
        :
</Directory>
備考)「Includes」はSSIの「EXEC」コマンドは使用できますが、
「IncludesNoExec」に変更すると、SSIの「EXEC」コマンドは使用できなくなります。

■ SSIの実行が許可されているドキュメントの拡張子を確認する

apache設定ファイルの確認
以下の例では、「.shtml」と「.inc」拡張子がSSI実行できます
# vi /etc/httpd/conf/httpd.conf
AddHandler server-parsed .shtml .inc

■ SELinuxを無効にして確認してみる

CGI(Common Gateway Interface)の実行ができない(SELinuxを無効にして確認してみる)』参照

■ Webページアクセス制限(.htpasswd & .htaccess)ができない

■ 分散設定ファイル「.htaccess」が有効になっているか確認する

apache設定ファイルの確認
「AllowOverride」ディレクティブが「All」になっている事を確認する
# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
    AllowOverride All
        :
        :
</Directory>

■ 分散設定ファイル「.htaccess」が別名で定義されていないか確認する

apache設定ファイルの確認
「AccessFileName」ディレクティブが「.htaccess」になっている事を確認する
# vi /etc/httpd/conf/httpd.conf
#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#
AccessFileName .htaccess
*:「AccessFileName」ディレクティブが別名「例:(.himitsu)」であれば、
「.htaccess」ファイル(分散設定ファイル)は、「.himitsu」として、設置しなければなりません。

■ 分散設定ファイル「.htaccess」の設定内容を疑う

ここでは、アクセス制限(認証)を例にとって、説明します。

認証パス「/var/www/html/security/」の「.htaccess」内容を確認する
*:パス「security」を例にしています
# 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

確認すべき事は、

【上記ディレクティブの説明】

■ HTTPS(Hypertext Transfer Protocol Security)でアクセスできない

■ 証明書・秘密鍵([*.csr][*.key][ca.der])が作成されているか確認する

■ CA証明書が作成されていない。またはCA証明書がクライアントにインポートされていない

CA証明書とは、承認局(サーバ)がユーザ等の認証をする為に使用します。
この証明書が無ければユーザーはSSLにて確立された通信を行うことができません。
クライアント(ユーザ)用のCA証明書の作成はCA証明書をブラウザにインポートするためのca.derファイル作成を参照して下さい。

また、CA証明書は作成しただけでは意味を持ちません。
例を例えると、家の鍵を鍵屋に注文しただけで受け取っていなければ、家に入ることができませんよね?
この鍵(CA証明書)をSSL通信で行うクライアントにインポート(取り込み)を行わなければなりません。
クライアントへの取り込み方法はクライアントへのCA証明書インストールを参照ください。

■ 証明書・秘密鍵も作成した。CA証明書もクライアントにインポートしたのにSSL通信できない

この場合は、3つ疑う場所があります。

■ 大容量ファイル(mpg・mp3・tar・等々)のダウンロードができない

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

【Fedora9 の場合】 2008年05月16日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.8-3

【Fedora10 の場合】 2008年12月09日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.10-2

【Fedora11 の場合】 2009年06月15日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.11-8

【Fedora12 の場合】 2009年12月17日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.13-4

【Fedora13 の場合】 2010年06月15日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.15-1

【Fedora14 の場合】 2010年11月09日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.16-1

【Fedora15 の場合】 2011年06月24日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.17-10

【Fedora16 の場合】 2011年11月16日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.21-1

【Fedora17 の場合】 2012年06月28日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.22-4

【CentOS4 の場合】
[root@centos ~]# rpm -qa httpd
httpd-2.0.52-28

【CentOS5 の場合】 2007年04月19日現在
[root@centos ~]# rpm -qa httpd
httpd-2.2.3-6

【CentOS6 の場合】 2011年07月21日現在
[root@centos ~]# rpm -qa httpd
httpd-2.2.15-5

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.