2014年7月30日水曜日

PHPのセッションを Microsoft Azure Storage に保存してみる

PHPのセッションハンドラを Microsoft Azure Table Storage に保存するためのプログラムを、githubに公開してみた。
https://github.com/cocteau666/php-azure-session/

Azure SDK for PHP に依存しています。
https://github.com/cocteau666/azure-sdk-for-php

Microsoft Azure でPHPを使う場合に、セッションデータをローカルに持たないようにするためにも、使ってみてはいかがでしょうか?

使い方は、こんな感じ。

require 'AzureTableSessionHandler.php'; 
$sessionHandler = new AzureTableSessionHandler($blob_account, $blob_key); 
session_set_save_handler($sessionHandler, TRUE); 
session_start();

シンプルですねー。

2014年7月14日月曜日

CentOS7 あれこれ

Microsoft Azure で CentOS7 を動かし始めて数日。
どうでも良いかもしれない、気が付いた事を。

1. firewalld ってもしかして Pythonスクリプト?

psコマンドで確認すると、以下のような表示が。

root      2726     1  0 20:17 ?        00:00:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

まさか、こいつ…。
と思って vim で開いたら、

#!/usr/bin/python -Es
# -*- coding: utf-8 -*-

ではじまってるんだが。
時間があったら見てみよう。

2. httpdを公開するために

firewalld が iptables の設定を管理するようになったので、設定方法が変わっています。
デフォルトでは ssh しか許可されてません。
httpd を許可するためには、firewalld が動作中に firewall-cmd コマンドで設定する必要があります。

こうすると、現在の設定が一覧表示されます。

$ sudo firewall-cmd --list-all-zone

httpd を永続的に追加するにはこうします。(若干、--permanent オプションにハマる)

$ sudo firewall-cmd --permanent --add-service=http --zone=public

3. gccにGO言語のコンパイラあるのね

gcc-go ってパッケージがあるんだー。知らなかったよ。

2014年7月12日土曜日

さっそくMicrosoftAzureでCentOS7を動かしてみる

7月7日に公開になったCentOS7ですが、各方面で情報が出回っているかと思います。

http://centos.org

特徴としては、


  • Kernelが3.10.0
  • Apacheが2.4系に
  • systemdの採用(今までのinitではない)
  • firewalldの採用(iptablesの設定を管理する)
  • MariaDBの採用(MySQLの代替)


ってところでしょうか。

※なお、私が作ったCentOS7のVMDepotイメージはこちらで。
http://vmdepot.msopentech.com/Vhd/Show?vhdId=42491&version=43576

MicrosoftAzureでCentOS7を動かすには、自分でHyper-Vからイメージをアップロードする必要があります。

必要なものは以下の通り。


  • Hyper-V(Windows8のものでOK)
  • Azureストレージにアップロードするツール(私はCloudBerryExplorerでやりました)
  • MicrosoftAzureサブスクリプション
  • WALinuxAgent(githubより取得)

ハマるところだけいくつか解説します。


1. CentOS7をHyper-V上の仮想マシンにインストール


基本的には、以下のリンクの通りで良いのですが、
http://www.atmarkit.co.jp/ait/articles/1405/29/news148.html

Azureで動作させるためのVHDには条件があり、サイズ固定で127GB以下である必要がありますのでご注意ください。

2. WALinuxAgentのインストール

インストールが終わったら、WALinuxAgentのインストールを行います。
以下のサイトからgitで取得します。(gitコマンドはyumでインストールできます)
https://github.com/Azure/WALinuxAgent

中身はPythonですので、以下のようにインストールを。

$ cd WALinuxAgent
$ sudo python setup.py install

ここでインストールされるのですが、systemd向けのスクリプトがありませんので、別途導入します。

$ sudo cp distro/systemd/waagent.service /etc/systemd/system/
$ sudo systemctl enable waagent
$ sudo systemctl start waagent

3. 設定の初期化

Azureでマイイメージとして利用するために、以下のように初期化を行います。
$ sudo waagent -deprovision

このコマンドは以下の処理を行います。

  • waagentの停止
  • SSHホストキーのペアを削除
  • DHCPリースの削除
  • resolv.confの削除
  • rootパスワードの削除

4. Azureストレージへのアップロード

仮想マシンを停止したら、作成したVHDをAzureストレージにPageBlobとしてアップロードします。
アップロード方法はPageBlobでアップロード可能であれば何でもOKです。

5. マイイメージの作成

Azureポータルにログインして、アップロードしたVHDファイルからイメージを作成します。
仮想マシン>イメージ>作成、ですね。



以下のように入力してイメージを作成すると、仮想マシン作成時にアップロードしたイメージから仮想マシンが作成できます。


6. 仮想マシンを作成して遊ぶ

あとは仮想マシンを作るだけです。


2013年5月21日火曜日

Windows Azure Storage で消せないVHDを削除するスクリプトの豆知識

時折、Windows Azure Storage からVHDが削除できなくなる場合があります。

そんなときは、これを実行するのですが。
http://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/thread/cc9bacfc-2c11-4010-b535-f1b0a141d317/

SDK2.0になってから、この「BreakLease.ps1」を実行する場合に、事前に下記のようなシェルを実行しなきゃならないんですね。
以下のうちの必要なものを登録しましょう。
今回は「2012-10」のSDKを使います。

>Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref\Microsoft.WindowsAzure.Storage.dll"
>Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref\Microsoft.WindowsAzure.StorageClient.dll"

他にはこんなのもあります。

>Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref\Microsoft.ServiceBus.dll"
>Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref\Microsoft.WindowsAzure.CloudDrive.dll"
>Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref\Microsoft.WindowsAzure.Configuration.dll"
>Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref\Microsoft.WindowsAzure.Diagnostics.dll"
>Add-Type -Path "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\ref\Microsoft.WindowsAzure.ServiceRuntime.dll"

困ってたらどうぞ。

2013年4月27日土曜日

クラウディアさんをWebブラウザで躍らせる(要WebGL)

MMDのモデルをブラウザ上で動かせる「MMD.js」があります。

WebGLによる、なかなか素晴らしい動きじゃないですかね。

こうなると、MicrosoftさんのWindowsAzureのキャラクターであるクラウディアさんも躍らせてみたいですよね?さくっと、やってみました。

注意点は、ブラウザはTGA形式の画像が表示できないので、あらかじめPNG形式に変更する必要があります。
ライブラリの中で、「xxx.tga」で終わるファイルは「xxx.tga.png」に読み替えてテクスチャーファイルを読み込みます。

非力なグラボのマシンで見ると、軽く死ねると思います。

2013年3月13日水曜日

MacOSX 10.8 + mono + F#

今更って感じだけど。

monoのインストールはあっさりとできる。
ここからpkgをダウンロードして実行。
http://www.go-mono.com/mono-downloads/download.html

で、ここからF#コンパイラをダウンロード。
http://www.microsoft.com/en-us/download/details.aspx?id=11100

zipを解凍してmonoで実行すると、インタラクティブシェルが起動したりする。

user: mono fsi.exe --gui

ちょっとしたチェックはこれで済みそう。

2013年1月1日火曜日

今日でインターネットも30歳!?

今日はARPANETがTCP/IPに切り替わって30年なのだ。
インターネットも30歳っといっていいでしょうね。おねでとう。

興味ある人はあらためてRFCを読んでみよう。
http://www.rfc-editor.org/rfc/rfc801.txt

今年もよろしくお願いします。