ラベル IIS7 の投稿を表示しています。 すべての投稿を表示
ラベル IIS7 の投稿を表示しています。 すべての投稿を表示

2012年8月27日月曜日

IIS 7 (Windows 2008 r2 64ビット) + PHP 5.3 に OCI8 をインストールする

手順自体は、

1) Oracle の HP から Oracle Client Instant をダウンロードする
* ユーザー登録が必要
* OS が 64bit でも PHP の OCI8 を使う場合は 32bit 版のOracle Client Instant (basic) をダウンロードする事!!

2) 適当な所に解凍 (c:/oracle 等)


3) 以下の環境変数に上記 2) の値を追加
Path, NLS_LANG, LD_LIBRARY_PATH
詳しくは PHP のマニュアル参照 http://php.net/manual/ja/oci8.installation.php 


4) php.ini の extension のコメントを外す

extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client

5) Windows を再起動して上記 3) の環境変数を反映させる



6) phpinfo 関数などで OCI8 が利用できるか確認。「OCI8」の記述があれば使用できる


[注意]
上記 1) にもあるように PHP で OCI8 関数を使用する場合には Oracle Client Instant は 32bit 版をDLすること!これに気づかず長い事試行錯誤してしまった‥。



2012年3月22日木曜日

IIS7 で require や include で Permission Error が出る

Windows でのアクセス権の設定を見直す。


  • PHP の実行ファイル( php.exe ) のアクセス権
  • 公開フォルダのアクセス権


上記を IUSER_[コンピューター名] の読み取りと実行ができるようにしておく。

IIS 7 での SQL Server 2008 への接続

接続するときに

[Microsoft][SQL Server Native Client 10.0][SQL Server]ユーザー はログインできませんでした 

と出る場合、DBのログインに接続時のユーザーが設定されていない場合があるので要確認。

2012年3月19日月曜日

アセンブリは部分的に信頼されている呼び出し元を許可しません

「System.Security.SecurityException: アセンブリは部分的に信頼されている呼び出し元を許可しません。」

■怪しい対応

  • IIS 7 の機能ビューの ".NET信頼レベル" を "Full" にすると出ない。
  • 確かにエラーは出なくなったが…。


■アセンブリによる対応

  • IIS 7 の機能ビューの ".NET信頼レベル" を "midium"。
  • アセンブリに AllowPartiallyTrustedCallers 属性を設定する。 <Assembly: Security.AllowPartiallyTrustedCallers()>


…らしいが、正直理屈が分からん…。

再度詳しく調べる必要あり。

64 bit 環境での ASP.NET 2.0 の実行

32 bit 環境で動作している ASP.NET 2.0 のプロジェクトを 64 bit 環境 の IIS にデプロイすると、

ファイルまたはアセンブリ 'xxxxxx'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました

と出る。これは 32 bit でコンパイルした dll が混じっていると出るエラーのようなので、以下のいずれかで対処する。


  • 64 bit でコンパイルし直す(他所のライブラリを使用している場合は 64 bit 版に差替える)
  • IIS の Application Pool を "ASP.NET 2 Classic" に選択し、「詳細設定」で "32 ビット アプリケーションの有効化 " を "True" にする

上記のいずれかで対応する。