サーバーってなんなんだろうね
題名通りそんなお話をします。サーバーソフトを導入してみたよという何のひねりもないお話をしますよ。
僕がよくわからないPHPプログラムを書き続けることをはじめて半年ぐらいの時間が経ちました。いまだに僕はApacheだとかTomcatだとかを使わずにphp -S localhost:ポート番号
でよくわからないものを作っていました。
しかしながらXAMPPというPHP環境構築欲張りセットを導入したにもかかわらず使わないのもアレですので、これからはこいつもちゃんと使ってあげようと思ったのでした。というわけで、Web系なプログラムを書いているのに一切触れてこなかったApacheについに触ってしまったよというお話を以下にだらだらと書いていきます。以前にもApacheこんな機能付いてるじゃん使ってみたのような記事は書いた記憶が…。
でも、ちゃんと言語とひも付けて使うのははじめてだし改めて説明を……。
Apache
Apache HTTP Server(アパッチ エイチティーティーピー サーバ)は、世界中でもっとも多く使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されている。単にApacheとも称されている。
よくわかんないこと書いてますが、本来Web上で走らせるプログラムやサービスを作るときはサーバーという環境を用意しないと動きません。そのために利用される環境構成のツールの一つとしてこんなのあるよということ言ってるんだと思います。ちなみに、本番環境(インターネット)でも耐えうるようなツールなので、今日もどこぞでこいつを使ってインターネットにホームページを公開しているところもあるんじゃないかな。
公式
Welcome! - The Apache HTTP Server Project
何かを作って遊びます
最近まで、サーバーソフトで遊んでも何も面白く無いから記事にしづらいなとか思ってたんですよね。でも、丁度Apacheでなくては行けない理由を見つけてしまったので遊んでみました。
.htaccessのはなし
.htaccess
.htaccessとは、WebサーバーのApacheにおける、サーバーのディレクトリごとの設定情報を記しておくためのファイルのことである。分散設定ファイルと形容されることもある。
ということだそうです。ざっくりいうとページ移動の制限設定ファイルといった感じです。
色々と書き方はあるそうですが、こちらでサクッと作れてしまうようなので使っていきましょう(未検証)。
.htaccess ファイルを簡単作成「.htaccess Editor」
というわけで、こんなのを作ってみました。
.htaccess
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
Options -Indexes
DirectoryIndex hello.php
order deny,allow
ファイル一覧表示させない、デフォルトページをindex.htmlにするようにしました。
早速確認してみます。
――と、その前に確認のためのファイルを作っていきます。
hello.php
<html>
<head>
<title>こんにちワールド</title>
<link rel="shortcut icon" href="" >
</head>
<body>
<p><?php echo 'Hello'; ?></p>
</body>
</html>
shindex.php (デフォルト以外のページ:確認用)
<html>
<head>
<title>世紀末インデックス</title>
<link rel="shortcut icon" href="#" >
</head>
<body>
<p><?php echo 'お前はすでに死んでックス'; ?></p>
</body>
</html>
そして、試しにこんな階層のフォルダを作ってみます。
otameshi
├ .hteacess
├ hello.php
└ shindex.php
確認してみる
apacheで確認してみるとこんな感じにデフォルトページが表示されました
じゃあphp -S localhost:7777
で確認するとどうなるか。やってみます。
設定していないと見つからないよとかでるんですね。よかった普通に表示されたらここまで記事を書いた意味は何だったのかと哲学するところだった。
そんな感じでページ移動やなんかに制限をつけられるそうなので今後はApacheを使っていこうという決意を固めたお話でした。