RaspberryPi さん に Apache2 で簡易にWebサーバー化

経緯はさておき、表題の通りです。
自宅のローカル環境に簡易にWebサーバーを構築するにあたり
RaspberryPi 4 でやるのがいいかも?と思い実施します。

今回はとりあえずの簡易作業です。
アクセス権とかセキュリティとかは後回し、構築することに主眼を置いています。
ローカルのテスト用なので、ここら辺はとりあえずザル?でOK(ほんとは逆かもですけどね)

作業メモです。

今回、作業するRaspberryPi のバージョン


No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10

Codename: buster

Linux raspberrypi4 4.19.75-v7l+ #1271 SMP Mon Sep 30 13:51:15 BST 2019 armv7l GNU/Linux



1.毎度作業前の環境更新


$ sudo apt-get update
$ sudo apt-get upgrade

毎回のおまじないといいますか、Windowsで言う所のOSの更新と同じと思っていいので、定期的にやってもいいかもですけど、安定しているのであれば、そのままの環境でもいいかもです。ただ、システム的に何かを新規やアップデートする場合は事前に周辺環境もアップしておいた方がクリーンですね。

2.サクッとインストール


$ sudo apt-get install apache2

ラーパイさんではApache2 ,,,2なのね・・・まぁ別になにかあるわけではないですけど



でインストールまで終了!
あとは動作チェック

3.動作チェック

・バージョン確認
$ apache2 -v

2019/12/18時点の場合
Server version: Apache/2.4.38 (Raspbian)

Server built:   2019-10-15T19:53:42

・動作状態確認
$ sudo systemctl status apache2



同じネットワーク内からラーパイさんのIPアドレスをURLに入れればHello World的なのが表示されていればOK


4.動作環境について整える


とりあえず apache2 のデーモンさんは Restart 、reloadがあるので
設定変更や終わらせる時は普通に操作できる

$ sudo systemctl restart apache2
$ sudo systemctl daemon-reload

で、設定ファイルはデフォは下記にあり

/etc/apache2/sites-available/000-default.conf

上記内の DocumentRoot 以降がWebで公開されるファイルが実装されている部分となる。
/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


なんとなく察しがつくかとおもいますが、
DocumentRoot 以降がデフォルトで読み込まれるWebページが実装されている部分
この部分をそのままor変更して、Webページを送り込めばOK・・・OK・・・OK?

どうやって送るの?
忘れてた・・・・w(汗

ってことで、ここでも簡易にデータを送りつけるぞ!ってのがメインで
とりあえず設定(汗とりあえずが多すぎるw

作業はMacがメインですけど、AFPはMacには優しい?けど、その他のOSには
あまりよろしくない!逆手にとって、Macだけで隠蔽して使用する分にいいかもですけど
ということで、マツケンで実装[マツケン→マツケン・サンバ→Samba]

5.Sambaの導入

サクッとインストール
$ sudo apt-get install samba

実行結果

pi@raspberrypi4:/ $ sudo apt-get install samba
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  rpi.gpio-common
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  attr ibverbs-providers libboost-regex1.67.0 libcephfs2 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libibverbs1 librados2
  python-dnspython python-gpg python-ldb python-samba python-tdb samba-common samba-common-bin samba-dsdb-modules samba-vfs-modules
  tdb-tools
提案パッケージ:
  bind9 bind9utils ctdb ldb-tools ntp | chrony smbldap-tools ufw winbind heimdal-clients
以下のパッケージが新たにインストールされます:
  attr ibverbs-providers libboost-regex1.67.0 libcephfs2 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libibverbs1 librados2
  python-dnspython python-gpg python-ldb python-samba python-tdb samba samba-common samba-common-bin samba-dsdb-modules
  samba-vfs-modules tdb-tools
アップグレード: 0 個、新規インストール: 21 個、削除: 0 個、保留: 14 個。
18.2 MB のアーカイブを取得する必要があります。
この操作後に追加で 62.7 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf python-dnspython all 1.16.0-1 [90.1 kB]
取得:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf python-ldb armhf 2:1.5.1+really1.4.6-3 [33.1 kB]
取得:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf python-tdb armhf 1.3.16-2+b1 [16.0 kB]
取得:4 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf python-samba armhf 2:4.9.5+dfsg-5+deb10u1+rpi1 [1,794 kB]
取得:5 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf samba-common all 2:4.9.5+dfsg-5+deb10u1+rpi1 [170 kB]
取得:6 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf samba-common-bin armhf 2:4.9.5+dfsg-5+deb10u1+rpi1 [570 kB]
取得:7 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf tdb-tools armhf 1.3.16-2+b1 [26.9 kB]
取得:8 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf samba armhf 2:4.9.5+dfsg-5+deb10u1+rpi1 [1,010 kB]
取得:9 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf attr armhf 1:2.4.48-4 [39.4 kB]
取得:10 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libibverbs1 armhf 22.1-1 [43.5 kB]                                                  
取得:11 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf ibverbs-providers armhf 22.1-1 [20.2 kB]                                            
取得:12 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libboost-regex1.67.0 armhf 1.67.0-13 [430 kB]                                       
取得:13 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf librados2 armhf 12.2.11+dfsg1-2.1+rpi1 [2,337 kB]                                   
取得:14 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libcephfs2 armhf 12.2.11+dfsg1-2.1+rpi1 [380 kB]                                    
取得:15 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libglusterfs0 armhf 5.5-3 [2,724 kB]                                                
取得:16 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgfxdr0 armhf 5.5-3 [2,488 kB]                                                    
取得:17 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgfrpc0 armhf 5.5-3 [2,506 kB]                                                    
取得:18 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgfapi0 armhf 5.5-3 [2,524 kB]                                                    
取得:19 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf python-gpg armhf 1.12.0-6 [275 kB]                                                  
取得:20 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf samba-dsdb-modules armhf 2:4.9.5+dfsg-5+deb10u1+rpi1 [345 kB]                       
取得:21 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf samba-vfs-modules armhf 2:4.9.5+dfsg-5+deb10u1+rpi1 [400 kB]                        
18.2 MB を 14秒 で取得しました (1,343 kB/s)                                                                                                                              
パッケージを事前設定しています ...
以前に未選択のパッケージ python-dnspython を選択しています。
(データベースを読み込んでいます ... 現在 156105 個のファイルとディレクトリがインストールされています。)
.../00-python-dnspython_1.16.0-1_all.deb を展開する準備をしています ...
python-dnspython (1.16.0-1) を展開しています...
以前に未選択のパッケージ python-ldb を選択しています。
.../01-python-ldb_2%3a1.5.1+really1.4.6-3_armhf.deb を展開する準備をしています ...
python-ldb (2:1.5.1+really1.4.6-3) を展開しています...
以前に未選択のパッケージ python-tdb を選択しています。
.../02-python-tdb_1.3.16-2+b1_armhf.deb を展開する準備をしています ...
python-tdb (1.3.16-2+b1) を展開しています...
以前に未選択のパッケージ python-samba を選択しています。
.../03-python-samba_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb を展開する準備をしています ...
python-samba (2:4.9.5+dfsg-5+deb10u1+rpi1) を展開しています...
以前に未選択のパッケージ samba-common を選択しています。
.../04-samba-common_2%3a4.9.5+dfsg-5+deb10u1+rpi1_all.deb を展開する準備をしています ...
samba-common (2:4.9.5+dfsg-5+deb10u1+rpi1) を展開しています...
以前に未選択のパッケージ samba-common-bin を選択しています。
.../05-samba-common-bin_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb を展開する準備をしています ...
samba-common-bin (2:4.9.5+dfsg-5+deb10u1+rpi1) を展開しています...
以前に未選択のパッケージ tdb-tools を選択しています。
.../06-tdb-tools_1.3.16-2+b1_armhf.deb を展開する準備をしています ...
tdb-tools (1.3.16-2+b1) を展開しています...
以前に未選択のパッケージ samba を選択しています。
.../07-samba_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb を展開する準備をしています ...
samba (2:4.9.5+dfsg-5+deb10u1+rpi1) を展開しています...
以前に未選択のパッケージ attr を選択しています。
.../08-attr_1%3a2.4.48-4_armhf.deb を展開する準備をしています ...
attr (1:2.4.48-4) を展開しています...
以前に未選択のパッケージ libibverbs1:armhf を選択しています。
.../09-libibverbs1_22.1-1_armhf.deb を展開する準備をしています ...
libibverbs1:armhf (22.1-1) を展開しています...
以前に未選択のパッケージ ibverbs-providers:armhf を選択しています。
.../10-ibverbs-providers_22.1-1_armhf.deb を展開する準備をしています ...
ibverbs-providers:armhf (22.1-1) を展開しています...
以前に未選択のパッケージ libboost-regex1.67.0:armhf を選択しています。
.../11-libboost-regex1.67.0_1.67.0-13_armhf.deb を展開する準備をしています ...
libboost-regex1.67.0:armhf (1.67.0-13) を展開しています...
以前に未選択のパッケージ librados2:armhf を選択しています。
.../12-librados2_12.2.11+dfsg1-2.1+rpi1_armhf.deb を展開する準備をしています ...
librados2:armhf (12.2.11+dfsg1-2.1+rpi1) を展開しています...
以前に未選択のパッケージ libcephfs2:armhf を選択しています。
.../13-libcephfs2_12.2.11+dfsg1-2.1+rpi1_armhf.deb を展開する準備をしています ...
libcephfs2:armhf (12.2.11+dfsg1-2.1+rpi1) を展開しています...
以前に未選択のパッケージ libglusterfs0:armhf を選択しています。
.../14-libglusterfs0_5.5-3_armhf.deb を展開する準備をしています ...
libglusterfs0:armhf (5.5-3) を展開しています...
以前に未選択のパッケージ libgfxdr0:armhf を選択しています。
.../15-libgfxdr0_5.5-3_armhf.deb を展開する準備をしています ...
libgfxdr0:armhf (5.5-3) を展開しています...
以前に未選択のパッケージ libgfrpc0:armhf を選択しています。
.../16-libgfrpc0_5.5-3_armhf.deb を展開する準備をしています ...
libgfrpc0:armhf (5.5-3) を展開しています...
以前に未選択のパッケージ libgfapi0:armhf を選択しています。
.../17-libgfapi0_5.5-3_armhf.deb を展開する準備をしています ...
libgfapi0:armhf (5.5-3) を展開しています...
以前に未選択のパッケージ python-gpg を選択しています。
.../18-python-gpg_1.12.0-6_armhf.deb を展開する準備をしています ...
python-gpg (1.12.0-6) を展開しています...
以前に未選択のパッケージ samba-dsdb-modules:armhf を選択しています。
.../19-samba-dsdb-modules_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb を展開する準備をしています ...
samba-dsdb-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) を展開しています...
以前に未選択のパッケージ samba-vfs-modules:armhf を選択しています。
.../20-samba-vfs-modules_2%3a4.9.5+dfsg-5+deb10u1+rpi1_armhf.deb を展開する準備をしています ...
samba-vfs-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) を展開しています...
libibverbs1:armhf (22.1-1) を設定しています ...
libboost-regex1.67.0:armhf (1.67.0-13) を設定しています ...
ibverbs-providers:armhf (22.1-1) を設定しています ...
attr (1:2.4.48-4) を設定しています ...
samba-vfs-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) を設定しています ...
samba-common (2:4.9.5+dfsg-5+deb10u1+rpi1) を設定しています ...

Creating config file /etc/samba/smb.conf with new version
libglusterfs0:armhf (5.5-3) を設定しています ...
python-ldb (2:1.5.1+really1.4.6-3) を設定しています ...
tdb-tools (1.3.16-2+b1) を設定しています ...
update-alternatives: /usr/bin/tdbbackup (tdbbackup) を提供するために自動モードで /usr/bin/tdbbackup.tdbtools を使います
python-tdb (1.3.16-2+b1) を設定しています ...
samba-dsdb-modules:armhf (2:4.9.5+dfsg-5+deb10u1+rpi1) を設定しています ...
python-dnspython (1.16.0-1) を設定しています ...
python-gpg (1.12.0-6) を設定しています ...
libgfxdr0:armhf (5.5-3) を設定しています ...
librados2:armhf (12.2.11+dfsg1-2.1+rpi1) を設定しています ...
python-samba (2:4.9.5+dfsg-5+deb10u1+rpi1) を設定しています ...
libcephfs2:armhf (12.2.11+dfsg1-2.1+rpi1) を設定しています ...
samba-common-bin (2:4.9.5+dfsg-5+deb10u1+rpi1) を設定しています ...
Checking smb.conf with testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Done
libgfrpc0:armhf (5.5-3) を設定しています ...
samba (2:4.9.5+dfsg-5+deb10u1+rpi1) を設定しています ...
グループ `sambashare' (グループ ID 117) を追加しています...
完了。
Samba is not being run as an AD Domain Controller: Masking samba-ad-dc.service
Please ignore the following error about deb-systemd-helper not finding those services.
(samba-ad-dc.service masked)
Created symlink /etc/systemd/system/multi-user.target.wants/nmbd.service → /lib/systemd/system/nmbd.service.
Failed to preset unit: Unit file /etc/systemd/system/samba-ad-dc.service is masked.
/usr/bin/deb-systemd-helper: error: systemctl preset failed on samba-ad-dc.service: No such file or directory
Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service.
libgfapi0:armhf (5.5-3) を設定しています ...
systemd (241-7~deb10u2+rpi1) のトリガを処理しています ...
man-db (2.8.5-2) のトリガを処理しています ...

libc-bin (2.28-10+rpi1) のトリガを処理しています ...



途中、WINSについて聞かれます。

(どうでもいいけど、青い画面は内容に関係なくドキッとするのは私だけ?)
ここは自分の環境云々ありますけど、NOとしておきます。

つづいて状態確認
$ sudo service smbd status
pi@raspberrypi4:/ $  sudo service smbd status
smbd.service - Samba SMB Daemon
   Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-12-18 00:57:38 JST; 7min ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 11189 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 4915)
   Memory: 11.6M
   CGroup: /system.slice/smbd.service
           ├─11189 /usr/sbin/smbd --foreground --no-process-group
           ├─11191 /usr/sbin/smbd --foreground --no-process-group
           ├─11192 /usr/sbin/smbd --foreground --no-process-group
           └─11194 /usr/sbin/smbd --foreground --no-process-group

12月 18 00:57:37 raspberrypi4 systemd[1]: Starting Samba SMB Daemon...
12月 18 00:57:38 raspberrypi4 systemd[1]: Started Samba SMB Daemon.
12月 18 00:57:38 raspberrypi4 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
12月 18 00:57:39 raspberrypi4 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
12月 18 00:57:39 raspberrypi4 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
12月 18 00:57:40 raspberrypi4 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
12月 18 00:57:41 raspberrypi4 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
12月 18 00:57:42 raspberrypi4 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.

12月 18 00:57:43 raspberrypi4 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.

といったかんじで、インストールは完了と

・設定ファイル
/etc/samba/smb.conf

設定ファイルについては、詳しく書かれているサイトを参照するのがってとり早い
というのもハンドリングが多いので、その分設定項目が多く
簡易解説することはほぼ不可(汗

でここは豪快にwWeb公開場所をそのまま共有w
本来はよくない(汗 ファイル権限などを考えるとFTPや云々でやるべきであるけれどもここではしったことではない!とりあえずの環境です。
ただ、デフォルトの場所やファイルの権限をいじるのはあまり・・・

ということで、1階層追加してそれ以下はとりあえず、ファイル読み書き自由、権限フリーとして、その場所を公開する!といのが妥当かと思います(汗
(直でやるとパーミッションエラーがでるので、sudo mkdirでフォルダ:階層を作成して、権限を777へ変更というかなり強引なやり方です)

nano などで設定ファイルを開いて最終行に下記を追加
[Web]
   comment = RaspberryPi4Web
   path = /var/www/html/XX
   guest ok = yes
   read only = no
   browsable = yes
   force user = pi

かなりえぐい?フリーの公開場所が生成されるってわけですよ・・・
例によってデーモンさんのreload


$ sudo service smbd force-reload

$ sudo service smbd restart

reloadとリスタートセットでやってますけど、reloadだけで本来はいいはずでございますことよ!

で、これでMac&Windowsからファイルをアップロードして
直でWebアプリをごにょごにょできるようになりました。
本当は複数のユーザーやWeb公開を意識した階層、セキュリティなどをやるべきですけど
とりあえずなので、これくらいでいいかと

用途としては、速攻Web環境ですね(汗



ではではメモ程度まででした。
これで何をするのか?は今後のお楽しみにw








マウスコンピューター/G-Tune HP Directplus -HP公式オンラインストア- 468x60_vb Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)

コメント

このブログの人気の投稿

Handbrake CLI で AMDとNVIDIA のGPUエンコードを使用するも・・・・No.01

AMD Radeon ReLive 音が録音できないトラブル

裏2:Amazon Fire TV Stick その使い道は kodi で どうでぃ!