○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つのファイルじゃなくて、
いろんなファイルに散らばっているみたい。
ので、設定項目ごとに編集するファイルを探しながらやる。
設定する項目:
- ServerRoot
- Listen
- User/Group
- ServerAdmin
- ServerName
- DocumentRoot
- 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