Apache2のDocumentRootを変更したい!RaspberryPiで。
ときたまいじる程度のApache設定。そのため毎回なにがなんだかわからなくなってしまいます。今度こそ覚えておくために、やったこと備忘録。
使ったバージョン
Raspbian GNU/Linux 8
Apache/2.4.10 (Raspbian)
手順
1. Apacheのインストール
2. DocumentRoot用のディレクトリ作成
3. Apacheの設定変更
4. Apacheの再起動
1. Apacheのインストール
apt-getを使ってインストールしました。
apt-getを使う前に、パッケージのリストをサーバーから入手し、その上で目的のものをインストールします。
sudo apt-get update
sudo apt-get install apache2
Apacheの起動はこうします。
sudo /etc/init.d/apache2 start
この状態で、http://192.168.XXX.XXX (このラズパイのIPアドレス)にブラウザでアクセスすると、Apacheの画面が表示されていることが確認できます。
なお、デフォルトでラズパイ起動時にApacheも起動するように設定されているようで、
/etc/rc2.d/以下にS02apache2というのが入っているのが確認できます。
2. DocumentRoot用のディレクトリ作成
今回はpiのホームディレクトリ以下の/home/pi/wwwをDocumentRootを設定してみることにします。
httpdを動かすユーザーが、このディレクトリに触れる必要があります。ということで、httpdを動かしているユーザーが誰なのか、次にようにして確認してみます。
するとpiというのが出ますので、ラズパイの場合はpiユーザーが動かしていることがわかります。ということで、デフォルトのpiでそのままディレクトリを作ることにします。
mkdir /home/pi/www
この後設定できていることが確認できるように、適当にindex.htmlというファイルを作って入れておくことにします。
3. Apache2の設定
変更する設定ファイル
Apache2にはいくつもの設定ファイルがあります。
今回はDocumentRootの場所を変更するだけなので、/etc/apache2/sites-available以下の「〜.conf」という拡張子のファイルをいじります。
デフォルトでは「000-default.conf」と「default-ssl.conf」という2つファイルが置かれていますが、「000-default.conf」をコピーして「default.config」というのを作って、そっちを変更してみることにします。
ちなみにこの「〜.conf」というファイルですが、新たに追加したりする場合は設置しただけではダメで、明示的に読み込ませるようにしないといけないので注意。
というのも、RaspbianのようなDebian系のApache2では、/etc/apache2/sites-enabled/に入れた設定が有効で、/etc/apache2/sites-available/には利用可能な設定を入れておく場所というルールがあるっぽい。
で、どれを有効にしてどれを無効にするのかは、次のコマンドを使います。
登録 sudo a2ensite
解除 sudo a2dissite
実はこれは、sites-enabledへのシンボリックリンクを作ったり消したりするコマンドなのでした。
sudo a2dissite
と打ってみると、次のようなメッセージが出ます。
Your choices are: 000-default
Which site(s) do you want to disable (wildcards ok)?
これは、現在000-defaultが設定されていることを示しています。これを解除するには、このメッセージに続けて「000-default」と入力します。
設定ファイルの変更
コピーして作ったdefault.configをviなどで開くと、
DocumentRoot /var/www/html
と書かれているのがわかります。ここでパスを指定していました。このディレクトリ以下の権限を示すDirectoryディレクティブは、/etc/apache2/apache2.confの中に記述されています。そのため、/var/www/htmlを/home/pi/wwwに変更しただけでは403エラーが発生してページが表示されません。
なので、DocumentRootの場所とDirectoryディレクティブを、default.configの中に記述します。
DocumentRoot /home/pi/www ←これは変更
↓これは追加
<Directory /home/pi/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
設定ファイルの登録
今更新したdefault.configを登録します。
sudo a2ensite
これを打つと、次のようなメッセージが出ます。
Your choices are: 000-default default-ssl default
Which site(s) do you want to enable (wildcards ok)?
/etc/apache2/sites-available以下に3つのファイルがあり、どれにするかを聞かれているので、defaultと入力して登録します。
4.Apacheの再起動
再起動はこれ。
sudo /etc/init.d/apache2 restart
これで新しいDocumentRoot以下のファイルが見えるようになるかと思います。
最初、Directoryディレクティブのことを忘れてて、DocumentRootだけを変更して「なんで403になるんだー」などと思ってました。「Apache2では/etc/apache2/sites-availableに設定を書くんだ!」とだけ書かれた記事を見つけて自分がハマったので、備忘録。
Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログ (4件) を見る
カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス)
- 作者: 金丸隆志
- 出版社/メーカー: 講談社
- 発売日: 2016/07/22
- メディア: Kindle版
- この商品を含むブログを見る