‘PHP’ カテゴリーのアーカイブ

Windows Azure SDK for PHP v3.0.0 BETA

2011年4月24日 日曜日

Windows AzureでPHPを利用してAzure Storageなどを利用するのにかかすことのできない、Windows Azure SDK for PHPのv3.0.0 BETAがリリースされました。

>> Windows Azure SDK for PHP v3.0.0 BETA released - Maarten Balliauw {blog}

>> ダウンロード

変更点は以下みたいです。(私のつたない英語の理解力ではまちがってるところもあるかと…ご指摘くださいm(__)m)

  • 変更:Azure TableのDateTime型の値が、Edm.DateTime型として扱えるようになりました。(今まではEdm.String型だったっぽい。)
  • 新機能:サービス管理APIが追加されました。(Microsoft_WindowsAzure_Management_*というクラスたちが追加になっています。)
  • 新機能:Table Storageにログを出力できるようになりました。(Microsoft_WindowsAzure_Log_*というクラスたちが追加になっています。)
  • セッションハンドラが更新されました。今まではセッションデータをTable Storageに持っていましたが、大きなデータは保持できませんでした。Table Storageで大きなセッションデータを保持できるようになりました。
  • Queue Storage clientにhasMessages()メソッドが追加されました。
  • いくつかのBug Fixとパフォーマンスの調整がされました。

PHP on IISからSQL Serverを使う

2009年5月14日 木曜日

IIS上のPHPからSQL Server2008/2005にアクセスするには、以下の手順を踏む必要があります。

  1. Microsoft SQL Server Native Clientのインストール
    Microsoft SQL Server 2008 用 Future Packのダウンロードページの注意事項の一覧から、IISが稼動している環境にあったMicrosoft SQL Server 2008 Native Client(sqlncli*.msi)をダウンロードし、インストールする。
    ページ先頭にある、一括でのダウンロードなどでもかまわない。
  2. SQL Server Driver for PHPのインストール
    1. SQL Server Driver for PHP Version 1.1のダウンロードページから、ファイルをダウンロードする。
    2. ダウンロードしたファイルを適当なフォルダにファイルを展開する。
    3. 展開したファイルの内、以下のファイルをPHPのextension_dir(ex. C:¥php52¥ext)にコピーする。
      • php_sqlsrv_52_nts_vc6.dll
        (Non-thread-safeのPHP5.2を利用している場合)
      • php_sqlsrv_52_ts_vc6.dll
        (Thread-safeのPHP5.2を利用している場合)
      • php_sqlsrv_53_nts_vc9.dll
        (VC9バージョンでNon-thread-safeのPHP5.3を利用している場合)
      • php_sqlsrv_53_ts_vc9.dll
        (VC9バージョンでThread-safeのPHP5.3を利用している場合)
      • php_sqlsrv_53_nts_vc6.dll
        (VC6バージョンでNon-thread-safeのPHP5.3を利用している場合)
      • php_sqlsrv_53_ts_vc6.dll
        (VC6バージョンでThread-safeのPHP5.3を利用している場合)

      ※Non-thread-safeかThread-safeかは、PHPのフォルダにphp5.dllかphp5ts.dllのどちらがあるかで判断できる。

      • php5.dllがある場合、Non-thread-safe
      • php5ts.dllがある場合、Thread-safe

      ※VC9バージョンかVC6バージョンかは、%PHP_HOME%¥snapshot.txtに、「msvcr90.dll」という文字列が含まれるかどうかで判断できる。

      • msvcr90.dllが含まれる場合、VC9
      • msvcr90.dllが含まれない場合、VC6
  3. php.iniファイルの編集
    php.iniファイルにextensionとして、追加したファイルを指定する。
    ex.) extension=php_sqlsrv_53_ts_vc9.dll
    ※ファイル名を変更しても良い
  4. SQL Serverにログインの作成
    IISからWindows認証でログインできるよう、SQL Serverに「NT AUTHORITY¥IUSR」ログインを作成する。

    1. Microsoft SQL Server Management Studioを起動
      [スタート]メニュー - [プログラム] - [Microsoft SQL Server 2008] - [SQL Server Management Studio]を選択し、ログインする。
    2. 左側のツリーで「ログイン」を右クリックし、「新しいログイン...」を選択する。
      sql_server_login01
    3. 「ログイン」 - 新規作成画面で必要な情報を入力する。
      • 「全般」ページ
        ログイン名:NT AUTHORITY¥IUSR
        sql_server_login02
      • 「ユーザー マッピング」ページ
        「このログインにマップされたユーザー」の一覧で、PHPから利用したいデータベースを選択する。
        sql_server_login03

以上

参考)

[2009/08/19] SQL Server Driver for PHP 1.1 CTPのリリースに伴い、バージョンに合わせて内容を修正しました。
SQL Server Driver for PHP 1.0をご利用の場合は、Microsoft SQL Server 2005 用 Future PackのNative Clientをインストールしてください。

[参考書籍]

PHP – PEAR

2009年5月12日 火曜日

PEARはPHPを拡張するクラス・ライブラリです。

Webアプリケーションの中にはPEARのライブラリを利用するものもあります。

Windows環境でPEARライブラリを利用するための手順を以下に示します。

  1. コマンドプロンプトを起動する。
  2. PHPのディレクトリ(以降、%PHP_HOME%と記述する)に移動する。
    ※PHPのディレクトリがC:¥Program Files (x86)の下などだと、PEARライブラリの追加時などに「Invalid configuration directive」とのメッセージが出て正常に動作しない。
    「C:¥php」などが良い。
  3. go-pear.batコマンドを実行する。
    すべての入力に「Enter」キーだけを入力する。
  4. レジストリ登録
    Windowsエクスプローラで%PHP_HOME%¥PEAR_ENV.regをダブルクリックする。

引き続き、PEARライブラリの追加手順を示します。

  1. コマンドプロンプトでPHPのディレクトリに移動する。
  2. PEARのインストールコマンドを発行する。
    ex.)

    C:¥> pear install {パッケージ名}

以上

[参考書籍]

IIS アプリケーションフォルダに必要なアクセス許可

2009年5月2日 土曜日

Windows Server 2008上のIIS7.0でWebアプリケーションを公開する場合、そのアプリケーションフォルダに対して、最低でも以下のアクセス許可を与える必要がある。

  • IUSRグループ
    • フォルダ内容の一覧表示
      (perlやThread safeのPHPでは不要 ⇔ Non thread safeのPHPでは必要)
    • 読み取り
  • IIS_IUSRSグループ
    • 読み取り

アプリケーションの用件で、特定のファイルやディレクトリに対して書き込みが必要な場合、そのファイルやディレクトリに対して以下のアクセス許可を与える。

  • IIS_IUSRSグループ
    • 書き込み

セキュリティを向上するためには、他のユーザやグループに対しても、必要のない権限は与えないこと。

[参考書籍]

ディレクトリごとのPHPパラメータの変更(2)

2009年4月13日 月曜日

以前、Apacheの.htaccessでの設定に相当する、ディレクトリごとにPHPパラメータ(php.iniの設定)を変更をIIS7.0で実施する方法として、Windowsレジストリでの設定を紹介しましたが、任意の設定ファイルを指定する方法がわかったので紹介します。

なおここで書かれているのは、PHPをFastCGIで動作させている場合の設定方法です。
参考) PHPをFastCGIで動作させるためのIISの設定方法

  1. php.iniファイルの作成
    IISが読み込むことのできるフォルダに変更した設定ファイルを作成する。
    ファイル名はphp.iniである必要はない。
    ex.) C:¥WebApplications¥php_ini¥wordpress.ini
  2. Administration Pack for IIS7.0のインストール
    Administration Pack for IIS7.0をインストールしていない場合は、それをインストールする。
    ページ右上の「Install Now」をクリックしたくなるがこれは英語版である。日本語版をインストールするには、ページ右下のJapaneseをダウンロードする。
    ※IIS7.5ではOSに組み込まれているので、これのインストールは不要。
  3. FastCGIの設定をする。
    1. [スタート] - [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャ]を起動する。
    2. 左側ツリーで「コンピュータ名」を選択し、「FastCGIの設定 (FastCGI Settings)」をダブルクリックする。
      php-setup08
    3. 「FastCGIの設定 (FastCGI Settings)」画面で、右側操作エリアの「アプリケーションの追加 (Add Application)」をクリックする。
      php-ini02
    4. 「FastCGIアプリケーションの追加 (Add FastCGI Application)」画面で以下の設定をする。
      php-ini03
    5. 完全なパス
      (Full Path)
      php-cgi.exeのフルパスを記述する。
      ex.) C:¥Program Files (x86)¥php52¥php-cgi.exe
      引数
      (Arguments)
      php-cgi.exeに与えるコマンドラインオプションを記述する。
      -cで設定ファイルを指定することができる。
      ex.) -c C:¥WebApplications¥php_ini¥wordpress.ini
      Activity Timeout デフォルトで30秒になっており、インストールなどに失敗する場合は長めにするとよい。
    6. アプリケーションが追加される。
      php-ini04
  4. ディレクトリのハンドラマッピングの設定
    1. 左側のツリーで、作成した設定を適用するディレクトリを選択し、「ハンドラマッピング」をダブルクリックする。
      php-ini05
    2. PHPのマップをダブルクリックする。
      php-ini06
    3. モジュールマップの編集画面で、「実行可能ファイル(オプション)」を編集する。
      php-cgi.exeのフルパスの直後に、「|」(パイプ)と、(2)-(3)の引数(Arguments)に設定した値(-c {設定ファイルのフルパス})を記入し、全体を「″」(ダブルコート)で囲む。
      ex.) ″C:¥Program Files (x86)¥php52¥php-cgi.exe|-c C:¥WebApplications¥php_ini¥wordpress.ini″
      ※全体をダブルコート(″)で囲むのと、パイプ(|)の前後にスペースを空けないことがミソ。
      php-ini07
    4. モジュールマップの編集メッセージでは「いいえ」を選択する。
      php-ini08
  5. 動作確認
    1. 設定を変更したディレクトリにphpinfo.phpファイルを作成し、以下の一行を記述する。
      <?php phpinfo() ?>
    2. http://{あなたのURI}/{設定対象のディレクトリ}/phpinfo.phpにアクセスする。
      ex.) http://www.yourdomain.com/wordpress/phpinfo.php
      「Loaded Configuration File」の値が、指定したファイルになっていることを確認する。
      php-ini09
    3. 作成したphpinfo.phpファイルは忘れずに削除する。

以上

参考)  仮想ディレクトリ毎のPHP.INI設定 - Install Museum

[2009/08/19] Administration Pack日本語版のリリースに伴い、関係する内容を修正しました。

[参考書籍]

ディレクトリごとのPHPパラメータの変更

2009年1月7日 水曜日

Apacheで特定のディレクトリだけPHPの設定(php.iniの値)を変更したい場合は、.htaccessファイルなどで設定可能ですが、IISではWindowsレジストリに設定する。

※[2009/04/13]IISマネージャでディレクトリごとに任意のphp.iniファイルを指定する方法がわかりました。そっちのが良いかも。
>>>ディレクトリごとのPHPパラメータの変更(2)

設定値は、レジストリキー HKLM\SOFTWARE\PHP\Per Directory Values に保存され、そのサブキーがパス名となる。

例えば、ディレクトリ c:\inetpub\wwwroot に対する設定値は、 キー HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot に保存される。

ディレクトリに対する設定は、そのディレクトリ、 およびそのサブディレクトリで実行されるすべてのスクリプトで有効となる。

PHP 設定オプションのディレクティブを名前とする文字列値をキーに登録する。

また、値のデータに PHP 定数を記述しても解釈されないので、注意すること。

しかし、PHP_INI_USER で変更可能な設定値はこの方法で設定することが可能だが、 PHP_INI_PERDIR な値は設定できない。

参考)
http://www.php.net/manual/ja/configuration.changes.php#configuration.changes.windows

[参考書籍]

php.ini

2008年12月29日 月曜日

PHPインストールのページでも書いていることではあるが、php.iniの設定を記載しておく。

pnp.ini-recommendedをphp.iniにコピー

このブログに書いてあるPHPアプリケーションのすべてに共通する設定

fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
extension_dir = “./ext”
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
date.timezone = Asia/Tokyo
SMTP = localhost
smtp_port = 25
sendmail_from = me@example.com #要変更

ほとんどのPHPアプリケーションで必要な設定

extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_zip.dll
extension=php_bz2.dll

[参考書籍]

PHP

2008年12月29日 月曜日

Windows Server 2008 & IIS7.0へのPHPのインストール手順を示します。

  1. ダウンロード
    PHP for WindowsからNon Thread Safeのzipファイルをダウンロードする。

    • PHP5.3以降の場合は、VC9 x86 Non Thread Safe
    • PHP5.2の場合は、VC6 x86 Non Thread Safe

    ※将来x64用などがリリースされたら、環境にあったものをダウンロードする。
    今回は「5.2.10 VC6 x86 Non Thread Safe」のzipファイルをダウンロードした。

  2. ダウンロードしたファイルをインストールしたい任意のフォルダに解凍する。
    ex.) C:¥php52
  3. 以降、「PHP_HOME」と記述する。
    ※C:¥Program Files (x86)の下などにはインストールしない方がよい。PEARのライブラリをインストールするときなどに「Invalid configuration directive」というメッセージが出てうまくいかないから。(このサイトの画面サンプルではそこにインストールしちゃってるけど…)
  4. 設定ファイルの作成
    インストールしたフォルダにある、php.ini-recommendedファイルを、同じフォルダにphp.iniという名でコピーする。
    これがPHPの設定ファイルになる。
  5. PATHを通す
    システム環境変数のPATHにPHP_HOMEを追加する。
    ex.) PATH=.;C:¥Windows¥System32;C:¥php52
  6. 設定ファイルの編集
    (3)で作成したphp.iniファイルに、以下のパラメータを追記する。

    fastcgi.impersonate = 1
    cgi.fix_pathinfo=1
    cgi.force_redirect = 0
    extension_dir = "./ext"
    mbstring.language = Japanese
    mbstring.internal_encoding = UTF-8
    date.timezone = Asia/Tokyo

    以下はのパラメータを環境に応じて設定する。

    SMTP SMTPサーバーの名称またはIPアドレス
    smtp_port SMTPサーバーへの接続ポート番号
    sendmail_from Fromに使用するアドレス

    ex.)

    SMTP = smtp.example.com
    smtp_port = 25
    sendmail_from = me@example.com

    php.iniを変更したらIISを再起動する。

    注)
    SMTPサーバーは、POP before SMTPやSMTP Authなどの認証には対応していない。
    認証が不要なSMTPサーバーがない場合は、それを構築しよう

  7. IISの設定変更
    1. [スタート] - [管理ツール] - [インターネット インフォメーション サービス (IIS) マネージャ]を起動する。
    2. 左側のツリーからコンピュータ名を選択し、「ハンドラ マッピング」をダブルクリックする。
      php-setup01
    3. 右側の操作エリアの「モジュールマップの追加」をクリックする。
      php-setup02
    4. 「モジュールマップの追加」画面で以下を入力する。
      php-setup03

      要求パス *.php
      モジュール FastCgiModule
      実行可能ファイル (オプション) "{PHPをインストールしたフォルダ}¥php-cgi.exe"

      ex.) "C:¥Program Files (x86)¥php52¥php-cgi.exe"

      名前 PHP via FastCGI
    5. 「モジュール マップの追加」メッセージで、「はい」をクリックする。
    6. PHPのハンドラマッピングが追加される。
      php-setup04
    7. 既定のドキュメントにindex.phpを追加する。
      左側ツリーで「コンピュータ名」を選択し、「既定のドキュメント」をダブルクリックする。
      php-setup05
    8. 「既定のドキュメント」画面で、右側の操作エリアの「追加」をクリックする。
      php-setup06
    9. 「既定のドキュメントを追加」画面で、「index.php」と入力する。
    10. 「既定のドキュメント」画面に戻り、index.phpが一覧に追加されていることを確認する。
    11. FastCGIの設定をする。
      左側ツリーで「コンピュータ名を選択肢、「FastCGIの設定」をダブルクリックする。
      php-setup08
    12. 「FastCGI Settings」画面で「~¥php-cgi.exe」をダブルクリックする。
      php-setup09
    13. 「Edit FastCGI Application...」画面で設定をする。
      「ActivityTimeout」がデフォルトで30秒になっており、これだとインストールなどに失敗するアプリケーションもあるので、長めにするとよい。
      php-setup10
  8. 動作確認
    1. C:¥inetpub¥wwwroot¥phpinfo.phpファイルを作成し、以下の一行を記述する。
      <?php phpinfo() ?>
    2. http://localhost/phpinfo.phpにアクセスする。
      php-setup07

      この画面が表示されれば、PHPのインストールは成功。

    3. 作成したphpinfo.phpファイルを削除する。
  9. IISの修正プログラムをあてる。
    このままのIIS7.0では、REQUEST_URIが正しく解釈できないという致命的な不具合がある。
    Microsoftのサポートサイトで配布されている修正プログラムhttp://support.microsoft.com/kb/954946)を適用する。

以上

[2008/08/19] PHP5.3のリリースに伴い、内容を若干修正しました。

[参考書籍]