Raspberry Piメモ

BOOT用SDカード準備

参考URL:
http://gold.ap.teacup.com/maz01/319.html

  • Windowsマシンで「Raspbian wheezy(2012-12-16-wheezy-raspbian.zip)」をダウンロードし、.imgファイルを取り出す
    http://www.raspberrypi.org/downloads
  • Windowsマシンで「Win32DiskImager?(Version 0.6 binaries)」をダウンロードする
    https://launchpad.net/win32-image-writer/+download
  • Win32DiskImager?を起動、最初にエラーが出るが気にせずスキップ
    ソース=imgファイル、出力先=SDカード を指定して書き込む。
    書き込み時間およそ2分
  • SDカードをRaspberry Pi本体に挿し、本体起動。
    HDMIディスプレイの電源を先にONしておかないと、ディスプレイ認識されないようだ。

初期設定

  • 1分待つと青い画面になるので以下設定
    [expand_rootfs]
    [Configure keyboard]>[Generic 105-key(Intl) PC]>[Other]>[Japanese]>[Japanese]>[The default for the keyboard layout]>[No compose key]>[No]
    [change_pass]
    [change_timezone]>[Asia][Tokyo]
    [ssh]>[enabled]
    [update]
    [Finish]>コンソールでsudo reboot
  • パーティション再構成のため16GB class10のSDカードで10分程かかる
  • コンソールでログイン。ユーザーはpi

日本語化

これによってコンソールが文字化けするが、日本語対応のSSHクライアントで接続するので問題ない

  • sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
  • sudo dpkg-reconfigure locales
    [en_GB.UTF-8 UTF-8][ja_JP.EUC-JP EUC-JP][ja_JP.UTF-8 UTF-8]にチェック>[ja_GB.UTF-8]
  • sudo apt-get install ibus-anthy
    (10分程かかる)
  • sudo reboot
  • startx
  • [左下メニュー]>[設定]>[iBusの設定]>[はい]>[OK]>[インプットメソッド]>[日本語>Anthy>追加]>[閉じる]
  • [左下メニュー]>[ログアウト]

chkconfigのインストール

  • sudo apt-get install chkconfig
    • 参考:起動しているサービスのリスト表示方法
      service --status-all
    • 参考:特定のサービスが起動しているか確認する方法
      service (サービス名) stauts

SSH接続

  • sshdが常駐しているか確認 chkconfig --list
  • IPアドレス確認
    ifconifg
  • SSHで接続テスト
    Macならターミナルから ssh pi@(IPアドレス)

vimのインストール

参考URL:
http://www.limemo.net/blog/2012/12/raspberry-pi-vi.html
http://nkm-net.jp/?p=405

  • sudo apt-get install vim

コマンドのalias

  • vim /home/pi/.bashrc
    以下追加もしくはコメントアウトを外す
    alias ll='ls -l'
    alias la='ls -A'
    alias vi='vim'

固定IP化

  • sudo vi /etc/network/interfaces
    • 以下を#でコメントアウト
      iface eth0 inet dhcp
    • 代わりに以下を記述
      iface eth0 inet static
      address <割り当てるIPアドレス>
      netmask <サブネットマスク>
      gateway <デフォルトルータのIPアドレス>
  • sudo vi /etc/resolv.conf
    • 以下の部分を必要なら変更
      nameserver <DNSサーバのIPアドレス>
  • sudo reboot

DDNS

参考URL:
http://qapla.blog52.fc2.com/blog-entry-302.html

  • DynDNSでdomain取得
    https://account.dyn.com/dns/dyndns/
  • sudo apt-get install ddclient
    インストール中に色々設定する。迷ったら「Yes」で良い。設定をやり直すときはsudo dpkg-reconfigure ddclient
  • sudo vi /etc/ddclient.conf で以下の2行を追加
    daemon=300
    ssl=no
  • sudo vi /etc/default/ddclient
    run_daemon="true" に変更
    max_interval=10d を末尾に追加。30日更新がないとストップするので、29dでも良い。
  • sudo ddclient -daemon=0 -verbose -noquiet
    SUCCESSと出ない場合は設定が間違っている
  • sudo service ddclient start
  • ルータの設定をした後、外部からのsshログインを試す

内向きDNS

参考URL:
http://ryus.co.jp/modules/d3blog/details.php?bid=227

  • sudo apt-get install unbound
  • sudo vi /etc/unbound/unbound.conf
    • 以下を参考にして元ファイルを編集
      ## base section
      server:
          interface: 0.0.0.0
          do-ip4: yes
          do-ip6: no
          access-control: 192.168.1.0/24 allow
          version: "0.0"
      
      ## local-data section
      # example.com
          local-data: "example.com A 192.168.1.240"
          local-data-ptr: "192.168.1.240 example.com"
  • sudo vi /etc/resolv.conf
    最初の行にnameserver 127.0.0.1を記述
  • sudo service unbound start
  • 他のPCのネットワーク設定で「DNSサーバ」の項目をRaspberry PiのIPアドレスにする。DNSが正常動作しているかSSH接続で試す

Apache+PHP

  • sudo apt-get update
  • sudo apt-get install apache2
  • sudo apt-get install php5
  • sudo chown pi /var/www
  • phpinfo.phpの作成と表示テスト
  • mod_rewriteを有効にする
    • sudo a2enmod rewrite
  • sudo service apache2 restart
  • 必要に応じて、intlとcurlをインストール
    • sudo apt-get install php5-intl php5-curl

Dropboxへの自動バックアップ

参考URL:
http://hiroki.jp/2011/01/24/1551/
http://blog.sasapurin.com/archives/2013/01/raspberry_pidro.html
http://blog.rederio.jp/archives/653

  • dropbox_uploader.shを/home/piに置く
  • https://www2.dropbox.com/developers/appsにアクセスし、App Folderタイプのアプリを作成する。
    • App Folderタイプだと、DropboxディレクトリにAppと同一名のディレクトリが作成され、そこがアップロードルートとなる。Full DropboxタイプだとDropboxのルートがアップロードルートとなる。どちらのタイプでも良い。
    • API KeyとApp Secretが表示される。
  • sudo /home/pi/dropbox_uploader.sh
    • 初回のAPI Key設定を済ませる
    • API Keyのクリアは ~/dropbox_uploader.sh unlink で可能
  • /home/pi/daily_backup.shを作成、以下の内容にする。
    • daily_backup.sh
      dropbox_uploader.shはディレクトリ指定でアップロードできないため、個々のファイルをアップロードするスクリプトとなっている。
  • sudo crontab -e で5:30に毎日実行するように以下設定
    30 5 * * * /home/pi/daily_backup.sh

tiarraのインストール

参考URL:
http://assimane.blog.so-net.ne.jp/2012-11-25
http://d.hatena.ne.jp/tksthdnr/20090314/1237051567

  • wget http://www.clovery.jp/tiarra/archive/2010/02/tiarra-20100212.tar.gz
  • tar xzvf tiarra-20100212.tar.gz
  • sudo cp -r tiarra-20100212 /usr/local/tiarra
  • sudo cp /usr/local/tiarra/sample.conf /usr/local/tiarra/tiarra.conf
  • sudo /usr/local/tiarra/tiarra --make-password
  • sudo vi /usr/local/tiarra/tiarra.conf
  • sudo mv /usr/local/tiarra/tiarra.conf /etc/tiarra.conf
  • sudo mkdir /var/log/tiarra
  • sudo /usr/local/tiarra/tiarra --config="/etc/tiarra.conf" で動作確認
  • sudo vi /etc/init.d/tiarrad
  • sudo chmod 755 /etc/init.d/tiarrad
  • chkconfig --add tiarrad

SDカードの手動バックアップ

参考URL:
http://mmbrothers.exblog.jp/16816215/

  • Windowsマシンで「Win32DiskImager?」を使用する
  • ImageFile?にバックアップ先のファイル名を記述し、Readボタンをクリックするとバックアップが始まる
  • 16GB class10のSDカードで15分程

サーバー監視ツールmuninのインストール

参考URL:
http://www.submit.ne.jp/821
http://engineersideline.com/debian-gnu-linuxでlinuxサーバー構築/debianの運用管理設定/muninのインストール/

  • sudo apt-get install munin
    • munin-node は munin と一緒にインストールされた
  • mkdir /var/www/munin
  • sudo vi /etc/rsyslog.conf
    #cron.*                /var/log/cron.log
    のコメントアウトをはずして
    cron.*                /var/log/cron.log
    に変更
    
    *.*;auth,authpriv.none                -/var/log/syslog
    を
    *.*;auth,authpriv.none,cron.none                -/var/log/syslog
    に変更
  • sudo vi /etc/munin/apache.conf
    • apacheでlocalhostからしか見られないので設定変更
      Allow from localhost 127.0.0.0/8 ::1
      を以下に変更(外部から見えてしまうので注意)
      Allow from all
  • chkconfig --list | grep munin
    • 起動設定を確認
  • sudo reboot
    • 再起動してみる
  • http://[server address]/munin/ にアクセスして起動確認
  • sudo ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping_google.co.jp
  • sudo rm /etc/munin/plugins/irqstats
    • /var/log/munin/munin-node.logにエラーが出ているので、IRQプラグインを除外する
  • sudo service munin-node restart

muninにping死活監視プラグインを入れる

標準のプラグインping_は、pingが通らないときに記録がストップしてしまうので別のものを入れることにした
参考URL:
http://infobsession.net/wiki/index.php?Python%2F%C0%BD%C2%A4%CA%AA%2Fpings_-munin_plugin
http://d.hatena.ne.jp/rti7743/20110604/1307219520
http://d.hatena.ne.jp/over80/20080703/1215100867

  • cd /usr/share/munin/plugins/
  • sudo wget http://infobsession.net/static/misc/pings_-munin-plugin/00_current/pings_
  • sudo chmod +x pings_
  • cd /etc/munin/plugins
  • sudo ln -s /usr/share/munin/plugins/pings_ pings_server
  • sudo ln -s /usr/share/munin/plugins/pings_ pings_server_loss
  • sudo vi /etc/munin/plugin-conf.d/munin-node
    末尾に以下追加
    [pings_*]
    timeout 20
    env.cmd LANG=C LC_ALL=C /bin/ping -s 960 -c 10 -i 1 -l 3 -W 0.7 -w 10 %s
    
    [pings_server]
    env.hosts google.co.jp
    
    [pings_server_loss]
    env.type loss
    env.hosts google.co.jp
  • sudo service munin-node restart

MySQLとPHPMyAdmin?のインストール

  • sudo apt-get install mysql-server
  • sudo apt-get install phpmyadmin
  • sudo vim /etc/apache2/apache2.conf
    末尾に以下追加
    Include /etc/phpmyadmin/apache.conf
  • sudo /etc/init.d/apache2 reload

警告メッセージを消す

以下のような警告メッセージが気になるので/etc/hostsの編集することにした

こんな警告が出ていた
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName

参考URL:
http://d.hatena.ne.jp/hykt/20081129/1227968494

  • sudo vim /etc/hosts
    以下変更
    127.0.1.1 [domainname] raspberrypi
  • sudo /etc/init.d/apache2 reload
  • phpmyadminへの接続テスト。http://[server address]/phpmyadmin/にアクセスしてみる

node.jsのインストール

npm(Node Package Manager)はnode関連ライブラリの管理ツール
nvm(Node Version Manager)はnode本体のバージョン管理ツール
参考URL:
http://qiita.com/items/3f1810bf7e721cf9dfd2
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
http://d.hatena.ne.jp/tilfin/20110923/1317009573
http://tmlife.net/programming/javascript/nvm-nodejs-install.html
http://mollifier.hatenablog.com/entry/20110221/p1

  • sudo apt-get update
  • apt-cache show nodejs
    Version: 0.6.19~dfsg1-6
    現在の最新安定versionは0.10.4。apt-getでnodejsやnpmを入れるのが楽なのだが、
    古いバージョンなのでnvmからインストールするのが定番らしい
    そのためにgitも必要らしい
  • sudo apt-get install git-core
  • git clone https://github.com/creationix/nvm.git ~/.nvm
  • source ~/.nvm/nvm.sh
  • nvm install v0.10.4
    • nvm helpで使用方法がわかる
    • 5時間程かかるので、PCがスリープになってsshが切断されることのないようにしておく。
  • node -v
    v0.10.4
  • npm -v
    1.2.18
  • nvm alias default 0.10.4
  • vim ~/.bashrc
    末尾に以下追加
    source ~/.nvm/nvm.sh
    • 一度ログアウト&ログインして、node -vやnpm -vが通るか確認
  • sudo mkdir node
  • sudo chown pi /var/node
  • cd /var/node
  • vim helloworld.js
    //新規ファイルの内容は以下のようにする
    var http = require('http');
    http.createServer(function(req, res) {
      res.writeHead(200, {'Content-Type':'text/plain'});
      res.end('Hello World!\n');
    }).listen(8080);
  • node helloworld.js
    • http://[server address]:8080にアクセスし、Hello Worldが表示されることを確認する
    • Ctrl+Cで終了

expressのインストール

expressはnodeスクリプトの雛形作成ツール
参考URL:
http://meso.hatenablog.com/entry/20120226/1330225959

  • npm install -g express
    • 30-60分程かかる
    • テンプレートエンジンとしてjadeかejsの2択で選ぶ。ejsが定番らしいのでejsにする
  • express --versionで起動確認
    3.2.0
  • cd /var/node
  • express express_sample
  • cd express_sample && npm install
  • node app.js
    • http://[server address]:3000にアクセスし、Welcome to Expressが表示されることを確認する
    • Ctrl+Cで終了

websocket.io、socket.ioのインストール

  • npm install -g websocket.io
  • echo $NODE_PATHで何も設定されていなかったので
  • vim ~/.nvm/nvm.sh 後半部分
    export NVM_PATH="$NVM_DIR/$VERSION/lib/node"
    export NVM_BIN="$NVM_DIR/$VERSION/bin"
    となっているところを以下のようにNODE_PATHを1行追加
    export NVM_PATH="$NVM_DIR/$VERSION/lib/node"
    export NVM_BIN="$NVM_DIR/$VERSION/bin"
    export NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules"
    • 一度ログアウト&ログインして、echo $NODE_PATHを確認
  • npm install -g socket.io

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-24 (日) 19:47:54 (1788d)