問題解説: 妖精の国 第一のトラブル

問題文

旅を続ける一行は、通りかかった小さな村に一夜の宿を借りることにした。一軒一軒民家を回っていたが、泊めてもらえるどころか人の姿さえ見当たらなかった。
半ば諦めながら最後の民家の戸を叩くと、赤い帽子を被った男が出てきた。

男は快く一行を受け入れてくれた。家の中で男にこれまでの冒険を話すと、かなり興味を持ったようだった。

男「色々な国でトラブルを解決してきたようだな。それなら、君たちの実力を見せてほしい」

男はそういって銀色の平たい箱を取り出した。

エイト「それは?」

男「これは俺が昔遊んでたサーバさ。CentOSが大好きでね。ちょうどいい、webサーバを構築して見せてくれないか」

エイト「セントオーエス…遷都を応援してるのかしら?」

サーバへのアクセス情報

  • サーバ名: centos
  • アドレス: centos.1.fy
  • ユーザー名: centos
  • パスワード: CentOSL0ve

達成すべき事項

  • Apache をインストールする。
  • hello world! と書かれたファイルを用意し、hello world! をブラウザで表示させる。

解説

この問題文を要約すると、「CentOSが大好きな赤い帽子を被った男に、昔遊んでいたサーバーにWebサーバーを構築してくれと腕試しをされた。」という問題です。

この問題はトラブルシュートというより、おまけの知識問題となっています。

おそらくApacheのインストールを行おうと yum コマンドを叩くとエラーが返ってきたと思います。

そこでおもむろに cat /proc/version を叩くと以下の内容が返ってきます。

Linux version 4.13.3-1-ARCH (builduser@tobias) (gcc version 7.2.0 (GCC)) #1 SMP PREEMPT Thu Sep 21 20:33:16 CEST 2017

そうです、実はこのサーバーのOS、CentOSではなくArchLinuxだったのです。
問題文を見ると、CentOSが大好きと言ってはいますが、サーバーのOSがCentOSだとは言ってないですね。

男「これは俺が昔遊んでたサーバさ。CentOSが大好きでね。ちょうどいい、webサーバを構築して見せてくれないか」

サーバ(CentOSとは言ってない) というのに気づければokです。

ArchLinuxでは pacman をパッケージマネージャとして利用しているので、以下のコマンドを使用することでインストールすることが出来ます。

$ pacman -Syyu apache

また、ArchLinuxではsystemdをinitとして使用しているので、systemctlを使用してサービスを起動します。

$ systemctl start httpd
$ systemctl enable httpd

hello world! ページですが、 httpd.conf から DocumentRoot を探せばindex.htmlを置く場所が分かります。
今回は /srv/http ですので、そこに index.html を置けば完成です。

$ grep DocumentRoot /etc/httpd/conf/httpd.conf
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/srv/http"
    # access content that does not live under the DocumentRoot.

$ sudo sh -c "echo 'hello world!' > /srv/http/index.html"