このサイトはMacを使って Raspberry Pi 3 の動作や活用法を学びます。

WebサーバーとPHPのインストール

ラズパイに、Apache と、PHP をインストールして、PHPの動作するWebサーバーを作ります。

Apache、PHP インストール

ラズパイのターミナルソフトを立ち上げ、ラズパイのソフトウエア群をアップデートしたのちに、apt-getでインストール。以下のコマンド入力したらしばらく完了まで待つだけです。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2
sudo apt-get install php7.0

さらに、PHPで利用頻度の高いデータベース関連ソフトをインストールします。今回は、mySQLとd同等の mariaDB を採用しました。

なお、 phpmyadmin インストール時に、Passwordを設定します。ここでは、忘れないよう [admin]としました。

sudo apt-get install mariadb-server
sudo apt-get install phpmyadmin

以下のコマンドで、Apache、PHPのインストールの確認とインストールされたソフトウエアのバージョンを調べます。

pi@raspberrypi:~ $ apache2 -v
Server version: Apache/2.4.38 (Raspbian)
Server built:   2020-08-25T20:08:29
pi@raspberrypi:~ $ php -v
PHP 7.3.27-1~deb10u1 (cli) (built: Feb 13 2021 16:31:40) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.27, Copyright (c) 1998-2018 Zend Technologies
  with Zend OPcache v7.3.27-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

Apacheのドキュメントルート(Webに公開されるフォルダー)は、/var/www/html の予定です。cat コマンドで設定ファイルを開きフォルダー名を確認してみましょう。

pi@raspberrypi:~ $ cat /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# 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 www.example.com

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html         ← ドキュメントルート

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Apach2の動作確認

実際にWebサーバーとして機能しているか、Macのブラウザーから、ラズパイにアクセスして確認します。
Macのブラウザーを立ち上げ、アドレス欄に
raspberrypi.local
と入力します。Apach2の「It works!」と書かれたページが表示されればOKです。

Apach2 it works page
PHPの動作確認

PHPを確認するために、ドキュメントルートに簡単なPHPプログラム (test.php) を作り、Macのブラウザーからアクセスします。

sudo nano /var/www/html/test.php

nano でが起動し、何も書かれていないページが表示されるので、以下の簡単なプログラムを入力します。
入力したら 「Ctl + x」、「y」、ファイル名を確認し、「return」

Apach2 it works page

Macのブラウザーから、ラズパイにアクセスして確認します。アドレス欄に
raspberrypi.local/test.php
と入力します。PHPの情報を表示するページが表示されればOKです。

phpinfo home page

Apach を ON / OFF する

Apache2の起動は、以下のコマンドで行います。

sudo /etc/init.d/apache2 start

Apache2の停止は、以下のコマンドで行います。

sudo /etc/init.d/apache2 stop

Apache2の再起動は、以下のコマンドで行います。

sudo /etc/init.d/apache2 restart
Apache2の自動起動

Apache2 をインストールすると、ラズパイのパワーオンでApach2 が自動で起動するように設定されます。以下のコマンドを実行し、ディレクトリに apache2 があれば自動起動です。

pi@raspberrypi:~ $ ls /etc/rc2.d
K01apache-htcacheclean  S01cups            S01mysql         S01rsyslog
S01apache2              S01cups-browsed    S01paxctld       S01saned
S01avahi-daemon         S01dbus            S01plymouth      S01ssh
S01bluetooth            S01dhcpcd          S01raspi-config  S01sudo
S01console-setup.sh     S01dphys-swapfile  S01rng-tools     S01triggerhappy
S01cron                 S01lightdm         S01rsync
	

もし、Aapache2の自動起動を停止したいなら以下のコマンドで停止することができます。

sudo update-rc.d -f apache2 remove
ルートディレクトリの書込み権限

Webサーバーとして使用される「ルートディレクトリ」/var/www/html/ へは、SFTP などでも自由にファイルと転送できるようディレクトリへの書込み権限を変更します。Webサーバーをインターネットに公表する場合は、セキリティー上行ってはならない行為ですが、自宅内だけで使用するので無制限の権限を全てのユーザーに与えています。

sudo chmod 777 /var/www/html

変更が反映されているか確認します。

ls -l /var/www