2013年1月27日日曜日

[RaspberryPi]nginx+Gunicorn+web2py

前回はnginx+fastCGIでweb.pyを動かしてみた。
今回はnginx+Gunicornでweb2pyを動かしてみる。

  1. web2pyのインストール
  2. wget http://www.web2py.com/examples/static/web2py_src.zip
    unzip web2py_src.zip
    
  3. Gunicornのインストール
  4. pipでインストールを行う

    sudo pip install gunicorn
    
  5. nginxの設定
  6. sudo /etc/nginx/sites-available/default
    
    server {
      location / {
          proxy_pass http://127.0.0.1:8000;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }
    

    nginxをリロード

    sudo nginx -s reload
    
  7. gunicornの起動
  8. web2pyを解凍したフォルダに移動する web2pyには、WSGIへのインターフェースを提供しているのでそれを利用する

    gunicorn wsgihandler.py:application
    

    http://localhost:8000にアクセスすると下記のように表示される

2013年1月23日水曜日

[RaspberryPi]nginx+FastCGI+web.py

  1. nginxのインストール
  2. apt-getで一発

    sudo apt-get install nginx
    
  3. FastCGIのインストール
  4. spawn-fcgiを利用する。これもapt-getで。

    sudo apt-get install spawn-fcgi
    
  5. web.pyのインストール
  6. easy_installからインストールを行う

    ez_setup.pyをwgetして実行

    easy_installでflupとweb.pyをインストールする

    wget http://peak.telecommunity.com/dist/ez_setup.py
    sudo python ez_setup.py
    sudo easy_install flup
    sudo easy_install web.py
    
  7. nginxの設定変更
  8. nginxのfastcgi_paramを下記に書き換え

    sudo nano /etc/nginx/fastcgi_params
    
            fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param QUERY_STRING $query_string;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;
            fastcgi_param GATEWAY_INTERFACE CGI/1.1;
            fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
            fastcgi_param REMOTE_ADDR $remote_addr;
            fastcgi_param REMOTE_PORT $remote_port;
            fastcgi_param SERVER_ADDR $server_addr;
            fastcgi_param SERVER_PORT $server_port;
            fastcgi_param SERVER_NAME $server_name;
            fastcgi_param SERVER_PROTOCOL $server_protocol;
            fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;
    

    site-availableのlocation /を下記のように書き換え

    sudo nano /etc/nginx/sites-available/default
    
    server {
      location / {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9002;
      }
    }
    

    上記の例ではポート番号を9002に設定

  9. wwwディレクトリの作成
  10. /var/wwwディレクトリを作成して、所有権を変更する

    cd /var/
    
    sudo mkdir www
    
    sudo chown www-data:www-data www/
    
  11. Hello world!を出力するPythonスクリプト作成
  12. nano /var/www/index.py
    
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import web
    
    urls = ("/.*", "hello")
    app = web.application(urls, globals())
    
    class hello:
        def GET(self):
            return 'Hello, world!'
    
    if __name__ == "__main__":
        web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
        app.run()
    

    所有権を変更しておく

    sudo chown www-data:www-data index.py
    
  13. サーバーの起動
  14. spawn-fcgiの起動(ポート番号9002)

    sudo spawn-fcgi -u www-data -f /var/www/index.py -a 127.0.0.1 -p 9002
    

    nginxをリロード

    sudo nginx -s reload
    

    http://localhost/ にアクセスしてHello World!が表示されることを確認する

2013年1月10日木曜日

[RaspberryPi]noVNCセットアップ

noNVCとはVNCをブラウザ(WebSocket+Canvas)で操作するソフトウェアです。

http://kanaka.github.com/noVNC/

RaspberryPi上に構築したのでその方法を記載する

  1. VNCServerのインストール
  2. apt-getで一発

    $ sudo apt-get install tightvncserver
    
  3. VNCServerの起動
  4. 起動し、パスワードを設定

    $ vncserver
    

    Windows等のVNCViewerで繋がることを確認する

    終了

    $ vncserver --kill :1
    
  5. noVNCセットアップ
  6. noVNCのダウンロード

    $ wget http://github.com/kanaka/noVNC/tarball/master
    

    解凍

    $ tar xzvf master
    

    実行

    $ ./utils/launch.sh --vnc localhost:5901
    

    対象のIPアドレスを変えることで別PCのVNCServerを対象にすることも可能

    ブラウザで上記で指定したアドレスを開く

    VNCのパスワードを入力し、【Connect】を押すとX Windowの画面が表示される

2013年1月9日水曜日

[RaspberryPi]日本語化

  1. ロケールの変更
  2. $ sudo raspi-config
    

    [change_locale]を選択し、下記をチェック

    ・en_GB.UTF-8 UTF-8

    ・ja_JP.EUC-JP EUC-JP

    ・ja_JP.UTF-8 UTF-8

    デフォルトのロケールはja_JP.UTF-8 UTF-8にする

  3. 日本語フォントのインストール
  4. sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
    

    インストール完了後再起動

  5. 日本語入力環境構築 - Anthyのインストール
  6. startxでX Windowを起動

    【アクセサリー】→【システムターミナル・スーパーユーザモード】を実行後下記のコマンドを実行

    apt-get install ibus-anthy
    

    インストールされたら【設定】→【iBusの設定】→【インプットメソッド】で、Anthyを追加

    日本語入力ができることを確認する

2013年1月8日火曜日

[RaspberryPi]RaspberryPiセットアップ

Raspberry Piを入手したのでセットアップ方法を記載

公式ページ
  1. Raspbianイメージのダウンロード
  2. ここからRaspbian “wheezy”をダウンロードする

  3. SDカードへイメージを書き込む
  4. Windowsの場合は、Win32ImageWriterを利用する。Linuxの場合はddで。SDカードは4GB以上を推奨。

    筆者は、手元にmicroSDしかなかったので、上海問屋?で買ったSDカードアダプタを使って確認した。

  5. Raspberry Piに差し込んで電源を投入
  6. 設定画面が表示されるのでとりあえず下記の設定をする。終わったら再起動。

    [expand_rootfs] : SDカードのパーティションを拡張して2GB以上扱えるようにする

    [configure_keyboard] :日本語キーボードを利用しているので、 [Generic 105-key (Intl) PC]-[Japanese - Japanese (OADG 109A) ]を選択

    [change_timezone] : [Asia]-[Tokyo]を設定

    [SSH] : 有効にしておく[Enable]

    [update] : Raspberry Piをアップデートする

    あとで変更する場合は

    $ sudo raspi-config
    

    と入力する

  7. パッケージのアップグレード
  8. 初期ユーザー名/パスワード

    pi/raspberry

    $ sudo apt-get updateでパッケージリストを更新
    
    $ sudo apt-get upgradeでインストール済みのパッケージをアップグレード
    

    再起動する

    これでセットアップは完了

  9. X Windowの表示
  10. $ startx
    
    と入力するとGUIが表示されることを確認