2012年06月15日

Apache2.2 でのRewriteRuleの設定方法

携帯サイトを作成中ですが、外部CSSに対応しているPCを含むすべての端末と、対応していない端末の多いドコモ端末をサーバ側で振り分けてそれぞれに適したページを表示させようと考えています。
そのためにはまず、Webサーバ(ここではApache)で mod_rewrite を有効化する必要がありますので、その手順について。
.htaccess の振り分けの書式についてはテスト終了次第書きます。
※mod_rewrite.soがインストール済みのものとして記述します。

1.httpd.conf を開く
2.
#LoadModule rewrite_module modules/mod_rewrite.so
 という行を探し、行頭の#を削除
3.同じくhttpd.conf内で以下を探す
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride None

4.上の
AllowOverride None

 を
AllowOverride All

 に書き換え
5.Apache を再起動

一応これで大丈夫だと思います。
それにしてもドコモの旧タイプのブラウザには本当に苦労させられてます。


posted by nambei-x at 14:57| Comment(0) | TrackBack(0) | PC・ネット関連 | このブログの読者になる | 更新情報をチェックする

2012年04月03日

ApacheとTomcatの連携〜URLの最後にスラッシュがないときに"Not Found"になる現象の回避方法

2012/4/6 追記

表題の件ですが、Apache の httpd.conf に追記する内容をちょっと修正するだけで、目的が達成できました。

参考サイト:自宅サーバー Apacche2.2 + Tomcat5.5 の連携(補足)

やり方は、GroupSessionのサポートページ 「インストールガイド(Tomcat と Apache(連携))
に書いてある追記部分

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
<Location /gsession/>
ProxyPass ajp://localhost:8009/gsession/
</Location>

の一部のスラッシュを消します。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
<Location /gsession >            ←ココと
ProxyPass ajp://localhost:8009/gsession   ←ココ
</Location>


これだけで、URLの最後にスラッシュがない場合でもGroupSessionのログイン画面に移行しました。

それでオッケーとなると、以下の方法は何とも間抜けなんですが、「一生懸命考えたんだね〜」と笑えて来ますんで、晒しておきます。


-------------------------------------------------------------------------------


現在、Windows Server 2008 R2 上で フリーのグループウェア "GroupSession4" を動かしています。

GroupSessionはTomcat上で動作しており、Tomcat単体でWebサーバとして機能しますので、手順通りインストールすれば、

http://サーバのアドレス/gsession:8080/

にアクセスして問題なく使用できます。

しかし、より安定的に使うためにはWebサーバを別に用意したほうがいい、という記事を読みましたので、今回Apache2.2 をインストールし、Tomcat と連携させてみました。Apache に交通整理をお願いする形ですね。

Apache の導入〜 Tomcat との連携はびっくりするほど簡単でした。
Apache をインストール後、GroupSession の公式サポートページに書かれていた通りに httpd.conf に追記してやればそれで終了です。

ネットワークの外からアクセスできないようにファイアウォールの設定をしてやって、内部の別の機械から

http://サーバのアドレス/gsession/

でアクセスできるようになりました。



この後少々問題が。

" http://サーバのアドレス/gsession/ " ならば問題ありませんが、
" http://サーバのアドレス/gsession " だと "Not Found" になってしまう。
つまり、URLの最後にスラッシュがないとアクセスができない状態です。

これを回避するために httpd.conf に追記してみたり、Tomcat側のWeb.xmlを見てみたりしたんですが状況変わらず。

error.log にはこうありました。

[Tue Apr 03 14:22:02 2012] [error] [client xx.xx.xx.xx] File does not exist: C:/Apacheのディレクトリ/htdocs/gsession


これは「トップディレクトリに gsession というファイルもフォルダもないよ」ということだと判断しました。

それならばここ、htdocs ディレクトリ内に gsession/index.html を作成し、ここから Tomcat ディレクトリ内の webapps/gsession/index.html にリダイレクトするようにすればいいんじゃね?
(GroupSession では、この index.html からログイン画面へリダイレクトされます)
と考え、やってみることにしました。

body が空のhtmlファイル
htdocs/gsession/index.html のヘッダに
<meta http-equiv="refresh" content="0 ; URL=http://サーバのアドレス/gsession/">
を追記し、保存。

Apache を再起動して、" http://サーバのアドレス/gsession " にアクセスしてみたところ、見事 GroupSession のログイン画面が表示されました。

Apache の access.log には、きちんと転送されたことが記録されていました。

xx.xx.xx.xx - - [03/Apr/2012:15:00:16 +0900] "GET /gsession HTTP/1.1" 301 237
xx.xx.xx.xx - - [03/Apr/2012:15:00:16 +0900] "GET /gsession/common/cmn001.do HTTP/1.1" 200 4573


・・・もっと簡単な方法があると思うんだけどな〜。かなり恥ずかしいやりかたですね(^_^;)

posted by nambei-x at 15:47| Comment(0) | TrackBack(0) | PC・ネット関連 | このブログの読者になる | 更新情報をチェックする

2011年12月16日

Windows Server 2008 R2 プロキシ環境下でWindows Updateの自動更新を有効にする

現在面倒見させてもらっている Windows Server 2008 R2 なんですが、ポリシー上、基本的にはOSは常に最新の状態にアップデートしておくことになっています。

Windows Updateを自動更新にしておけば何の問題もなくアップデートされるはずなんですが、現状ではWindows Updateの設定を「更新プログラムを自動的にインストールする(推奨)」にしているにもかかわらず、実行されません。

イベントログを確認すると、2日に1度程度の頻度で

「接続の失敗:自動更新サービスに接続できないため、更新プログラムをダウンロードして、指定された時間にインストールすることができません。接続を再試行します。」

という警告メッセージが記録されます。

20111216_2185773.png

仕方なく、不定期にログインしてはWindows Updateを手動で確認している状態です。ああ、メンドクサイ。


この環境下で「接続に失敗」のアラート等が発生した場合、まず疑うのがプロキシの設定でして、実際そちらに見当をつけて対処方法をWEBで探してみたんですが、探し方が悪いせいか、どうもうまくいきません。

下のサイトの記述を参考に、インターネット オプションのセキュリティレベルを変更してみたりしたんですが、状況変わりませんでした。

参考サイト:
Microsoft サポート - プロキシ サーバーまたはファイアウォールを経由して Windows Update を使用すると、エラー メッセージが表示される

以下、同ページより引用。

ActiveX ファイルがコンピュータに正しく渡されるようにするには、Microsoft Internet Explorer のセキュリティ設定を [中] 以下に設定する必要があります。セキュリティ設定を低くしても、その設定は Internet Explorer の信頼済みサイト ゾーンに一覧表示されている Web サイトのみに影響します。他のすべての Web サイトに対する現在のセキュリティ設定については、現在の構成が保持されます。

Internet Explorer でセキュリティ設定を行うには、以下の手順を実行します。

1. Internet Explorer で、[ツール] メニューの [インターネット オプション] をクリックし、[セキュリティ] タブをクリックします。
2. [信頼済みサイト] をクリックし、[サイト] をクリックします。
3. [このゾーンのサイトにはすべてのサーバーの確認 (https:) を必要とする] チェック ボックスをオフにします。
4. [次の Web サイトをゾーンに追加する] ボックスに http://*.microsoft.com と入力し、[追加] をクリックします。
5. [OK] をクリックします。
6. [レベルのカスタマイズ] をクリックし、以下の項目の [有効にする] をクリックします。
   * 署名済み ActiveX コントロールのダウンロード
   * 未署名の ActiveX コントロールのダウンロード
   * スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行
   * ActiveX コントロールとプラグインの実行
   * スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行
7. [OK] を 2 回クリックして、[インターネット オプション] ダイアログ ボックスを閉じます。




で、ようやくたどり着いた答えが下記のサイトに記述されている手順です。

自動更新について - 龍谷大学理工学部情報ネットワークシステム(RINS)

netsh コマンドを使用して WinHTTP プロトコルに インターネット接続と同様のプロキシを設定する、ということみたいです。



コマンドプロンプトを起動。

C:\Users\Administrator>netsh winhttp show proxy

現在の WinHTTP プロキシ設定:

直接アクセス (プロキシ サーバーなし)。


と出ました。

WinHTTP というものが何なのか、これから調べますが、インターネットオプションでのプロキシ設定が、このコンピューターのすべてのインターネット経由での接続に適用されるわけではないんですね。

次にインターネットエクスプローラーに適用されたプロキシ情報を、WinHTTPにも適用します。

C:\Users\Administrator>netsh winhttp import proxy source=ie

現在の WinHTTP プロキシ設定:

プロキシ サーバー: xx.xx.xx.xx(←プロキシサーバのアドレス):8080
バイパス一覧 : 192.168.xx.*;192.168.xx.101;127.0.0.1;


これで設定変更も確認できましたが、念のため、再度 show proxy します。

C:\Users\Administrator>netsh winhttp show proxy

現在の WinHTTP プロキシ設定:

プロキシ サーバー: xx.xx.xx.xx:8080
バイパス一覧 : 192.168.xx.*;192.168.xx.101;127.0.0.1;


この状態でとりあえず様子見しまして、数日経過したところ、先の「接続の失敗」メッセージは記録されず、またAdministratorがログインしていない状態での更新ファイルのダウンロードも正常に実行されていることが確認できました。

20111216_2185774.png




posted by nambei-x at 22:49| Comment(0) | TrackBack(0) | PC・ネット関連 | このブログの読者になる | 更新情報をチェックする

2011年11月01日

Windows7でセーフモードが機能しない場合の対処法

さっきWindows7上で一太郎のインストールに気がかりなところが発生したため、システムの復元を行いたくてセーフモードでログインしたんですが、

「エクスプローラー は動作を停止しました
問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合はWindowsから通知されます。」


というウィンドウが開いて、まったく操作不能になってしまいました。
「やっぱりインストール失敗だ!」と仕方なく Ctrl+Alt+Del でセーフモードを脱出、通常モードで検索を行った結果、意外な答えが・・・!

(割と有名な現象のようなので、以下の内容は自分自身に対する備忘録とします)

これは Windows7 に Office 2007 sp2 をインストールしたPC上で発生するものだそうで、Office 2007 sp2 と Office IME 2007 とのバッティングによるものだそうです。
Microsoft からも修正パッチがリリースされていますが、今回は標準の日本語入力システムを Microsoft IME に変更することで問題を解決しました。

1.言語バーを右クリックして「設定」をクリック

20111101_2157904.png


2.「全般」タブの「既定の言語」で「日本語(日本) - Microsoft IME」を選択

20111101_2157905.png


今回はこの時点で Microsoft IME を選択できなかったため、「インストールサービス」の「追加」をクリックして Microsoft IME にチェックを入れて追加したのち、既定の言語にMicrosoft IME を選択しました。

3.このままでは言語バーのアイコンがなぜか Office IME 2007 のままだったので、手順1〜2を繰り返し、Office IME 2007 のチェックを外しておきました。

20111101_2157906.png


4.これでアイコンが Microsoft IME のものに変更

20111101_2157907.png


5.再起動後 F8 キーでセーフモードでログイン、今回はすべて正常動作し、システムの復元も無事完了しました。

20111101_2157908.png




その後日本語入力システムを再度 Office IME 2007 に戻した状態でセーフモードに移行してみると、今度はエクスプローラーのエラーが発生しません。
言語バーのアイコンは自動的に Microsoft IME に変更されていました。

どうやら、当方の環境上では、Microsoft IME が選択できない状態(インストールされていない状態)だったために、セーフモードでの障害が発生した模様です。
逆に言えば、現在は使用していなくても、Microsoft IME が選択可能な状態であれば問題なくセーフモードに移行できる、ということになります。

参考サイト:
セーフモード実行中「エクスプローラーは動作を停止しました」のメッセージ - Windows 7 - 教えて!goo
日本語入力システム (日本語) 2007年修正プログラム パッケージの説明: 2009 年 8 月 14 日 - Microsoft サポート
レッツ! Windows 7 - トラブルシューティング編(1) セーフモードで起動するとエクスプローラがクラッシュする | マイコミジャーナル



posted by nambei-x at 19:46| Comment(0) | TrackBack(0) | PC・ネット関連 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。