- Raspberry Pi 3のIPアドレスは192.168.0.200とする。
- Apacheのドキュメントルートはデフォルトのまま/var/www/htmlとする。
インストール
Apache, MySQL, PHP, phpMyAdminを一気に。インストール中に、いくつか設定画面が出るので以下のように設定する。
$ sudo apt-get install apache2 php5 mysql-server phpmyadmin
RASPBIAN STRETCH LITE(August 2017)の場合
インストールされたバージョンは以下の通り。
- Apache 2.4.25
- MYSQL 15.1 Distrib 10.1.23-MariaDB
- PHP 7.0.19-1
$ sudo apt-get install apache2 php mysql-server phpmyadmin
MySQLのrootパスワードを設定
![rpi3_lamp_setup1](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup1-300x202.png)
MySQLのrootパスワードを入力する。確認の再入力画面が表示されたら、再度同じパスワードを入力する。
phpMyAdminで使用するWebサーバーを設定
![rpi3_lamp_setup3](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup3-300x202.png)
apache2を選択する。
phpMyAdminの設定方法を選択する
phpMyAdminの環境設定について聞かれるので、ここではYesを選択した。
![rpi3_lamp_setup4](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup4-300x202.png)
熟練者は手動で設定してもいいけど、dbconfig-commonのコマンドで設定することをすすめるよ。dbconfig-commonコマンドで設定を行うかい?(超意訳)
![rpi3_lamp_setup5](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup5-300x202.png)
phpMyAdminのrootパスワードを入力する。確認の再入力画面が表示されたら、再度同じパスワードを入力する。
![rpi3_lamp_setup7](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup7-300x202.png)
phpmyadminという一般ユーザーが作成されるので、そのパスワードを入力する。確認の再入力画面が表示されたら、再度同じパスワードを入力する。
Apacheの動作確認
http://192.168.0.200/に接続してApacheの初期画面が表示されるか確認する。
![rpi3_lamp_setup9](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup9-237x300.png)
phpMyAdminの動作確認
http://192.168.0.200/phpmyadmin/に接続してphpMyAdminが表示されるか確認する。
![rpi3_lamp_setup10](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup10-300x284.png)
PHPの動作確認
PHP動作確認用のファイルを作成する。
$ sudo nano /var/www/html/phpinfo.php<?php phpinfo(); ?>
http://192.168.0.200/phpinfo.phpに接続してPHPのバージョン情報画面が表示されるか確認する。
Apacheの設定
テスト用のサーバーならこれでもいいけど、外部に公開するサーバーにするなら、セキュリティ対策として以下の設定を行っておく。
レスポンスヘッダーの設定
デフォルトではサーバーの情報がレスポンスヘッダーに送られるので抑制する。
$ sudo nano /etc/apache2/conf-available/security.confServerTokens Prod
設定 | レスポンスヘッダーの内容 | 説明 |
---|---|---|
ServerTokens OS | Apache/2.4.10 (Raspbian) | デフォルトの設定 |
ServerTokens Prod | Apache | 変更後の設定 |
ドキュメントフッターの設定
デフォルトでは404エラーの時などに、サーバーの情報がフッターに付加されるので抑制しておく。
$ sudo nano /etc/apache2/conf-available/security.confServerSignature Off
![rpi3_lamp_setup11](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup11-300x90.png)
ServerSignature On(デフォルトの設定)
![rpi3_lamp_setup12](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup12-300x86.png)
ServerSignature Off(変更後の設定)
ディレクトリリスティングの設定
デフォルトではファイルの一覧が表示されるので、無効にしておく。Options Indexes FollowSymLinksの行をコメントにする。
・(2016-12-06追記)AllowOverride Noneのままだと.htaccessが効かないので使用するならAllowOverride Allにしておく。
$ sudo nano /etc/apache2/apache2.conf<Directory /var/www/>
# Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
![rpi3_lamp_setup13](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup13-300x150.png)
デフォルトの設定
![rpi3_lamp_setup14](http://itemy.net/blog/wp-content/uploads/2016/11/rpi3_lamp_setup14-300x84.png)
変更後の設定
ServerNameの設定
複数のサイトを管理しない場合は設定しなくても動作はするけど、後々必要な場合が出てくるかもしれないので設定しておく。
$ sudo nano /etc/apache2/sites-available/000-default.conf<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port t$
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName example.com
$ sudo nano /etc/apache2/apache2.conf# 一番先頭でいいので以下の行を追記する
ServerName example.com
phpMyAdminの設定
Apache同様にphpMyAdminのセキュリティ対策として、phpMyAdminにアクセスするエイリアスを変更しておく。例えば以下のように設定すると、phpMyAdminにアクセスする場合はhttp://192.168.0.200/pmadmin/となる。ちなみに、このエイリアス設定にあるようにDebian系ではphpMyAdminの本体は/usr/share/phpmyadminにインストールされる。
$ sudo nano /etc/phpmyadmin/apache.confAlias /phpmyadmin /usr/share/phpmyadmin
↓ 変更する
Alias /pmadmin /usr/share/phpmyadmin
phpMyAdminを使用するのはローカルエリア内だけに限定する場合は以下の記載を追加する。localhostと192.168.0.xからの接続に限定する例。
$ sudo nano /etc/phpmyadmin/apache.conf<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
# ここに追加する
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from 192.168.0
# ここまで
<IfModule mod_php5.c>
<IfModule mod_mime.c>
- この記事で書かれている製品やソフトについて
- Raspberry Pi 3 Model B
- RASPBIAN JESSIE LITE(September 2016)
- Apache 2.4.10 (Raspbian)