コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

きっと何者にもなれない僕だから

僕もようやくサーバーソフトを使ってPHPとか書くようになったよっていうお話

サーバーってなんなんだろうね

題名通りそんなお話をします。サーバーソフトを導入してみたよという何のひねりもないお話をしますよ。

僕がよくわからないPHPプログラムを書き続けることをはじめて半年ぐらいの時間が経ちました。いまだに僕はApacheだとかTomcatだとかを使わずにphp -S localhost:ポート番号でよくわからないものを作っていました。

しかしながらXAMPPというPHP環境構築欲張りセットを導入したにもかかわらず使わないのもアレですので、これからはこいつもちゃんと使ってあげようと思ったのでした。というわけで、Web系なプログラムを書いているのに一切触れてこなかったApacheについに触ってしまったよというお話を以下にだらだらと書いていきます。以前にもApacheこんな機能付いてるじゃん使ってみたのような記事は書いた記憶が…。
でも、ちゃんと言語とひも付けて使うのははじめてだし改めて説明を……。

Apache
Apache HTTP Server(アパッチ エイチティーティーピー サーバ)は、世界中でもっとも多く使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されている。単にApacheとも称されている。

よくわかんないこと書いてますが、本来Web上で走らせるプログラムやサービスを作るときはサーバーという環境を用意しないと動きません。そのために利用される環境構成のツールの一つとしてこんなのあるよということ言ってるんだと思います。ちなみに、本番環境(インターネット)でも耐えうるようなツールなので、今日もどこぞでこいつを使ってインターネットにホームページを公開しているところもあるんじゃないかな。

公式
Welcome! - The Apache HTTP Server Project

準備編

特に無いです。
XAMPPを入れると勝手についてきますという認識です。単体で欲しい場合は公式から持ってきましょう。

XAMPP
XAMPP Installers and Downloads for Apache Friends

ローカル環境を作って適当に遊ぶときにデフォルトの80番ポートだと競合しやすいので、httpd.confのListenあたりを好きな数字に変えておくと良いかもしれない。

何かを作って遊びます

最近まで、サーバーソフトで遊んでも何も面白く無いから記事にしづらいなとか思ってたんですよね。でも、丁度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

<!DOCTYPE html>
<html>
<head>
  <title>こんにちワールド</title>
  <link rel="shortcut icon" href="" >
</head>
<body>
  <p><?php echo 'Hello'; ?></p>
</body>
</html>

shindex.php (デフォルト以外のページ:確認用)

<!DOCTYPE html>
<html>
<head>
  <title>世紀末インデックス</title>
  <link rel="shortcut icon" href="#" >
</head>
<body>
  <p><?php echo 'お前はすでに死んでックス'; ?></p>
</body>
</html>

そして、試しにこんな階層のフォルダを作ってみます。
otameshi
├ .hteacess
├ hello.php
└ shindex.php

確認してみる

apacheで確認してみるとこんな感じにデフォルトページが表示されました
f:id:andron:20170305001641p:plain



じゃあphp -S localhost:7777で確認するとどうなるか。やってみます。
f:id:andron:20170305002427p:plain
設定していないと見つからないよとかでるんですね。よかった普通に表示されたらここまで記事を書いた意味は何だったのかと哲学するところだった。


そんな感じでページ移動やなんかに制限をつけられるそうなので今後はApacheを使っていこうという決意を固めたお話でした。