当サイトをご利用頂き有難うございます。
当サイトは今月末日にモールタイプの総合検索サイトへリニューアルの予定です。
サイト名も変更となりますが、今後とも宜しくお願いいたします。

WEBサーバー

いよいよWEB公開の準備です。

①GNOME端末を立ち上げ、パッケージをインストールします。
  必要なパッケージは httpd/mod_perl/firefox ですが、既にmod_perlとfirefoxは
  インストールされていますので、httpd(Apache) のみインストールします。

  1. # su   と  root管理者権限のパスワード を入力

  2. # yum install httpd を入力

    (省略)

  3. # y を入力

    (省略)

   Complete! と表示され完了。

②WEBサーバーの設定

  続けて(GNOME端末で)

  1. # su -

  2. # gedit /etc/httpd/conf/httpd.conf を入力

  3. httpd.conf ファイルを編集します

    a. 文字検索で serveradmin と入力し検索します。色付きでハイライトされます。

       ServerAdmin root@localhost → ServerAdmin root@自サーバーアドレス に変更
        (通常使用しているメールアドレスを登録します)

    b. 続けて servername と入力し検索します。色付きでハイライトされます。

       #ServerName www.example.com:80 → ServerName 自サーバーアドレス:80 に変更

    c. 続けて options indexes と入力し検索します。色付きでハイライトされます。

        Options Indexes FollowSymLinks → Options Includes ExecCGI FollowSymLinks に変更

       * Includes : SSIを許可
       * ExecCGI : CGIを許可
       * FollowSymLinks : シンボリックリンク先へのアクセスを許可します。

    d. 続けて allowoverride と入力し検索します。色付きでハイライトされます。

        AllowOverride None → AllowOverride All に変更

       * オプションは他にもあります。詳細の説明は割愛します。
       * 「 None 」は、全てのオーバーライド(上書き)を禁止し.htaccess の設置を無視します。
       * 「 All 」は、.htaccess ファイルの設置を許可します。
       * .htaccess ファイルを設置する設定で作業を進めます。
          サーバーのパフォーマンスが多少落ちてしまいますが、
          このファイルの使用に慣れたら httpd.conf に記述する方向で構築します。
          httpd.conf に記述するとパフォーマンスが向上します。

    e. 続けて 少し下にある 

       Order allow,deny             Order allow,deny
      Allow from all         →     Allow from 192.168.0.0/24

      に書き換えます。(アドレスはサーバーのipアドレスに応じ変更します)
      ここでは、自宅内のパソコンよりのみアクセスを許可しています。
       (まさか自宅でipアドレス数256個もありませんが、、、、)

       * 今回の設定では、LAN内のみにWEBページが閲覧できる設定になります。
         サーバー構築の状況をみて、LAN外に開放します。その時は、

          Allow from 192.168.0.0/24  →   Allow from all に戻します。

       * 全てのマシンからのアクセスを拒否する時には、

          Order allow,deny だけにします。

    f. 続けて servertokens と入力し検索します。色付きでハイライトされます。

       ServerTokens OS → ServerTokens Prod

       * エラーページ等でOS名を表示させない

    g. 続けて serversignature と入力し検索します。色付きでハイライトされます。

       ServerSignature On → ServerSignature Off

       * エラーページ等でApacheのバージョンを表示させない

    h. 続けて addhandler と入力し検索します。色付きでハイライトされます。

       #AddHandler cgi-script .cgi → AddHandler cgi-script .cgi .pl

       * CGIスクリプトが実行できる

    i. 続けて adddefaultcharset と入力し検索します。色付きでハイライトされます。

       AddDefaultCharset UTF-8 → #AddDefaultCharset UTF-8

       * デフォルトキャラセットを無効にする。

    j. 続けて LogFormat と入力し検索します。色付きでハイライトされます。

       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
         
       → LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

       * 長すぎるURI(414 Error)はログに記録しない

    k. 続けて customlog logs と入力し検索します。色付きでハイライトされます。

       #CustomLog logs/access_log common の下に下記を追記します。

       ------------------------------------- 追加 ------------------------------------------

       SetEnvIf Request_URI "default\.ida" no_log  : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "cmd\.exe" no_log    : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "root\.exe" no_log    : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "Admin\.dll" no_log   : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "NULL\.IDA" no_log   : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" no_log
                               : (拡張子)ファイルへのアクセスを記録しない
       SetEnvIf Remote_Addr 192.168. no_log  : 内部からのアクセスをログに記録しない
       CustomLog logs/access_log combined env=!no_log  : 上記以外のアクセスをログに記録する

       ---------------------------------------------------------- 以上 ---------------------

    以上で完了です。ファイルを保存しエディタを終了します。

③Perlのシンボリックリンク設定

  続けて(GNOME端末で)

    # ln -s /usr/bin/perl /usr/local/bin/perl を入力

     * シンボリックリンク設定(/usr/local/bin/perl から /usr/bin/perl へリンクする)
     * この設定でPerlのパスが/usr/local/bin/perlでもCGIが実行出来る様になります。

④ドキュメントルートの所有者変更

  続けて(GNOME端末で)

    # chown xxxx:xxx /var/www/html/ を入力

     * ドキュメントルートの所有者を変更します。
     * 所有者は /etc/passwd ファイル にあるログイン名(例ではxxxx)を指定します。
       rootのままだと何かと不都合なので変更します。

⑤WEBサーバーの起動

  続けて(GNOME端末で)

    # /etc/init.d/httpd start    でApacheを起動

    # /sbin/chkconfig --level 2345 httpd on    でApacheを自動起動に設定

⑥確認

  アドレス欄に 127.0.0.1 を入力する。

    Fedora Test Page が表示されれば、インストール完了です。


 * 今回のApacheのMPM (Multi Processing Module) はデフォルトのpreforkで動かします。
   PHPを搭載しますので、このままの設定で構築します。(システムの安定化優先)
   workerも搭載されていますので、必要により使用する時は

    /etc/sysconfig/httpd にある #HTTPD=/usr/sbin/httpd.worker の # を削除します。

 * CGIの動作テストで Internal Server Error の表示で止まってしまった場合は、
   プログラムの改行コードの表記違いによる場合があります。

     先頭行のPerlへのパスを #!/usr/bin/perl  →  #!/usr/bin/perl --  に変更し確認します。

      もし直るようであれば、改行コードによるエラーです。
      FTP転送ソフトの転送モードを確認しましょう。
      転送モードをバイナリー転送モードにします。(Linux上では LF のみ使用できます。)
      この場合、改行コードはDOS(CR+LF)からUnix(LF)に変換されます。

      vsftpdの場合は、vsftpd.confを開いて、

       ascii_upload_enable=YES
       ascii_download_enable=YES

      コメントアウトされている部分のコメントを外し、YESに設定を変更します。


WEB公開へ向けた下ごしらえの完了です。
本公開は以上の設定の他に、ルーター・ネットワーク・ファイアウォールの設定などが必要になります。