none
デフォルトのドキュメントルートを変更してPHPを動かしたい RRS feed

  • 質問

  • お初にお目にかかります。

    hiromikuと申します。

    Azure上で、デフォルトのドキュメントルート"%RoleRoot%\approot\"を変更して、PHPがきちんと動作する方法を探しています。

    HWCではドキュメントルートを変えることができないため使えませんでした。

    そこでFull IIS で試したところ、ドキュメントルールを変更することはできました。

    が、PHPを動かそうとすると下記エラーが出てしまい動作しません。

    <handler> scriptProcessor が <fastCGI> アプリケーション構成で見つかりませんでした

    Handlerは以下のように設定しています。

    <add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="%RoleRoot%\approot\php\php-cgi.exe" resourceType="Unspecified" />

    私が思うにFull IISで動かすと、"%RoleRoot%"が認識できていないように見えます。

    環境変数にセットすればよいのかとも思い、スタートアップタスクで%RoleRoot%にsetxしてみたりもしましたが、変わりありませんでした。

    PHPが動作しないこの問題の解決法をご存知の方がいらっしゃいましたら、是非お知恵を拝借させていただけないでしょうか。

    そもそもHWCでドキュメントルートを変える方法があるのであれば、そちらでも大歓迎です。

    何卒よろしくお願いいたします。

    2012年3月8日 2:50

回答

  • こんにちは。

    ドキュメントルートを変えるということでしたのでLocalStorage等にするのかと思いました。

    Web.config内でも環境変数は使えたと思いますが定かではありません。

    切り分けとして、一旦デプロイ後にRDP等でサーバー上に入り、環境変数やWeb.configを調整されては如何でしょうか。
    うまくいく設定をおさえた後でStartupTaskに纏めるとよいかと思います。

    • 回答としてマーク hiromiku 2012年3月15日 8:42
    2012年3月9日 11:16
    モデレータ

すべての返信

  • こんにちは。

    ドキュメントルートを自前で書き換えるのであれば%RoleRoot%を使わずに絶対パスなどでも良いのではないでしょうか。
    またFullIISの場合はRoleRoot環境変数そのままは使えませんので、システム環境変数にする必要があると思います。
    (setxに/M引数付きで設定する等)

    またFull IISでPHPを設定しているBlogがありますのでこちらも参考まで

    http://blogs.gine.jp/kusa/archives/1407

    • 回答としてマーク hiromiku 2012年3月15日 8:42
    • 回答としてマークされていない hiromiku 2012年3月15日 8:42
    2012年3月9日 1:37
    モデレータ
  • k.buchi 様

    こんにちは。hiromikuです。

    ご回答いただきありがとうございます。

    もし%RoleRoot%を使わずに、絶対パスでハードコードしたとすると、deployしたときにアプリのドライブレターがE:やF:に変化して問題になるように思います。

    また、システム環境変数にするのも一度トライしておりまして、スタートアップタスクで

    setx RoleRoot %ROLEROOT% /M

    を試したのですが、同様のHandlerエラーが出てしまう状態です…。

    こちらなのですが、例えば、"Hoge"という名でsetxすると、Full IISのWeb.configで%Hoge%を読み込むことは可能なのでしょうか?


    2012年3月9日 4:32
  • こんにちは。

    ドキュメントルートを変えるということでしたのでLocalStorage等にするのかと思いました。

    Web.config内でも環境変数は使えたと思いますが定かではありません。

    切り分けとして、一旦デプロイ後にRDP等でサーバー上に入り、環境変数やWeb.configを調整されては如何でしょうか。
    うまくいく設定をおさえた後でStartupTaskに纏めるとよいかと思います。

    • 回答としてマーク hiromiku 2012年3月15日 8:42
    2012年3月9日 11:16
    モデレータ
  • k.buchi 様

    こんにちは。hiromikuです。

    数日間試行錯誤しまして、ドキュメントルートを変更かつPHPも動かせるようにできました。

    方法は、Full IISの設定の後、スタートアップタスク内で、Appcmdを使い、Web.configにFastCGIのハンドラを動的に追加させるように対応しました(環境変数を使わない)。

    ご助言していただきありがとうございました。

    • 回答としてマーク hiromiku 2012年3月15日 8:41
    • 回答としてマークされていない hiromiku 2012年3月15日 8:42
    2012年3月15日 8:39