LinuxでApacheを動かしてみた
今日はApacheについて少しふれておきたいと思います。
環境としてはこれまで通り以下の通りです。
・ubuntu16.04 (デスクトップ版)
・LAMPインストール済み(インストール方法については下記の記事を参照してください)
regpon.hatenablog.com
Apacheの起動
まずは起動してみます。
起動するコマンドは2パターンあり、一つは
$ sudo service apache2 start
もう一つが、
$ sudo /etc/init.d/apache2 start
です。
前者と後者では若干挙動が違うらしいです。
前者では一部の環境変数を、後者では実行時の環境変数をすべて引き継ぐみたいです。
ちょっと今の自分にはまだ理解できない範囲でした。。。
とにもかくにも実行してみました。
後者のコマンドで実行すると、起動できたかどうかが表示されるので個人的には好きですね。
ちなみに/etc/init.dには様々なサービスのシェルスクリプトが置いてあります。
Apacheの再起動
再起動も同様のコマンドで末尾を「restart」にすればできます
$ sudo service apache2 restart
$ sudo /etc/init.d/apache2 restart
もちろん停止からの起動でも行けるので、
$ sudo service apache2 stop $ sudo service apache2 start
$ sudo /etc/init.d/apache2 stop $ sudo /etc/init.d/apache2 start
でも実環境を意識した再起動を考えると、garacefulで停止させてからの起動がよさそうです。
garacefulとはapache2を停止させるオプションとしてはstopと同じですが、停止の仕方が若干異なります。
stopは強制終了で接続しているクライアントなども気にせず停止します。
gracefulは接続しているクライアントは生かし、新しい接続を拒否し、残存するクライアントの接続がすべてなくなった時点で停止します。
つまり緩やかで誰にも迷惑をかけずに止められるわけですね。
.Net Frameworkの世界でも、ARRやNLBで接続をDrainにすることで同じようなことができます。これは前職で学びました。
Apacheの状態を確認する
Apacheが現在起動中なのか、停止中なのか、またいつ起動されたのかなどを以下のコマンドで確認できます。
$ sudo service apache2 status
$ sudo /etc/init.d/apache2 status
この場合、9:39:57に止められてその後すぐに起動し、なんかメッセージが出た後、9:39:58に起動完了しています。
あれ?AH00558ってエラーコードでなんか出てますねー。
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this ...
このエラーっぽいメッセージは、/etc/apache2/site-available/000-default.confのServerNameを設定してあげるといいみたいです。
よく見たら既にありましたが、コメントアウトされているのでとりあえず解除します。
あと、このままだとホスト名と異なるため/etc/hostsを書き換えます。
$ sudo vi /etc/hosts
127.0.1.1のところに000-default.confで設定したServerNameを記載しちゃいます。
反映できたかどうかは下記のコマンドで確認します。
$ group --fqdn
その後、サイトを無効化し、Apacheをリロードしたのち、再度サイトを有効化します。
$ sudo a2dissite 000-default $ sudo service apache2 reload $ sudo a2ensite 000-default
これでエラーは出なくなりました。
ちなみにポートの設定はデフォルトで80になっているので、http://localhost/でデフォルトのサイトが開けるはず!
見れますね!
もう少し踏み込んだ設定や実際にコンテンツをいじってみたりなどははまた後日にします。
PHPも早く触りたい!