コンテンツの設置方法
レンタル Web サービスご利用のユーザー向けコンテンツ設置方法です。
当サーバーの仕様に沿った説明ですが、その他無料 Web サービスをご利用の方でも
一部のみ参考になるかもしれません。
1. ファイルのアップロード
WebSite のコンテンツを公開するには、当サーバー所定の位置へ任意の FTP クライアントを用いて
ファイルをアップロードしていただきます。
FTP クライアントとして、Windows であれば FFFTP, SmartFTP, NextFTP (Shareware) が お勧めです。
(フリーウェアであればFFFTP より SmartFTP をお勧めします)
FTP クライアントの設定方法は以下の通り。
ホスト名/ホストアドレス : ftp.bp7.org
ユーザー名 : お知らせしたユーザー名を入力してください。
パスワード : お知らせしたパスワードを入力してください。
* PASV モード対応ホストです
2. Web コンテンツのアップロード先
FTP クライアントにてログインすると「public_html」というディレクトリが存在します。
当 Web サーバーではこのディレクトリの中にある物しか外部に公開致しませんので こちらへアップロードします。
ブラウザのアドレスバーへ URL を入力したとき、任意のファイルを指定しなかった場合では
index.html -> index.php -> index.cgi
この優先順位でファイルを探し、表示させます。
上記ファイルが存在しない場合には「403 Forbidden」というエラーを返しますのでご注意下さい。
3. CGI (Common Gate Interface) の設置方法 Perl 編
「public_html」以下であれば、どこへ設置しても CGI としてスクリプトを動作させることが可能です。
Web サーバーの設定では「スクリプトを所有するユーザーへ実行権限を与えて動作する」という
suEXEC モジュールを導入して動作しております。
これは主に他ユーザーからのファイル閲覧や改竄を防止する為と管理上の問題から実装しております。
その為、無料で配布されている Perl を用いた CGI スクリプトに同梱されているドキュメント内設置方法とは
パーミッション (ファイルやディレクトリに対するアクセス権) が異なります。
以下に当サーバーで Perl を用いた CGI スクリプトのパーミッション設定例を記します。
ファイルパス パーミッション /public_html/bbs/ 701 (設置ディレクトリ) /public_html/bbs/bbs.cgi 700 (実行スクリプト) /public_html/bbs/bbs.log 600 (ログや書込が行われるファイル)
配布されている CGI に含まれるドキュメントの設置例より以下の通り読み替えると簡単です。
777 -> 701 ディレクトリパーミッション
755 -> 700 実行されるスクリプト
666 -> 600 書込が行われるログファイル等
644 -> 604 or 644 CGI から読み込まれるファイルや
HTML ファイル
以上の設定でファイルを所有しているユーザーの実行権のみで動作します。
また、Perl プログラムへのパスは以下 2 つがあります。スクリプトの 1 行目を適時
書き換えて設置してください。
/usr/bin/perl
/usr/local/bin/perl
4. CGI (Common Gate Interface) の設置方法 PHP 編
基本的には配布されているファイルのドキュメントに従い設置するだけで CGI として動作します。
当サーバーでは PHP スクリプト実行速度を向上させるアクセラレーターを導入しております。
このアクセラレーターの影響により、PHP による CGI を設置してもブラウザには空白ページしか
表示されず、上手く動作しないことが希にあります。
この様な現象が起きるスクリプトがありましたら以下の様に対処して頂くことで正常動作します。
- テキストエディタで「.htaccess」という名前のファイルを新規作成する。
(既に設置ディレクトリ内に存在すればファイル末尾に追記します) - 以下 2 行を記述します。
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0 - ファイルに保存をしたら設置しているディレクトリにアップロードします。
5. BASIC 認証を用いたコンテンツアクセス認証制限
特定ディレクトリ内のコンテンツに認証パスワードをかけ、アクセス制限をかけたい場合には「.htaccess」と
暗号化されたパスワードデータの入ったファイル (.htpasswd) を用意し、設置する事で実現可能です。
以下の通りにファイルを作成し、説明通りアップロードしてください。
ファイル名
.htaccess
内容は以下 4 行
AuthType Basic
AuthName “Please Enter ID and Password.”
AuthUserfile /home/ユーザー名/設置パス/.htpasswd
require valid-user
AuthName の行では「”」で囲った文字列が認証ウィンドウへ表示されます。
AuthUserfile の行では認証に必要なユーザー名やパスワードを保存したファイル「.htpasswd」の位置を
絶対パスで表記する必要があります。
ユーザー名
ユーザーアカウント名に置き換えて下さい。
設置パス
パスワードファイルを設置するディレクトリを指定します。
「public_html」以下を指定してしまうと他ユーザーから参照されるおそれがあり非推奨です。
FTP クライアントでログインし、ホームディレクトリ上へ任意のディレクトリを作成し、設置を推奨します。
(ホームディレクトリ = ログイン時に表示されているディレクトリ)
ex.) /home/user1/etc/.htpasswd
尚、「.htpasswd」は慣例的に使用されるファイル名であり、絶対このファイル名で無ければならない
という訳ではありません。ユーザー任意のユニークなファイル名に置き換えても結構です。
次に「.htpasswd」を作成します。
内容は 1 行であり、「ID:パスワード」という形ですが、パスワードは平文ではなく暗号化させます。
ex.)
user1 という ID でパスワード「1234」の場合。
「user1:$1$jUbCAN.Y$v3s.woSw4X1uskXAWQE80.」
これであればパスワードが暗号化され、万が一外部にファイルが漏れてもある程度の安全性が保てます。
しかし任意のパスワードを暗号化するにはどうしたらいいか。となってしまいます。
暗号化には MD5 というありふれたアルゴリズムを用います。(対応暗号自体は DES or MD5 の 2 種)
以下に任意の ID とパスワードでパスワードファイルに記述するデータを出力するスクリプトを用意しましたので
こちらで生成したものをファイルに Copy&Paste して保存後、アップロードしてください。
パスワードファイル生成はこちらから (SSL による暗号化経路でアクセスはこちらから)
以上、「.htaccess」と「.htpasswd」の 2 ファイルが完成したら設置作業に移ります。
- 「.htaccess」で指定したディレクトリに「.htpasswd」をアップロード
- 「.htaccess」を認証にてアクセス制限をかけたいディレクトリにアップロード
これで BASIC 認証によるアクセス制限が可能となります。
2007/11/18 update.
