none
Azure でPHPのfopenがエラーになる?

    質問

  • 下記のテストプログラムがAzureでは500エラーになります。もちろん、Azure以外では問題なく動きます。
    <?php
    $coupon = $_GET['c'];
    $fname = "aaa.xml";
    $fp = fopen( $fname, "w" );
    fclose($fp);
    ?>

    こちらの手テストプログラムはAzure上でも大丈夫です。

    <?php
    $coupon = $_GET['c'];
    echo "$coupon\n";
    ?>
    Azureではfopenがエラーになるということ?

    2011年8月18日 11:02

すべての返信

  • AzureでPHPを動かす一般的に紹介されている方法でDeployした場合、PHPスクリプトのあるフォルダには書き込みすることができません。

    そのため、fopenでファイルを作成しようとして書き込みエラーになっています。

    Auzreでのファイル書き込みは、一般的にはAzure Blob Storageに対して行います。

     

    PHPからAzure Blob Storageのファイルを読み書きするには、Windows Azure SDK for PHPを利用します。

    Windows Azure SDK for PHPの一般的な使い方は@ITの記事にあるように独特のクラスを利用しますが、使えるWindows Azureの5章にあるようにfopenなどのファイルシステム関数を利用することもできます。
    ただし、使えるWindows Azureの5章にも書いてありますが、fopenなどのファイルシステム関数を利用する場合は既にファイルが存在していないといけないなど、いくつか制限もあるようなのでご注意ください。

    2011年8月18日 17:07
  • Kuniteruさん

    ありがとうございます。やってみます。結果はまたご報告いたします。

    2011年8月18日 23:19
  • ”使えるWindows Azure 5章”の通りにやってはみたものの、fopenがエラーになってしまいます。

    なかなか厳しいですね。:-<

    2011年8月19日 23:26
  • 時間が空いてしまいました。すいません。

    あれれ、どのようなエラーですか?

    Blobにファイルを作成してからそのファイルに対してfopenすれば、エラーにはならないはずなのですが・・・

    2011年8月27日 17:43