Raspberry Pi の開発用Webサーバの使い勝手を最強にする

ラズパイロゴ

ラズパイ(Raspberry Pi)で開発用のWebサーバ(LAN内専用)を立ち上げたんだけど、もっと使い勝手を良くしようと思って、下記の機能を実装してみたら、思いのほか最強になった。

追加した機能

共有ファイルサーバ化してFTP転送を不要にする

前回(LAMP環境構築)の最後にSFTP転送を確認したが、LAN内環境で毎回FTPソフトを立ち上げて転送するのもバカらしいので、開発用Webサーバのwwwルートフォルダを共有フォルダ化し、エクスプローラ(Windows)/Finder(Mac)上でファイル操作を出来るようにする。

Sambaのインストール

  1. ラズパイにSSH接続し、以下のコマンドを入力して「Samba」をインストールする。
    sudo apt-get install samba

  2. ufwでファイアウォール設定している場合、以下のコマンドを入力してSambaで使用するポートを開放する。

    sudo ufw allow 137/udp
    sudo ufw allow 138/udp
    sudo ufw allow 139/tcp
    sudo ufw allow 445/tcp
    sudo ufw reload
  3. 以下のコマンドを入力して、変更するファイルのディレクトリへ移動する。
    cd /etc/samba

  4. 以下のコマンドを入力して、変更するファイルのバックアップを取得する。
    sudo cp -p smb.conf smb.conf.org

  5. 以下のコマンドを入力して、viエディタを起動する。
    sudo vi smb.conf

  6. 以下の部分を変更、記載がなければ追加する。

    [global]
    workgroup = WORKGROUP
    interfaces = 192.168.1. 127.0.0.0/8 eth0
    bind interfaces only = yes
    hosts allow = 192.168.1.
    max log size = 100
    security = user
    unix charset = UTF-8
    dos charset = CP932
    
    [public]
    comment = Public
    path = /var/www/html/
    public = yes
    read only = no
    browseable = yes
    force user = pi
    
    [homes]
    browseable = no
    
    [pi]
    browseable = no

    共有ユーザーは例として「pi」。
    interfaces、hostsにあるIPアドレスはLAN環境に合わせる。
    [public]以下のpathには、共有フォルダにしたい開発用のwwwルートフォルダにする。

  7. 以下のコマンドを入力して、piユーザーをsambaに登録する。
    sudo smbpasswd -a pi

    ENTERするとパスワードを求められるので、piユーザーのパスワードを入力する。(確認含めて計2回)

  8. 以下のコマンドを入力して、ラズパイを再起動する。
    reboot

動作確認

Windowsの場合:
エクスプローラを開いて、アドレスバーに「\\ラズパイのIPアドレス」を入力する。
ユーザー認証を求められるので、ユーザー「pi」とそのパスワードを入力する。
「public」フォルダが表示されて、読み書き出来れば成功。

もし書き込みが出来なければ、ルートフォルダのパーミッションを変更すること。

Macの場合:
Finderメニューの「移動」→「サーバへ接続」を選択し、「smb://ラズパイのIPアドレス」を入力する。
以降はWindowsと同様。

参考サイト

Raspberry Piでファイルサーバ、Part1 Samba基本編(ものづくりエクスペリメント)
↑Part2~4で外付けHDD対応も詳しく書かれており、外付けHDD対応時にはまた参考にさせてもらいます。

長くなったので、SVNサーバ化は別記事にします。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です