
技術スタック
機器
・Raspberry Pi Zero 2 W(RAM 512MB)
OS
・Raspberry Pi OS Lite (32-bit)
ストレージ
・microSD 32GB
Webサーバーソフトウェア
・Apache
その他
・PHP
・MariaDB
ラズパイOSの導入
Rasberry Pi ImagerでRaspberry Pi OS Lite (32-bit)を選択。
設定項目
Capital city:Tokyo
Time zone:Asia/Tokyo
キーボードレイアウト:jp
ユーザー名:好きな名前(小文字英数字・アンダースコア・ハイフンのみ使用可)
パスワード:SSHログイン時に使うパスワード
SSID:自宅Wi-Fiのネットワーク名
パスワード:そのWi-Fiの接続パスワード
SSH接続を有効化するかどうか:ON
Raspberry Pi Connect:今回はOFF(ポート開放不要でブラウザから遠隔操作できる機能)
サーバー構築
1.PCからSSH接続する
ラズパイと同じネットワークに接続し、コマンドプロンプトで以下を実行。
ssh username@<IPアドレス>
※初回接続時は「fingerprint」の確認が出るので yes と入力→設定したパスワードを入力すればログインできる。
2.システムを最新化する
5~20分程度待つ。
sudo apt update && sudo apt full-upgrade -y
再起動。
sudo reboot
再起動後、再度SSH接続。
3.IPアドレスの再確認(念のため)
再起動でIPが変わっていないか確認。
hostname -I
Webサーバーソフトのインストール
1.好きなサーバーソフトを選ぶ
Apache+PHP
sudo apt install apache2 php libapache2-mod-php -y
インストール後、自動でサービスが起動
nginx
sudo apt install nginx -y
インストール後、自動でサービスが起動
sudo systemctl status nginx
2.動作確認
同じWi-Fi内の別のPC・スマホのブラウザから以下にアクセス
http://<IPアドレス>
3.MariaDB(データベース)のインストール
sudo apt install mariadb-server php-mysql -y
インストール後、セキュリティ設定を実行。
sudo mariadb-secure-installation
聞かれる内容は以下。
Switch to unix_socket authentication [Y/n]→ n
Change the root password? [Y/n]→ Y →新しいrootパスワードを入力
Remove anonymous users? [Y/n]→ Y
Disallow root login remotely? [Y/n]→ Y
Remove test database and access to it? [Y/n]→ Y
Reload privilege tables now? [Y/n]→ Y
4.Apache再起動
PHPとMariaDBを連携させたので念のため再起動。
sudo systemctl restart apache2
テスト用DBの作成
1.MariaDBにログイン
先ほど設定したrootパスワードでログインする。
※パスワードを入力(画面には表示されない)
sudo mariadb -u root -p
2.テスト用データベースとユーザーを作成
ログイン後、以下をMariaDBのプロンプト(MariaDB [(none)]>)で実行。
PHPアプリからは通常rootではなく専用ユーザーを使うので、それも一緒に作る。
↓SQL
CREATE DATABASE testdb;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'ここにパスワード';
GRANT ALL PRIVILEGES ON testdb.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
3.確認と終了
SHOW DATABASES;
EXIT;
接続テストファイルの作成
1.PHP用の接続テストファイルを作成
以下のファイルを作成。
sudo nano /var/www/html/db_test.php
以下を貼り付け。
<?php
$host = "localhost";
$user = "webuser";
$password = "パスワード"; // 先ほど設定したパスワード
$dbname = "testdb";
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_error) {
die("接続失敗: " . $conn->connect_error);
}
echo "MariaDBへの接続に成功しました!";
$conn->close();
?>
保存:「Ctrl」+「O」→「Enter」→「Ctrl」+「X」
2.ブラウザで確認
http://<IPアドレス>/db_test.php
「MariaDBへの接続に成功しました!」と表示されればOK。
確認できたら、このファイルも削除。

まとめ
さて、ApacheもMariaDBも正常に動きました。
サーバー構築自体は簡単にできましたが、これを使って何をするかはまた、記事を書いていこうと思います。


コメント