A Day In The Boy's Life -157ページ目

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

借りているファーストサーバ にてBasic認証を設定するメモ。


以前に「レンタルサーバーのファーストサーバ設定あれこれ 」にて、Webサーバーとしてサービスを開始するまでの一連の流れを書いた見ましたが、VPS(仮想専用サーバー)環境の場合、その仮想ソフトウェアがApacheをオーバーラップしているため、環境構成を意識しながら設定をする必要があります。


基本的には、通常のBasic認証を設定する方法と同じなのですが、そのVPS環境内でBasic認証を設定する方法を簡単に解説します。



ファーストサーバのApacheの構成


まず、ファーストサーバの仮想ソフトウェアとして使われているのがPleskというソフトウェアですが、こいつがApacheの設定を握っているため、Apacheの設定ファイルを直接編集することはリスクにつながります。


Apacheの設定ファイル自体は、「/etc/httpd/conf」ディレクトリ以下にありますが、ここから幾つかの仮想ソフトウェア用の設定ファイルが読み込まれています。


/etc/httpd/conf/httpd.conf

このファイルから、「/etc/httpd/conf.d」ディレクトリ以下の設定ファイルが読み込まれています。

conf.dディレクトリにある設定ファイルの中でも「zz010_psa_httpd.conf」という設定ファイルがPlesk用の設定ファイルになっています。


/etc/httpd/conf.d/zz010_psa_httpd.conf

※ ファイル名に関してはPleskのバージョンや環境によって異なるかもしれません。


そして、さらにこの「zz010_psa_httpd.conf」という設定ファイルから、環境独自の設定ファイルが読み込まれます。


/var/www/vhosts/localhost.localdomain/conf/httpd.include

※ localhost.localdomainの部分は、Plesk上で設定したドメイン名になるため適宜読み替えてください。

  要は「レンタルサーバーのファーストサーバ設定あれこれ 」の中で設定したドメイン用のルートディレクトリです。


また、これらのファイルは編集するなと設定ファイル自体に記載されていますので、変更することでWebサーバーが動かなくなる恐れがあります。

って事で、Basic認証は「.htaccess」ファイルを設置して機能させる方法をとります。



Basic認証を設定する


Basic認証の設定方法は、一般的な「.htaccess」ファイルにて設置する方法と同様です。



1. パスワードファイルの作成


Basic認証でアクセスさせたいユーザー名とそのパスワードを記載したファイルを作成します。

作成方法は、Apache付属のhtpasswdコマンドを使うのがよいでしょう。


# htpasswd -c /var/www/htpasswd/.htpasswd itboy

実行後はユーザー名(上記の場合は、itboy)のパスワードを入力します。

パスワードファイルを保存する場所はどこでもよいですが、Apacheのドキュメントルート外において置いたほうがよいため、上記のようなディレクトリに保存させています。


作成したら実行権限を変更しておきます。

Pleskからもファイルの読み取り・実行ができるように権限を変更しておきましょう。


# chmod -R 755 /var/www/htpasswd


2. .htaccessファイルを作る


こちらも一般的な書き方と同様です。

例えば、こんな感じです。


AuthUserFile /var/www/htpasswd/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

.htaccessファイルの設置場所ですが、そのドメイン用のルートディレクトリ直下に保存しておきます。

例えば、今回の環境の場合では


/var/www/vhosts/localhost.localdomain/

となります。

こうすることで、仮想ソフトウェア上で動かす全てのディレクトリ以下にBasic認証をかけることが可能です。

特定のディレクトリにだけかけたい場合は、このルートディレクトリ以下の適当なディレクトリに設置すればよいでしょう。

例えば、SSL環境のディレクトリにのみBasic認証をかけたい場合はhttpsdocsディレクトリ以下に置くとか。



設定が完了したらアクセスしてみて、Basic認証の画面が表示されるか確認しましょう。

もし、うまくいかない場合は


・ パスワードファイルのパスが正しいか

・ パスワードファイルがPleskのユーザーから読み取り・実行できる権限がついているか
・ パスワードファイル内の書き方が正しいか


などを確認すると幸せになれるかもしれません。






ブログに「自分」をさらけ出す割合 @ ブログヘラルド


自分の考えは以前に「自分をさらけ出すところ、さらけださないところ 」というエントリで書いたとおりです。

ただ、どこまで自分を出しているかといわれるとなんとも答えにくい。


書いたエントリに対する自分の「さらけ出し度合」で言えばほぼ100%ですかね。

もちろん本音と建前なんてもんはありますので、そこをオブラートに包んだりしますからそれが本音だ(100%の自分)とはいえませんが。


逆にそんなに自分をさらけ出しているといえるのも、さらけ出せない部分はエントリに書かないからという理由です。

議論をよびそうなことはあえてスルーしたりもしますし、何か思ってることがあっても世間一般で言われているような意見であれば、わざわざ「みんなと思っていることは一緒だよ」なんてエントリを書いたりもしません。

なので、さらけ出すのをセーブしている部分ももちろんあります。


たぶん本当の自分を包み隠さずにブログで表現することはかなり危ういことではないかと思います。

何せ、100%自分をさらけ出せる友達なんて1人か2人ぐらいなもんです。

顔見知りの間でもその程度なのに、それをネット上でやってしまうと「何だコイツ」という状態になるかと。


「私はあなたと違う」という強い意志と、読み手がその多様性を享受してくれれば何も起きないかもしれませんが、その意志を持てる人や、その考えに対する論拠をきちんと持っている人というのはかなり少ないと思います。

それは明確に判断を読み手にゆだねる事になります。

私はこう思っている、あなたは違う考えを持つかもしれないが、私はこう思っている。

反対するなら反対すればいい、でも私はこう思っている。


はてブのホッテントリに入っているエントリでも、その全てが賛成だからブックマークしているわけじゃないですからね。

コメント欄を見ればよくわかったりしますけど、それをネガコメと呼ぶのは簡単ですが、それ自体が自分の本音を語ることの難しさを物語っているような気がします。

ネガコメがいけないわけではなく、人それぞれ意見は違うんだよって言うところで。


多くに受け入れられないことだろうなとは思いつつも、そうできる人を私は尊敬しますが。




サーバー保守をする際にはTeraTermを使っているんですが、サーバーごとに環境が微妙に違ってそのたびにTeraTermの設定を変えないといけなくて面倒なときがあります。

典型的なのが、文字コード(LANG)。

UTF-8の環境もあれば、EUC-JPの環境もあり、ほかの設定は同じでいいんだけど文字コードだけ切り替えたいということがあります。


ただ、環境ごとに自動で切り替える方法はないみたいですね。

もっとも手軽な例で言えば、起動オプションを変えたショートカットを作っておくということでしょうか。



TeraTermをオプション指定して起動する


まずTeraTermのEXEファイル(ttermpro.exe)へのショートカットを作ります。

で、ショートカットのプロパティを開いて


A Day In The Boy’s Life-TeraTermプロパティ


リンク先に下記を指定します。


※ 文字コードをEUC-JPにしたい場合


"C:\Program Files\teraterm\ttermpro.exe" /KR=EUC

また、文字コード以外にももろもろ相違点があり、環境ファイルごと替えたい場合なら下記のように、設定ファイルを指定して起動させることも可能です。


"C:\Program Files\teraterm\ttermpro.exe" /F=TERATERM-EUC.INI


ショートカットを作るという少し手間のかかる方法ではあるんですが、毎回オプションの変更をするよりはましなので、必要があれば環境を用意してみてはいかがでしょうか。