- 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パスワードを設定
MySQLのrootパスワードを入力する。確認の再入力画面が表示されたら、再度同じパスワードを入力する。
phpMyAdminで使用するWebサーバーを設定
apache2を選択する。
phpMyAdminの設定方法を選択する
phpMyAdminの環境設定について聞かれるので、ここではYesを選択した。
熟練者は手動で設定してもいいけど、dbconfig-commonのコマンドで設定することをすすめるよ。dbconfig-commonコマンドで設定を行うかい?(超意訳)
phpMyAdminのrootパスワードを入力する。確認の再入力画面が表示されたら、再度同じパスワードを入力する。
phpmyadminという一般ユーザーが作成されるので、そのパスワードを入力する。確認の再入力画面が表示されたら、再度同じパスワードを入力する。
Apacheの動作確認
http://192.168.0.200/に接続してApacheの初期画面が表示されるか確認する。
phpMyAdminの動作確認
http://192.168.0.200/phpmyadmin/に接続してphpMyAdminが表示されるか確認する。
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
ServerSignature On(デフォルトの設定)
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>
デフォルトの設定
変更後の設定
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)