[Debian]Apacheのインストール

○2017/06/08

本を元に、

# apt-get install apache2

CentOS とは違って、”httpd”ではない。
# apt-get install httpd とした時のエラーログ:”apache_install_error.log”

インストール先は、 /etc/apache2

apache2.conf の編集

の前に、試しにそのまま起動してみる。

# apache2

→エラーめっちゃ出てきた
(このときのエラーログは、”apache_exec_error.log”)

○2017/06/11

起動のときは”start”が必要らしい。

# service apache2 start
 or
# apachectrl start

参考サイト:
Apacheをインストールする

じゃあ、出てきたエラーは気にしなくてもいいのかな?
エラー内容が後述の”envvars”で定義されている変数が読み込めないっていう内容だったし。

ってか、元々立ちあがってたw

あらためて、apache2.conf の編集

というか、Apache2の場合、apache2.conf 1つのファイルじゃなくて、
いろんなファイルに散らばっているみたい。
ので、設定項目ごとに編集するファイルを探しながらやる。

設定する項目:

  1. ServerRoot
  2. Listen
  3. User/Group
  4. ServerAdmin
  5. ServerName
  6. DocumentRoot
  7. DirectoryIndex

1.ServerRoot
ファイル:apache2.conf

69行目:
ServerRoot "/etc/apache2" (コメントアウトを削除)

2.Listen
ファイル:ports.conf

Listen 80 (デフォルトでそのまま)

3.User/Group
ファイル:apache2.conf

108~110行目
# These need to set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

ってなってるけど、この変数たちは、”envvars”で定義されてるとのこと。

ファイル:envvars

16、17行目
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

こいつらを書き変えて好きな名前にすればいい。

4.ServerAdmin
ファイル:sites-available/000-default.conf

11行目
ServerAdmin  webmaster@localhost

5、6のServerName、DocumentRoot と合わせて、<VirtualHost *:80>の中にあるので、
アクセスポートごとに設定ができるのかな?

5.ServerName
ファイル:sites-available/000-default.conf

9行目
ServerName  www.example.com

6.DocumentRoot
ファイル:sites-available/000-default.conf

12行目
DocumentRoot  /var/www/html

7.DirectoryIndex
ファイル:mods-available/dir.conf

2行目
DirectoryIndex  index.html index.cgi index.pl index.php index.xhtml index.htm

上のそれぞれのファイルは、apache2.conf 内でincludeされている。
(***-enabled ディレクトリ内は、***-available ディレクトリ内のファイルへのリンクとなっている)

139~144行目
# Include module configuration
IncludeOptional  mods-enabled/*.load
IncludeOptional  mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf

215~219行目
# Include  generic snippets of statement
IncludeOptional  conf-enabled/*.conf

# Include  the virtual host configurations
IncludeOptional  sites-enabled/*.conf

envvars は、どこで読み込まれてるんだろうね?
起動のプロセスで勝手に読み込まれるんだろうか?

Windows側からLinuxのDocumentRootにあるindex.htmlを見られる。

それぞれの設定値を変更したときに、何がどう変わるのかを見ておきたい。
特にUser/GroupとServerAdmin

本ではファイアウォールの設定をしているが、
手元でやる分には必要なさそうなので省略。

一応、後でいじってみることにする。
本より:# firewall-cmd –~~~~~ (インストールが必要? or CentOSのコマンド?)
または、参考サイト:
http://qiita.com/osktak/items/778287711f7ee0ccec3b
http://www.mk-mode.com/octopress/2015/05/30/debian-8-firewall-setting/
この辺

○2017/6/12

パスワード認証の設定

# mkdir /etc/apache2/conf.d (ディレクトリが無いので作っておく)
# htpasswd -c /etc/apache2/conf.d/htpasswd webuser

パスワードの入力、再入力

で、htpasswd ファイル内に”webuser”のパスワードがハッシュで保存される。

認証に関するconfファイルを作る
/etc/apache2/conf.d/auth.conf
以下を記述

<Directory "/var/www/html/secret">
  AuthType  Basic
  AuthName  "Private Area"
  AuthUserFile  /etc/apache2/conf.d/htpasswd
  Require  valid-user
</Directory>

ディレクトリ作る

# mkdir /var/www/html/secret

secret ディレクトリに、htmltest.html をコピー

# cp /var/www/html/htmltest.html /var/www/html/secret/

/var/www/html/secret にアクセスするときに、ユーザー名・パスワードが必要になるはず。

apache2.conf 内で、auth.conf をインクルード

~~~ 最後の行に追加 ~~~~~
IncludeOptional  /etc/apache2/conf.d/auth.conf

※IncludeOptional : リンク先のファイルが存在しなくてもエラーが発生しない。
参考サイト:http://qiita.com/100/items/ab31e57fcc66ac661d5c

で、Apache を再起動して、

# apachectrl restart

Window のブラウザから設定したhtmlファイルを開いてみる。
http://[LinuxのIPアドレス]/secret/htmltest.html
-> ユーザー名・パスワードを聞かれて、入力すると作ったページが表示された : OK

auth.conf の内容について
・AuthType:Basic/Digest (認証方式)
・AuthName:認証ウィンドウに表示される文章 <- 表示されないんだけど?
・Require:許可するユーザー(valid-user ならパスワードファイルに書かれた全ユーザー)

参考サイト:https://www.adminweb.jp/apache/allow/index3.html

○2017/6/22

User/Groupのテスト → よくわからん

この辺参考に
http://honana.com/apache/apache_22/user

コメントを残す

メールアドレスが公開されることはありません。