|
≪ CGI / SSI≫ |
WWW (Apache) 設定 |
≪
≪
≪
httpd.conf ファイル
≫-
WWWサーバーをご自分で立てCGI及びSSIを実行させたい場合は、これらを許可する設定をしなければなりません。
Optionsに「 ExecCGI (CGI許可) 」「 Includes (SSI許可) 」を付け足す。
(「home」ディレクトリー以下で許可する場合。)
<Directory "/home">
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
Options -Indexes FollowSymLinks ExecCGI Includes
# # This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
※ 備考:赤文字がある列に「-Indexes」とする事で、index.htmlファイルが置かれていなくてもディレクトリー内を見えないように出来ます。
CGIとして認識させる拡張子を設定する
(.plは必要であれば追加する。)
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi .pl
SSIを実行させるファイルの拡張子を設定する。
# To use server-parsed HTML files
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml
AddType text/html .shtml
AddHandler server-parsed .shtml
(Apache2の場合)
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
※ 備考:半角スペースの後拡張子を追加出来ますが、.html等を指定する場合はパフォーマンス等を考慮しながら設定する事をお勧め致します。
≪
.htacces ファイル
≫-
httpd.confファイル1項にあるように「AllowOverride All」となっている場合、上記「httpd.conf」の設定も「.htaccesファイル」にても可能となります。
CGI及びSSIの実行許可設定
Options ExecCGI Includes
AddType text/x-server-parsed-html .shtml
AddType application/x-httpd-cgi .cgi .pl
※ Apache2の場合
AddType text/x-server-parsed-html .shtml
ではなく
AddOutputFilter INCLUDES .shtml
と記述。
ファイルのアクセス制限
<Files *.pl>
order deny,allow
deny from all
</Files>
<Files *.dat>
order deny,allow
deny from all
</Files>
※ 上記は「.pl」「.dat」に制限をかけた例です。これにより、「.pl」「.dat」ファイルをWEB上から読む事が出来なくなります。
アクセス制限 (一部のHOST IP)
○ 一部のHOST IPに許可
<limit GET>
deny from all
allow from 192.168.1
allow from xxx.co.jp
</limit>
・ 「192.168.1」「xxx.co.jp」を許可。 ○ 一部のHOST IPに不許可
<limit GET>
allow from all
deny from 192.168.1
deny from xxx.co.jp
</limit>
・ 「192.168.1」「xxx.co.jp」を不許可。
パスワード(Basic認証)によるアクセス制限
○ HOST IP制限無し
AuthUserFile /usr/home/pmcj/.pwd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<limit POST GET>
require valid-user
</limit>
・ Basic認証する為の基本形。 ○ HOST IP制限有り
AuthUserFile /usr/home/pmcj/.pwd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<limit POST GET>
deny from all
allow from 192.168.1
allow from xxx.co.jp
require valid-user
</limit>
・ Basic認証に加え「192.168.1」「xxx.co.jp」を不許可。
※ パスワードファイルの作り方
telnet 又は プロンプト等で、htpasswdコマンドを使って作成します。
$ htpasswd -c .pwd sato
New password:パスワードを打ち込む
Re-type new password:再度確認の為パスワードを打ち込む
Adding password for user pmcj
・ すると、「.pwd」と言うファイルが作られこの中に「sato」と言うユーザーとパスワードが作成されます。 ・ 一度、ファイルが出来ると、次回からは「-c」オプションは必要ありません。
例:$ htpasswd .pwd pmcj・ 尚、パスワードファイルはホームディレクトリーより上位に配置する事をお勧め致します。
HTTPエラーメッセージの設定
下記を記述しアップする事によって、エラーメッセージページを自分の好みのページにする事が可能です。
ErrorDocument 401 /error/401_error.html
ErrorDocument 403 /error/403_error.html
ErrorDocument 404 /error/404_error.html
ErrorDocument 500 /error/500_error.html
・ 上記の例は、ホームディレクトリー直下に「error」ディレクトリーを作りその中に自分で作成した各ファイルを配置します。 ・ 尚、html文書になっていなければ表示されませんのでご注意下さい。
注意としては、.htaccess内の記述にミスがあった場合等は [ 500 Internal Server Error ] となってしまいますのでご注意下さい。 FTPアップ時は必ずアスキー転送をして下さい。パーミッションに関しては[644][604][600]のいずれかに設定します。
設置する場所は、下記制御をしたいディレクトリーに設置となります。
≪
その他ファイル
≫「access.log」「error.log」について
このファイルがある場所は、インストール時や設定においてそれぞれ違ってきますが、「/var/log」「/usr/local/apache」「/usr/local/etc/apache」等にあるか又は「apache」の中の「logs」ディレクトリーかもしれません。
これらのログファイルはほおって置くと膨大なサイズとなってしまいますので、定期的に空にするか又は、「/etc/newsyslog.conf」ファイルにて保存ログを圧縮してスペースを節約する方法が良いでしょう。
※ newsyslog.conf (FreeBSDの場合)
/usr/local/apache/logs/access_log 644 4 * 24 Z
/usr/local/apache/logs/error_log 644 4 * 24 Z /var/run/httpd.pid
・ 上記例は、24時間間隔でgzip圧縮(Z指定)保存ログを4ファイルまで確保しファイルモードは[644]と言う設定です。 ・ apache「access_log」等は、保存ログ作成後プロセスを実行(signal_numberを送る)させないと、新しいログファイルが作成されなくそれ以降ログが取れなくなりますので「/var/run/httpd.pid」等を忘れないようにして下さい。 ・ 尚、「*」の箇所は時間間隔ではなく指定したサイズに達した場合に保存ログを作りたい時に指定します。 ・ その他詳細に付いては、マニュアル等を参照して下さい。
楽天売れ筋プログラミング入門書 etc ... | |
|
|
|