wiz.code

Apacheのインストール

前のページ(CentOSの状態確認)で、「Apacheがインストールされてない」と何度も書きましたが、 CentOSのインストールするときのソフトウェアの選択(CentOSのインストール)を確認してみたら、そもそもWebサーバーが含まれていませんでした。 なので、気を取り直してApacheをインストールします。

Apacheのインストール

すでに、アプリケーションインストーラの中にApacheがないことは分かっているので、パッケージ管理システムである「yum」を使って導入します。

アプリケーションインストーラと違い、パッケージ管理システムはCUIを前提に作られているはずなので、Windowsで言うところの「コマンドプロンプト」のようなもので処理するのでしょう。

端末(Terminal)

探してみると、ユーティリティの中に「端末」というそれらしいものがありました。 本来は「Terminal(ターミナル)」と言うようです。

初見の感想「あ~、サイトとかでこういうの見たことあるある」

さすがに、コマンドを手探りで打つのは危ないのでちゃんと調べました。 Apacheをインストールするコマンドは次の通り。

[wiz@localhost ~]$ yum install httpd
端末でルート化

rootで実行しろ、と叱られました…。 そりゃそうですね。

ルート権限で実行するには…(Web検索中)…「su」コマンドを打つんですね。 「su」は「Substitute User(ユーザーを代える)」の略だそうです。 ついでに調べると「yum」は「Yellowdog Updater Modified」の略。 「Yellowdog」は「Yellow Dog Linux」というRed Hat系ディストリビューションの一種らしいです。

[wiz@localhost ~]$ su
パスワード:(パスワードを入力)
yumコマンドでインストール

パスワードを入力して、ユーザーが「root」に変わりました。 再度、yumコマンドを実行してみます。

[root@localhost wiz]# yum install httpd
インストール確認

インストールの準備が終わり、「Is this ok」(インストールしますか?)と聞かれたので「y」と返答します。

Is this ok [y/d/n]: y
丁寧なインストール確認

続いて今後は日本語で「上記の処理を行います。よろしいでしょうか?」と丁寧に尋ねられました。 「よろしいです」の「y」で返答します。

上記の処理を行います。よろしいでしょうか? [y/N]: y
元気の良い完了報告

「完了しました!」と元気よく報告されました。

Apacheを起動

Apache起動

さっそくApache(httpd)を起動させてみます。

[root@localhost wiz]# httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

おっと、ServerNameを設定しろと言われました。

http.confが2個

ちなみに、wiz.は、Windows版のApacheを使ったことあるので、設定方法は分かります。 httpd.confを開いて・・・どこにあるんだ?

こういう時は検索で探しましょう。 コンピュータを開いて、検索ウィンドウに「httpd.conf」っと。

あれ、2個出てきた。

ファイルのプロパティ

ファイルのプロパティでファイルがあるディレクトリを見てみると…

  • /etc/httpd/conf
  • /usr/lib/tmpfiles.d

下は一時ファイルっぽいので、/etc/httpd/confの方ですね。 これを開いて編集しましょう。

読み取り専用?

む。 「読み取りのみ」になってる。 これもroot権限で開かないと編集できないようになっているわけですな。 そういえば、アイコンに鍵マークついてたし…。

ファイルを右クリックすると「geditで開く」と出てくるので、「gedit」ってのがいわゆる「メモ帳」に相当するようです。 ただ、Windowsのように「管理者として開く」というコマンドがないな…。

端末がroot権限のままだから、端末から「gedit」を起動すればroot権限で起動するかな?

端末からルート権限でgedit起動

端末(root)から「gedit」で起動。

[root@localhost wiz]# gedit

端末がいくつかエラー吐いてるけど、いいのかな?

続いて「開く」から「/etc/httpd/conf/httpd.conf」を開いたら「読み取りのみ」は表示されなくなりました。

エラーメッセージで言われたのは「ServerName」だけなので、95行目あたりにある「ServerName」のコメントを外し、ドメイン部をひとまず「localhost」に変更。

#ServerName www.example.com:80
ServerName localhost:80

DocumentRootは「/var/www/html」となっていますね。 ここが、既定でWebデータが置かれるディレクトリとなっているようです。

とりあえずこれで保存して、再度Apacheを起動してみます。

再びApache起動

端末(root)でApache起動。

[root@localhost wiz]# httpd
httpd (pid 54303) already running

ん? 今度は「already running」と言われました。 すでに実行している、と。

ブラウザで「localhost」

FireFoxで「localhost」を開いてみたら、ちゃんと動いていました。

確認できたので、Apacheは一旦停止させます。

あ…。 Windows版だと、Apacheを普通に起動すると[Ctrl]+[C]を押すまでコマンド入力に戻ってこないのだけど、これ、どうやって停止させるんだろう…。

[root@localhost wiz]# httpd stop

と、コマンドしても、コマンドラインのヘルプが出てくるだけだし…。 Windowsだったらこういう時、[Ctrl]+[Shift]+[Esc]でタスクマネージャを出して、プロセスを落とすんだけど…。

プロセスの終了

プロセスの終了

「linux プロセス 終了」で検索したら「kill」コマンドでプロセスを落とせるらしい。 ただ、コマンドの引数が「PID(プロセスID)」っぽい。 と、思ったら、2回目に「httpd」実行したメッセージにPID書いてあった。

「kill」コマンドでhttpdのPIDを指定して、プロセス終了。

[root@localhost wiz]# kill 54303

※ 上記の「54303(PID)」はプロセスごとに異なります。 ご自身のマシンで実行するときは必ずPIDを確認してください。

プロセス終了確認

プロセスがホントに落ちたか、ブラウザで「localhost」を開いて確認。

エラーになっているので、httpdが終了していることが分かります。

サービスの登録

自動起動の設定

最後に、Apacheを自動的に起動するように設定します。 CentOS 7からは、サービスに関するコマンドが「systemctl」になったようで、次のコマンドによりhttpdがサービスに登録されます。

[root@localhost wiz]# systemctl enable httpd.service
自動起動を確認

続いて、サービスを起動します。

[root@localhost wiz]# systemctl start httpd.service

ブラウザでも起動が確認できました。

この章のまとめ

  • Apacheはパッケージ管理システム(CentOSではyum)を使って導入する。
  • CUIのコマンドや、root権限での実行は端末を使う。
  • geditはGUIのメモ帳。
  • suコマンド:端末でroot権限に変更する。
  • killコマンド:プロセスを終了する。終了にはプロセス番号(PID)が必要。
  • systemctlコマンド:サービスの登録・起動・終了・削除などを行う。CentOS7から採用された。