備忘録

Windows Server 2003 (IIS6)を利用して、Xoopsを動かしてみる

Windows Server 2003 R2上でXoopsサイの構築を行った時のメモ
phpとmysqlは2007/7の時点でWindowsバイナリの最新版を利用しました。

php 5.2.3
MySql 5.0.45
  1. IISをインストールする。 サーバーの役割管理からインストールします。

  2. phpのインストールと設定
    1. phpはZIPアーカイブ版をHPよりダウンロードします。ダウンロード先はこちら
      ダウンロードしたZIPファイルを展開し、展開されたフォルダをphpにリネームしC:\へコピーします。
      ++phpフォルダのNTFSアクセス権の設定を変更します。
      ユーザーEveryone読み取りと実行フォルダの内容の一覧表示読み取りアクセス権を許可します。
      ++phpフォルダ内のphp5ts.dllphp.ini-distファイルをc:\windowsフォルダにコピーします。
      libmysld.dllファイルもC:\windows\system32へコピーします。
      コピーしたphp.ini-distファイルをphp.iniに変更します。
      ++メモ帳などでphp.iniファイルを編集します。編集箇所は下記になります。
      include_path ".;c:\php\includes;c:\php\PEAR"
      doc_root = "c:\Inetpub\wwwroot"  ← IISのドキュメントルートがデフォルトの場合
      
      extension_dir = "c:\php\ext"
      extension=php_gd2.dll ← 画像関係のDLL。必須ではない
      extension=php_mbstring.dll
      extension=php_mysql.dll
      
      mbstring.language = Japanese
      mbstring.internal_encoding = SJIS
      mbstring.http_input = auto
      mbstring.http_output = SJIS
      mbstring.encoding_translation = Off
      mbstring.detect_order = auto
      mbstring.substitute_character = none;
      mbstring.func_overload = 0
      
    2. IIS側でphpファイルが動作するように設定します。 管理ツール→IISマネージャを起動します
      webサービスの拡張をクリックし、新しいwebサービス拡張を追加をクリックします。
      拡張名PHPを記入し、必要なファイルで追加をクリックします。
      ファイルのパスでc:\php\php5isapi.dllを選択します。
      拡張の状態を許可済みに設定するにチェックをします。

      次にphpを動作させるサイトのプロパティを開きます。(デフォルトでは規定のWebサイト)
      ホームディレクトリタブの構成をクリックします。
      アプリケーションの拡張子で追加をクリックします
      実行可能ファイルにc:\php\php5isapi.dllを入力し、拡張子は.phpを入力しOKをクリックします。
    3. 全ての設定変更が終了したら、OSの再起動行います。(WWWサービスの再起動でも可)
    4. phpの動作テスト メモ帳等で、下記内容を記述したファイルを作成します。
      <? php 
      phpinfo();
      ?>
      
      phpinfo.phpなど適宜名前をつけて、IISのドキュメントルートフォルダに保存します。
      IEなどのブラウザでinfo.phpファイルにアクセスし、phpの情報画面が表示されることを確認します。
      mbstringMySqlの項目があることを確認します。
    • 当方の環境でのトラブル1 確認用ファイルinfo.phpのNTFSアクセス権を変更しないと,401 ページを表示する権限がありませんが表示されました。
      インターネットゲストアカウントに読み取り権限を与えているのに権限がないと表示されます。
      そこで一度フルコントロール権限を与え、再度読み取りに変更するとで回避できました。
    • トラブル2 当方のイントラ環境でホスト名にアンダーバー_を利用しておりました。
      しかしxoops側の仕様なのかバグなのか、アンダーバーを含むFQDN名を使用すると、管理者画面にアクセスできませんでした。
      アクセス権がないと言ってアクセスできない。
      アンダーバーのホスト名を利用するのはやめましょう

  3. mysqlのセットアップ
    1. インストーラ版をダウンロードし、セットアップを行います。ダウンロード先はこちら
      インストーラは全て次へをクリックして進めます。
    2. セットアップ終了後コンフィグレーションウィザードが自動実行されます。
      基本的にデフォルトで進めますが、下記の設定を行います default charactor set日本語を選択
      Include Bin Directory in Wndows PATHにチェック
      Modify Security Settingsでmysqlのrootアカウントのパスワードを入力

上で入力するパスワードはxoopsの設定時に必要になります。

  1. xoopsのインストール
    1. ダウンロードしてきたxoopsのファイルをIISの公開用フォルダにコピーします。
      フォルダやファイルそれぞれにアクセス権を設定しますが、当方では面倒なので、全てのファイルとディレクトリにインターネットゲストアカウントに 読み取り、書き込みのアクセスを許可する設定を行っています。
      (cache,ploads,templates_cフォルダと、mainfaile.phpに書き込み許可をすればよいみたいです)
      特にインターネット上に公開するサーバの場合、セキュリティ上の問題になる場合がありますので、アクセス権は慎重に設定して下さい。
    2. ブラウザから公開するアドレスにアクセスし、xoopsの初期設定を進めます。 データベースは事前に作成する必要はありません。xoopsのインストール中に自動的に作成してくれます。
      データベースへアクセスするアカウントの設定は、mysql側で作成する必要があります。 アカウントroot、パスワードmysqlインストール時入力したパスワードでも可ですが、xoops用データベースを操作できるアカウントを限定する方がよいかもしれません。
      アカウント作成はmysqlのヘルプを参照してください。

IISの仮想ディレクトリ上でのPHP動作について

IIS上で仮想ディレクトリの設定を行い、そのディレクトリでPHPを動かそうとしましたがエラーが発生します。
具体的にはブラウザでURLにアクセスすると404エラーを返されます。
もちろんPHP以外の静的コンテンツには正常にアクセスできます。

原因は仮想ディレクトリで指定したディレクトリ名と、実フォルダ名が違っていた為です。

例:
仮想ディレクトリの名前:inet
実フォルダ名:d:\Inetpub\wwwroot\xoops

どうもPHP側のバグなのか、仕様なのか・・・・
仮想ディレクトリの設定を行う場合は、仮想ディレクトリ名と実フォルダ名を同じにしてみてください。

最終更新:2010年09月20日 22:39