Pistolfly のすべての投稿

Software Engineer in Tokyo, Japan

Using FastCGI to Host PHP Applications on IIS 7.0

IIS.net : Learn IIS7: Using FastCGI to Host PHP Applications on IIS 7.0: Running PHP Applications: Hosting Applications on IIS 7.0: Developing on IIS 7.0
IIS7.0にはFastCGIがビルトインされている。IISのFastCGIを使用してPHPアプリケーションを動作させるチュートリアル。
Windows Vistaで、「プログラムと機能」でCGIをチェックしていても、モジュールにFastCGIModuleが組み込まれていなかった。いったんCGIのチェックを外して更新してから、再度CGIにチェックを入れると、FastCGIがモジュール一覧に入った。CGIを有効にした状態でSP1を適用したからかもしれない。

rails2の、authenticity_token出力をとめる

rails2の、authenticity_token出力をとめる
rails2から導入されたauthenticity_tokenによるCSRF対策を無効にする方法。
この検証に失敗した場合、以下の例外が発生する。

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken)

特定のアクションでauthenticity_tokenの出力、検証を無効にする。

class TestController < ApplicationController
  protect_from_forgery :except => [:hello]
  def hello
    self.allow_forgery_protection = false
  end
end

コントローラのアクションすべてでauthenticity_tokenの出力、検証を無効にする。

class ApplicationController < ActionController::Base
  #protect_from_forgery # See ActionController::RequestForgeryProtection for details
  self.allow_forgery_protection = false
end

VNCサーバのインストールと設定

インストール

# yum install vnc-server

サービスの自動起動設定

# chkconfig vncserver on

VNCサーバの設定
/etc/sysconfig/vncservers

VNCSERVERS="1:user1 2:user2"
VNCSERVERARGS[1]="-geometry 800x600 -depth 16"
VNCSERVERARGS[2]="-geometry 800x600 -depth 16"

VNCパスワードの設定
/etc/sysconfig/vncserversで設定したユーザでログインして、vncpasswdでパスワードを設定する。
各ユーザのホームディレクトリ下の.vnc/xsartupを編集
コメントを2か所外す。

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

ファイアウォールの設定
VNCプロトコルは、5900 + 「ディスプレイ番号」のポートを使用する。
例えば、ディスプレイ番号が1の場合は、5901:tcpを開いておく
VNCサーバを起動する
サービスで起動

# service vncserver start

vncserverコマンドで起動(:1はディスプレイ番号)

# vncserver :1

vncserverコマンドで停止

# vncserver -kill :1

SQLServer モードのセッション状態のサポート

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exeでSQL Serverにセッション状態サポートの追加削除ができる。
たとえば、以下のように実行。
追加

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -S localhost -E -ssadd -sstype p

削除

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -S localhost -E -ssremove

その他詳細はヘルプを見る。

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe /?
SQL Server に ASP.NET 機能をインストールおよびアンインストールするための管理ユー
ティリティです。
Copyright (C) Microsoft Corporation. All rights reserved.
                                -- 一般的なオプション --
-?                このヘルプ テキストを表示します。
-W                ウィザード モードです。(別のパラメータが指定されていない
                  場合の既定値です。)
                               -- SQL 接続オプション --
-S <サーバー>         操作する SQL Server インスタンス (SQL Server 7.0 以上)
                  です。
-U <ログイン ID>      認証する SQL Server のユーザー名です。-P オプションが
                  必要です。
-P <パスワード>        認証するための SQL Server パスワードです。-U オプション
                  が必要です。
-E                現在の Windows 資格情報で認証します。
-C <接続文字列>        接続文字列です。ユーザー名、パスワード、およびサーバー名
                  を指定する代わりに、SQL Server
                  接続文字列を指定
                  します。文字列は、指定されていない限り、データベース
                  名を含むことはできません。
-sqlexportonly <ファイル名>
                  指定された機能を追加または削除するための SQL スクリプト
                  ファイルを生成しますが、実際の操作は行いません。次のオプ
                  ションと共に使用することができます:
                  -A、-R、-ssadd および -ssremove
                           -- アプリケーション サービス オプション --
-A all|m|r|p|c|w  機能のためのサポートを追加します。複数の値を同時に指定する
                  ことができます。例:
                      -A mp
                      -A m -A p
                  all: すべての機能です。
                  m: メンバシップ
                  r: ロール マネージャ
                  p: プロファイル
                  c: パーソナル化
                  w: SQL Web イベント プロバイダ
-R all|m|r|p|c|w  機能のためのサポートを削除します。複数の値を同時に指定する
                  ことができます。例:
                      -R mp
                      -R m -R p
                  all : すべての機能、およびそれらの機能によって共有される
                  すべての共通テーブルとストアド
                  プロシージャです。
                  m: メンバシップ
                  r: ロール マネージャ
                  p: プロファイル
                  c: パーソナル化
                  w: SQL Web イベント プロバイダ
-d <データベース>       アプリケーション サービスと共に使用するデータベース名
                  です。データベース名が指定されない場合、既定のデータベース
                  "aspnetdb" が使用されます。
-Q                非表示出力モードです。機能を削除するための確認メッセージを
                  表示しません。
                  -- SQL キャッシュ依存のオプション (SQL 7.0 および 2000 用) --
-d <データベース>       SQL 7.0 および SQL 2000 の SQL キャッシュ依存と共に
                  使用するデータベース名です。オプションとして、-C オプション
                  (省略不可能)
                  と共に接続文字列を使用して、
                  データベースを指定することができます。
-ed               SQL キャッシュ依存のため、データベースを有効にします。
-dd               SQL キャッシュ依存のため、データベースを無効にします。
-et               SQL キャッシュ依存のため、テーブルを有効にします。
                  -t オプションが必要です。
-dt               SQL キャッシュ依存のため、テーブルを無効にします。
                  -t オプションが必要です。
-t <テーブル>         SQL キャッシュ依存のために有効化または無効化するテーブル
                  の名前です。-et または -dt
                  オプションが必要です。
-lt               SQL キャッシュ依存のために有効にされたすべてのテーブルを
                  一覧表示します。
                              -- セッション状態のオプション --
-ssadd            SQLServer モードのセッション状態のサポートを追加します。
-ssremove         SQLServer モードのセッション状態のサポートを削除します。
-sstype t|p|c     セッション状態サポートの種類:
                  t: 一時的です。セッション状態データは "tempdb" データベースに
                  格納されます。セッションを管理するためのストアド プロシージャ
                  は "ASPState"
                  データベースにインストールされます。
                  SQL. (既定値) を再起動した場合、データは持続されません。
                  p: 持続です。セッション状態とストアド プロシージャの両方を
                  "ASPState" データベースに格納します。
                  c: カスタムです。セッション状態データとストアド プロシージャ
                  の両方をカスタム
                  データベースに格納します。データベース名を指定しなければ
                  なりません。
-d <データベース>       -sstype が "c" であるときに使用するカスタム
                  データベース名です。

SQL Serverを使用するセッション状態の構成

<configuration>
  <system.web>
    <sessionState mode="SQLServer" sqlConnectionString="Server=localhost;Integrated Security=SSPI;" />
  </system.web>
</configuration>

接続ログイン(Windows認証の場合はIISのワーカープロセスの実行アカウント)に、ASPStateデータベースのdb_ownerデータベースロールが必要。