管理部門で奮闘中の元ソフトウェアエンジニアによる日々雑感

だいぶ放置・・・

だいぶ放置してました。
RaspberryPi用のSDカードが壊れて依頼、本体は引き出しに眠ったままです。
面白い活用方法はないか考え中なんですがイマイチ思いつかない・・・
皆さんどんな風に使われてるんでしょう?

まあでも、これは好奇心で色々弄れる健全な大人のおもちゃですね。
思いついたときにまた電源入れることにしよう!

【Raspberry Pi】 webサーバー準備中

Raspberry Piにwebサーバーを一応構築したものの、
前に使ってた自作blogを少し変更中のため公開遅れてます。
エディタ部分にはCKEditorを使おうか考えてますが、
iPhoneから使いやすくするために、はてな記法のような独自の記述方法を考えて実装してみようかとも考え中。

【Raspberry Pi】 VNCで接続

sshで接続して操作で十分なんですが、せっかくなのでVNCで接続できるよう設定します。

軽いと言われているTightVNCをインストール。

$ sudo apt-get install tightvncserver

SDカードが遅いせいか多少時間がかかりましたがインストール完了。
ディスプレイ番号0、解像度1024x768、24bitカラーにて起動。

$ vncserver :0 -geometry 1024x768 -depth 24

初回はパスワードを設定するよう聞かれるので入力。
なぜか8文字までしか認識しなく、長い場合は切り捨てられるようなので注意。
次にViewモードのパスワードを設定するか聞かれますがNを選択。
(表示のみって何に使うんでしょうか・・?)
珍しくログを取ったので貼っておきます。

You will require a password to access your desktops.

Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? n
xauth:  file /home/pi/.Xauthority does not exist

New 'X' desktop is raspberrypi:0

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:0.log

WindowsからVNCクライアントを使って接続。今回は有名なRealVNCを使ってみます。
サーバに「RaspberryPiのIP:5900(+ディスプレイ番号)」で接続。
RaspberryPiのIPが192.168.1.20でディスプレイ番号が0なら「192.168.1.20:5900」を指定。
f:id:zeder:20130223230105p:plain

VNCサーバーを終了するには -killオプションにディスプレイ番号を指定する。

$ vncserver -kill :0

【Raspberry Pi】 Nginx・PHPインストール

webサーバーといえばApacheが有名ですが、
軽い・速い・メモリ消費量が少ない・使いやすい「Nginx」をインストールします。
下記に簡潔にに手順を記載。

$ sudo apt-get install nginx

ついでにPHPもインストールしておきます。(MySQLモジュールも一緒に)

$ sudo apt-get install php5 php5-fpm php5-cgi php5-cli php5-common php5-mysql

piユーザーディレクトリに www/logs と www/html を作成。

$ cd   ※piユーザーホームへ移動
$ mkdir -p www/{logs,html}


[Nginxの設定]
/home/pi/www/ 配下に対する設定

$ sudo vi /etc/nginx/sites-available/pi
server {
     listen 80;
     server_name localhost;

     access_log /home/pi/www/logs/access.log;
     error_log /home/pi/www/logs/error.log;

     location / {
          root /home/pi/www/html;
          index index.html index.php;
     }

     location ~ \.php$ {
          #fastcgi_pass 127.0.0.1:9000;
          fastcgi_pass unix:/var/run/php5-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME /home/pi/www/html$fastcgi_script_name;
     }

     location ~ /\.ht {
          deny all;
     }
}

サイトを有効にするため、上記ファイルを /etc/nginx/sites-enabled/ へシンボリックリンクを張る。

$ sudo ln -s /etc/nginx/sites-available/pi /etc/nginx/sites-enabled/

Nginxの設定ファイルに問題が無いかチェック。

$ sudo nginx -t

問題がなければ設定再読み込み。

$ sudo nginx -s reload

PHPが動作するかphpinfo()で検証。
/home/pi/www/html/配下に下記のPHPコードでindex.phpを作成。

<?php phpinfo(); ?>

ブラウザでRaspberryPiのIPアドレスにアクセスし、
Nginx, PHPが動作していることを確認する。

【Raspberry Pi】 sambaインストール

テキスト編集やファイル転送もsshとviで事足りるのですが、
やはりWindowsネットワークを使ったほうが楽なのでsambaをインストール。

$ sudo apt-get install samba samba-common-bin

設定ファイルを編集。

$ sudo vi /etc/samba/smb.conf

下記内容を追加。(ここではpiユーザーのhomeを公開する)

[share]
comment = pi share
writable = yes
path = /home/pi
force user = pi

sambaユーザーを追加。
pdbeditがありますがsmbpasswdのほうが簡単なのでこちらを使います。
パスワードはOSユーザーに合わせたほうがいいと思います。

$ sudo smbpasswd -a pi

samba再起動。

$ sudo service samba restart

WindowsエクスプローラからIPアドレスにアクセスし、共有フォルダが見えればOK。