»
S
I
D
E
B
A
R
«
Install on Openbravo ERP
5月 22nd, 2009 by kwin

MRP が動作するということでインストールした Open Source ERP Openbravo。

現在の最新バージョンは 2.50 で Windows用の Installer が一つ前の 2.40 ではサポートされていたこともあり、このバージョンを x64環境 で稼動させ、Acceptance Test を実行してみた。

まず、いきなり  「 1.Initial client setup」 で M_Pricelist.C_Currency_ID に Null を登録しようとして ORA-1400 となる。 このエラーにもかかわらず、 client が登録されてしまうため 「 2.Delete client 」を必然的に行なうことになる。

alter table m_pricelist modify ( c_currency_id number(10) null ) ;

して先に進むと検索で ORA-00600: 内部エラー・コード、引数: [evapls1]

確かに Oracle 10g XE は推奨されていない。

alter system set “_optimizer_filter_pred_pullup”=false;

して先に進む。

ようやくマスターデータの登録をクリアし、在庫の操作を行なうも、 Stock Report が表示されない。
個別のPatch を適用するためにはやはり SVN からのインストールが必要。

Eclipse をいれ、SVN から 2.40 を取得。
( Eclipse 用の SVNなど多数のPluginが必要であり Pleiades が便利)

なんとか Build して在庫レポートの表示はクリアする。

ついでに  この表示も解消された。

しかし、先に進めるにどうも この 2.40 というバージョンはやめた方がいいという、
当初の勘が正しかったことを確信しだした。 (2.35 を使ってみないとなんともいえないが)

SVN からのインストールは成功しているので、まだ期待を込めて 2.35 に戻らずに
新しいバージョン 2.50 のソースを入手。

同じことをすればいいいはずが、Build がうまくいかない。

64bit と関連した問題かと思い、 x86 にも Oracle と Eclipse を Pleiades から
Tomcat ごと入れて Build してみてエラーはでたものの、何とか動作させたが、
64bit の問題ではなかったような気がする。

ERP は SDK ごと入れないと事実上意味がない。
ERP は よくない機能
(営業上、機能としてブローシャにないと困るのでとってつけたようなモジュール)
よくないバージョン
(失敗と明言しないまでも、既に次のバージョンに重心が移っている)
は避けて使わなくてはならない。
当然、この手のことに気づかされないままプロジェクトが進んでしまったら、
行き詰まりますが、ここで無理をするとさらに大変なことに…

Read the rest of this entry »

Install Maniax 2009
5月 14th, 2009 by kwin
  
Install Manaix 2009

Install Manaix 2009

今回   http://x64.museum-in-cloud.com/ 

・ リストにないオープンソース・アプリケーション
・ SQL Server 対応
・ PHP + Windows Azure 関連
を中心にコンテストに参加することにしました。

また、画像ファイルは Windows Azure の
Blob Storage を利用することにしました。 

画像が表示されない場合、 Windows Azure
 で走らせている自作の PHP プログラムの不具合の可能性が高いです。
上図の画像の URL は以下のようになっています。 
http://museum.cloudapp.net/AzureStorages/InstallManiax2009.jpg

Tomcat + IIS7 関連では 64bit OS  の罠にはまり、苦労しました。 

主なインストール一覧 とそのダウンロードしたサイトのURL

phpMyadmin
Wordpress on SQL Server                     http://x64.museum-in-cloud.com/wpmssql/
Windows Azure Storage from PHP   
CakePHP + IIS7 URL Rewrite               http://cakephp.jp/
Windows Live ID – PHP QuickStart  
Tomcat on Windows2008 x64    
Tomcat6.x+IIS7+Windows2008(x64)    
Openbravo on Windows2008(x64)       http://www.openbravo.com/downloads/
SugarCRM on SQL Server2008        http://www.sugarforge.org/content/downloads/ Windows Azure SDK – CloudDrive    
Windows Sharepoint Services 

Read the rest of this entry »

Age of Shift-JIS
5月 7th, 2009 by kwin

html ファイルの charset を Shift-JIS にして、データベースの charset も Shift-JIS にすれば文字化けしない、という時代はもう終わっていた。  Wordpress のフォルダを UTF-8 で grep して Shift-JIS に replace してもだめで、それでNET を検索して「時代遅れ」に気がついた。 ( 追記 : wp-admin で Shift-JIS も指定できました )

 

Shist-JISでWordPress (8 件の投稿) 
http://ja.forums.wordpress.org/topic/896 

Shift_JIS のウェブサイトを作るべきではありません。静的な HTML で作るならばあまり問題ないのですが、WordPress のようなウェブアプリケーションを通して Shift_JIS のサイトを提供する場合、不正なマルチバイト文字列を利用したセキュリティホール (XSS 脆弱性) が発生しやすくなります。
(適当に検索エンジンで見つけた資料)
マルチバイト文字とXSS脆弱性 (IT Pro)
PHP 利用時に Shift_JIS で addslashes() によるエスケープ処理に SQL インジェクション可能な穴(star_dust の書斎)
あと、実用面でも、Shift_JIS は AJAX との整合性が悪いため、ダッシュボードのフィードが文字化けしたりなど、不便が多いです。  

EUC 専門だった Sun が Solaris で Shift-JIS 対応した時は NEC漢字はどうするなど、大騒ぎだったらしい。

環境変数 NLS_LANG による文字コード変換が得意な Oracle も Shift-JIS, EUC に加えて UCS2/UTF-8 のギャップから JA16SJISTILDE ,JA16EUCTILDE *1なる文字コードセットまでつくりだしていた。 

 Sun は Oracle に買収され、今度はマイクロソフトが UCS2/UTF-8 のハンドリングを PHP用の新しい SQL Server ドライバ でやるはめになる。 

いつのまにかイリーガルとなった Shift-JIS

 

*1 この文字コードセットが原因で随分長い間、原因不明のまま動作しなかった製品で苦労しましたという人の話を聞いたときは、やはりと。 

Read the rest of this entry »

CloudDriveでWindows Azure Logsをみる
5月 1st, 2009 by kwin
 
SDK 環境では動作しても Cloud にもっていくと Internal Server Error になることがある。
 
 Windows Azure Logs Viewer の記事を読んで Copy ボタンをクリックすると Log ファイルが Azure Storage にコピーされることを知った。
 
さっそく Cloud Storage Studio で除いてみると、確かにファイルが作成されていた。
しかし、このツールは現在のバージョンでは Public モードのデータしか内容を参照できない。 
つまり、ファイルの存在は確認できたけれども、その内容をみることができないのである。 
 
 
 
もとの Azure SDK に付属の sample.zip の中にある CloudDrive がいいようだ。 
 
 
azure_samples/CloudDrive/scripts/MountDrive.ps1

function MountDrive {
Param (
$Account = “museum”,
$Key = “xxxQ0GjFYJqTvWY+SspHkfoDmOxxx”,
$ServiceUrl=”http://blob.core.windows.net”,
$DriveName=”Blob”,
$ProviderName=”BlobDrive”)

 # Power Shell Snapin setup
 add-pssnapin CloudDriveSnapin -ErrorAction SilentlyContinue

 # Create the credentials
 $password = ConvertTo-SecureString -AsPlainText -Force $Key
 $cred = New-Object -TypeName Management.Automation.PSCredential -ArgumentList $Account, $password

 # Mount storage service as a drive
 new-psdrive -psprovider $ProviderName -root $ServiceUrl -name $DriveName -cred $cred -scope global
}
MountDrive

 
上記の設定ファイルを作成しておいて 
  azure_samples/CloudDrive > powershell
    PS   azure_samples/CloudDrive > .\buildme.cmd
    PS azure_samples\CloudDrive> .\runme.cmd

Starting DevStore
****Starting PowerShell prompt ****
To switch to Blob drive: cd Blob:
To display the contents: dir

Name       Provider      Root                                      CurrentLocation
—-       ——–      —-                                                —————
Blob       BlobDrive     http://blob.core.windows.net 

 
  cd Blob 
   
  PS Blob:\000000004c00f3ca-staging\Web\Web_IN_0> dir

   Parent: CloudDriveSnapin\BlobDrive::http:\\blob.core.windows.net\000000004c00f3ca-staging\Web\Web_IN_0

Type       Size       LastWriteTimeUtc          Name
—-       —-       —————-          —-
Blob       619        2009/05/01 1:28:58        Events_UTC_200905010115_200905010130.xml
Blob       283        2009/05/01 1:31:15        Events_UTC_200905010130_200905010145.xml
Blob       283        2009/05/01 2:25:20        Events_UTC_200905010215_200905010230.xml
Blob       621        2009/05/01 3:38:22        Events_UTC_200905010330_200905010345.xml

  PS Blob:\000000004c00f3ca-staging\Web\Web_IN_0> cd ..
  PS Blob:\000000004c00f3ca-staging\Web> copy-cd Web_IN_0\ c:\work\ 
 
 
ようやく  取得した xml ファイルをみても、 Web Role が Start したなどの情報だけで、エラーの詳細の内容は記載されていない。
 
 結局は web.config に以下の記述を追加することで画面に詳細が表示されるようになり、 FastCGI の500 エラーなので権限関係の問題、そういば CakePHP は /app/tmp 以下のファイルシステムへの書き込みをしていることを思い出した。
 
 

<system.webServer> 
<httpErrors errorMode=”Detailed” /> 
</system.webServer> 

 

Read the rest of this entry »

CakePHP on IIS7
4月 29th, 2009 by kwin
CakePHP のチュートリアルにある開発例のアプリケーションを IIS7 上で動作させる。
 
 
CakePHPによる実践Webアプリケーション開発
 

背景

左の本を参考にまずデモプログラムをApache
で動作させた。
それを IIS7 で動作させようとしたところ、
Rewrite の関係かうまく動作しない。

ディレクトリの構成などもよく理解できていない
こともあり、よりシンプルなチュートリアルによる
サンプルを動かしてみたがどうやら現象は同じ。

やはり、一番の原因は URL Rewrite の設定
であった。

またサイトの物理パスの設定も修正した。 

http://calendarnote.museum-in-cloud.com/ 

 
 
 
どの部分を本当に物理パスに設定すればいいのか、実際に動作するようになるまで確信をもつことができなかった。
「バインドのホスト名を指定することで ポート80 で複数のサイトを立ち上あげることができる」のに気がつくのにも時間がかかった。 
 

     

 
 
 mod_rewrite のかわりに IIS7 では URL_Rewrite の設定が必要であることはわかっていても、いくら自分でいろいろと設定してみてもうまくいかなかった。
 IIS 7 で CakePHPブログチュートリアル  で紹介されていた Installing CakePHP on IIS 7 を参考にしてようやく rewrite 機能を設定することができた。
  cake-blog/.htaccess を読み込んでから、さらにそのまま  cake-blog/app/.htaccess,
  cake-blog/app/webroot/.htaccess を読む込み、そして手動編集で webroot の部分を削除するとは本当によく rewrite の動作と仕組みを理解していないとできない。
  
 

    

 
/cake-blog/web.config
/cake-bkig/app/webroot/web.config  の内容 
 
 

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration>
    <system.webServer>
        <handlers>
            <remove name=”PHP via FastCGI” />
            <add name=”PHP via FastCGI” path=”*.php” verb=”*” modules=”FastCgiModule” scriptProcessor=”C:\PHP\php-cgi.exe|-c c:\apps\php.ini” resourceType=”Unspecified” requireAccess=”Script” />
        </handlers>

        <rewrite>
            <rules>
                <clear />
                <rule name=”Imported Rule 5″ stopProcessing=”true”>
                    <match url=”^(.*)$” ignoreCase=”false” />
                    <conditions logicalGrouping=”MatchAll”>
                        <add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” pattern=”" ignoreCase=”false” />
                        <add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” pattern=”" ignoreCase=”false” />
                    </conditions>
                    <action type=”Rewrite” url=”index.php?url={R:1}” appendQueryString=”true” />
                </rule>
                <rule name=”Imported Rule 3″ stopProcessing=”true”>
                    <match url=”^$” ignoreCase=”false” />
                    <conditions logicalGrouping=”MatchAll” />
                    <action type=”Rewrite” url=”/” />
                </rule>
                <rule name=”Imported Rule 4″ stopProcessing=”true”>
                    <match url=”(.*)” ignoreCase=”false” />
                    <conditions logicalGrouping=”MatchAll” />
                    <action type=”Rewrite” url=”/{R:1}” />
                </rule>
                <rule name=”Imported Rule 1-1″ stopProcessing=”true”>
                    <match url=”^(.*)$” ignoreCase=”false” />
                    <conditions logicalGrouping=”MatchAll”>
                        <add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” pattern=”" ignoreCase=”false” />
                        <add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” pattern=”" ignoreCase=”false” />
                    </conditions>
                    <action type=”Rewrite” url=”index.php?url={R:1}” appendQueryString=”true” />
                </rule>
            </rules>
        </rewrite>
        <defaultDocument>
            <files>
                <add value=”index.php” />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

 
以上 

Read the rest of this entry »

Windows Azure First Deploy
4月 18th, 2009 by kwin

Windows Azure の Token を入手した。  

  

 以前、Windows Azure SDK の環境を構築した後に SQL Server を再インストールしてしまっていたので、 Azure 用のデータベースの再作成はどのようにしたらいいのか? 

Windows Azure SDK も新しくなっていたので再インストールしてみたが Create Databse などされない。結局、 Visual Studio で作成したアプリケーションが実行されるときに自動的に Create Database された。

以前、作成したデータベースファイルが物理ファイルとして消されずに残っていたので、途中エラーがでたが、ファイルを削除したところ無事、再作成された。    

  *  上の画像ファイル格納のデモプログラムを以前実行した際のデータベースの様子 

 

 さそく Power to the PROP の記事を参考に PHP  によるアプリケーション作成をVisual Studioで 開始したが、
  Invalid FastCGI application path ‘%RoleRoot%\php\php-cgi.exe’: ..
のエラーが解決できない。

( 結局は ファイルのプロパティのビルドアクションを なし にして解決*1
  Cloud への Deploy の動作が問題  環境変数に RoleRoot=C: を設定し ビルドのアクションは コンテンツ にする )

 

Visual Studio をいったんあきらめ、
Azure Services Training Kit  April には FastCGI のLab が追加されており、この手順に従い コマンドラインによる操作による構築作業で PHP が Windows Azure にて動作することを確認できた。

さて、ようやく動作したので Deploy してみたが、動かない。

いきなり PHP アプリケーションを Deploy するのではなく、最初は Visual Studio からサンプルプログラムの HelloAzure を Deploy してみたのだけれども動作しない。 Windows Azure については新しいサイトができていて、このサイトのはじめの Video がまさに Deploy の手順の説明であるのだが、

  

 

 Video によると Deploy には時間がかるが、その後 WebRole が Initializing から Started にかわるのに時間がかかるとはいっていないし、実際に動画ではすぐ Started にステータスがかわっている。 

 

 しかし、一晩たっても Initializing のままだった。

 Forum を検索してみたところ、どうやらちょうどトラブルだったようで、あらためて自分のWebRole のステータスを確認したところ Started になっていた。

 

 Hello World! 

*1php.iniの問題 http://d.hatena.ne.jp/machi_pon/20090327/1238127217  


 
Read the rest of this entry »

Rails on IIS7 + FastCGI
4月 8th, 2009 by kwin

Ruby on Rails on IIS7 + FastCgi

Windows 2008 Server Web Editoin x86 の IIS7 の FastCgi を利用し、Ruby on Rails 2.2.2/2.3.2 を動かす。

IIS7 での Rails はリンク切れの情報が多いが、以下の最近(2009/03)の回答から
 http://forums.iis.net/t/1156239.aspx
すると、 IIS7 でも問題なく稼動していると考えられる。

当初 Error 500 にて動作しなかったのは、log ファイルなどへの書き込み権限が不足していたのが原因であった。

しかし、実際に稼動させることができたが、他の PHP アプリケーションと同じサイトでそのまま稼動させることはできないことに気がついた。

Root / 以下の URL が Rails の管理下になるため、 このサイトに仮想ディレクトリを作成した他の PHP などアプリケーションなどの利用はできない。 ( router.rb により対応可能か(?) )

 

1.  仮想ディレクトリでの対応でなく、サイトを追加により対応する。

 

2.  以下の資料を参考に作業をすすめる

10 steps to get Ruby on Rails running on Windows with IIS FastCGI 
http://mvolo.com/blogs/serverside/archive/2007/02/18/10-steps-to-get-Ruby-on-Rails-running-on-Windows-with-IIS-FastCGI.aspx

 上記の資料は IIS6 の環境の例であるため、 IIS7固有の部分の以下の示す。

 

 

3.  RubyforIIS についてはここより取得

Where is RubyforIIS (rubyforiis.sosukodo.org) has disappeared! 
http://forums.iis.net/p/1154234/1889560.aspx#1889560


4. URL Rewiter を設定

Ruby on Rails in IIS 7.0 with URL Rewriter 
http://blogs.iis.net/ruslany/archive/2008/08/07/ruby-on-rails-in-iis-7-0-with-url-rewriter.aspx

 

・ c:/InstantRails/rails_apps/myapp/publick/web.config

<?xml version=”1.0″ encoding=”UTF-8″?>

<configuration>

    <system.webServer>

        <handlers>

            <add name=”ROR” path=”dispatch.fcgi” verb=”*” modules=”FastCgiModule” scriptProcessor=”C:\ruby\bin\ruby.exe|C:\InstantRails\rails_apps\myapp\public\dispatch.fcgi development” resourceType=”Unspecified” requireAccess=”Script” />

        </handlers>

        <rewrite>

            <rules>

                <rule name=”Imported Rule 1″>

                    <match url=”^$” ignoreCase=”false” />

                    <action type=”Rewrite” url=”index.html” appendQueryString=”true” />

                </rule>

                <rule name=”Imported Rule 2″>

                    <match url=”^([^.]+)$” ignoreCase=”false” />

                    <action type=”Rewrite” url=”{R:1}.html” appendQueryString=”true” />

                </rule>

                <rule name=”Imported Rule 3″ stopProcessing=”true”>

                    <match url=”^(.*)$” ignoreCase=”false” />

                    <conditions logicalGrouping=”MatchAll”>

                        <add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” pattern=”" ignoreCase=”false” />

                    </conditions>

                    <action type=”Rewrite” url=”dispatch.fcgi” appendQueryString=”true” />

                </rule>

            </rules>

        </rewrite>

    </system.webServer>

</configuration> 

5. 組み合わせにより動作しない

msvcrt-ruby18.dllがAPPCRASHとなる 
http://home-mg.que.ne.jp/20080216.html

今回の稼動環境
Ruby version 1.8.6 (i386-mswin32)
RubyGems version 1.3.1
Rails version 2.2.2
Active Record version 2.2.2
Action Pack version 2.2.2
Active Resource version 2.2.2
Action Mailer version 2.2.2
Active Support version 2.2.2

6. 権限が不足している場合、500 エラーとなる

http://forums.iis.net/t/1156239.aspx

その他

以上

BlogEngine.NET
4月 4th, 2009 by kwin

BlogEngine.NET 

 

 


アクセス :  http://iis.museum-in-cloud.com/blogenginenet/  

http://www.codeplex.com/blogengine

  ASP.NET による Blogシステム 

 上記サイトよりファイルダウンロードし以下の手順に従い作業をすすめる。

 http://razorant.com/blogenginewiki/Installation.ashx#D_-_Fresh_installation_
 http://www.blogengine.dev-asp.net/page/how-to-install.aspx 

 

1.  ファイルを解凍し、「アプリケーションの追加」を行なう

c:\apps\BlogEngine145XML\BlogEngine –> /blogenginenet 

2.  http://iis.museum-in-cloud.com/blogenginenet/ にアクセスし
   admin / admin でログイン後、パスワードを変更する  

  *c:\apps\BlogEngine145XML\BlogEngine\App_Data フォルダへの書き込み権限
    の付与が必要。 書き込み権限がないと、パスワードの変更もエラーとなる。 

ASP.NETサービスとIISが読み書きの両方ができるようにApp_dataフォルダに権限を設定します。 Vista/IIS7.0では、(Windowsエクスプローラから)「users」グループに設定し、(拡張セキュリティダイアログから)「NETWORK SERVICE」ユーザに設定することを表します。確実にApp_data内のフォルダが読み取り専用でないように設定してください。   http://www.blogengine.dev-asp.net/page/how-to-install.aspx 

以上 

 

 * 仮想ディレクトリの追加で行なうと、以下のようなエラーとなる

‘/’ アプリケーションでサーバー エラーが発生しました。



構成にエラーがあります。

説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、

構成ファイルに変更を加えてください。 

パーサー エラー メッセージ: アプリケーション レベルを超えて allowDefinition=’MachineToApplication’

として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリが IIS でアプリケーションとして
構成されなかった場合に発生します。

ソース エラー: 


行 7:  	</configSections> 
行 8:  	<BlogEngine> 
行 9:  		<blogProvider defaultProvider="XmlBlogProvider"> 
行 10: 			<providers> 
行 11: 	<add name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/>

ソース ファイル: c:\apps\BlogEngine145XML\BlogEngine\web.config    行: 


バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.3074; ASP.NET バージョン:2.0.50727.3074 

 

Read the rest of this entry »

Microsoft Web Platform Installer 2.0
4月 4th, 2009 by kwin

Microsoft Web Platform Installer 2.0

 

 http://php.iis.net/ にて Web Platform Installer というものがリリースされた

 

  ASP.NET のアプリケーションもあったが、ファイルは作成されているのだが、インストールは作成できないと
 いって完了しない。 

   

 ここ http://www.blogengine.dev-asp.net/ でもやはり、失敗している。

 

 WordPress もうまく テーブルが作成できなかったが 

 MySQL Connecter  Net 5.2.5 がインストールされている。

  

Read the rest of this entry »

Accessing SDS From PHP
3月 28th, 2009 by kwin

Accessing SDS From PHP

 http://blogs.msdn.com/ssds/archive/2009/03/27/9515262.aspx

MIX2009 での SQL Service team のデモは期待していたもののようでした。 

  上図の一番左の動きは SDS Exploer で動かしてみることができる内容のことだと思われますが、
 これが試せる Token は取得できているのですが、ここから Create Table もできるのかも? しれませんが… 
   

 

Read the rest of this entry »

»  Substance: WordPress   »  Style: Ahren Ahimsa