Category: Apache

PHP Startup: Unable to load dynamic library

  XAMPP+Oracle+EclipseのPHP開発環境を構築した際、Oracle Instant Client経由でDBに接続しようとしたのだが、以下のエラーが発生し、Apacheが起動しなかった。 PHP Startup: Unable to load dynamic library ‘D:\java\xampp\php\ext\php_oci8.dll’ – %1は有効なWin32アプリケーションではありません。 色々調べてみた結果、XAMPPは32bit版なのに、Oracle Instant Clientは64bit版を使っていたことが原因だった。 Oracle Instant Clientを32bit版にしたところ、エラーは発生しなくなった。   PHPでociを使ってOracleに接続するための環境設定は、以下を参照。 XAMPP+Oracle+EclipseのPHP開発環境構築 https://www.cyberarchitect.net/blog/archives/1001

XAMPP+Oracle+EclipseのPHP開発環境構築

  Facebookアプリを作って遊ぼうと思い立ち、PHPの開発環境を作ることにした。 DBは、勝手知ったるOracleを使ってみる。 OSはWindows 7 Enterprise SP1(64bit)を使って環境構築したので、その時のメモ。 ※Oracleは構築済みの環境を利用。キャラクタセットはAL32UTF8。   1、Pleiadesをダウンロード http://mergedoc.sourceforge.jp/index.html#/pleiades_distros3.7.html pleiades-e3.7-php-jre_20120225.zipをダウンロードし、解凍。 今回はD:\Javaに展開。   2、XAMPPをセットアップ D:\Java\xamppディレクトリ配下のsetup_xampp.batを実行。 D:\Java\xampp\apache\confのhttpd.confを編集。ServerRootを設定。 #ServerRoot “D:/Java/xampp/apache” ServerRoot “D:\Java\xampp\apache” ←追記   3、Oracle Instant Clientをダウンロード http://www.oracle.com/technetwork/jp/topics/winsoft-087812-ja.html 32bit版をダウンロードし、展開。今回はD:\Java\instantclient_11_2に展開。 4、php.iniを編集 D:\Java\xampp\php\php.iniを編集。 キャラクタセットを追記。 default_charset = “UTF-8” extension_dirを以下に変更。 extension_dir = “D:\Java\xampp\php\ext” php_oci8.dll先頭のコメントアウト解除(「;」を削除) extension=php_oci8.dll   5、OSの環境変数を設定 コントロールパネル→システムの左ペインにて、システムの詳細設定をクリック。 詳細設定タブ下部、環境変数をクリック。 システム環境変数に変数名 NLS_LANG 、値 Japanese_Japan.AL32UTF8 を追加。 変数名 Path の値の先頭に、Oracle Instant Clientのディレクトリを追記。(今回は D:\Java\instantclient_11_2; ).

Windows 7で80番ポートが使用されており、Apacheを起動できない

  Windows 7上でXAMPPを使って遊ぼうと思い、Apache起動前に、念のためIISがインストールされていないことを確認した。 念には念を入れてnetstatしたところ、なぜかport 80がLISTENしている!!! なぜだ。 telnetでlocalhost 80を叩いてみると・・。 [html] HTTP/1.1 404 Not Found Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Mon, 18 Jun 2012 12:37:47 GMT Connection: close Content-Length: 315 Not Found Not Found HTTP Error 404. The requested resource is not found. ホストとの接続が切断されました。 [/html]   netstatしてみると、プロセス番号は4らしい。 C:\Users\hogehoge>netstat -aon | findstr 0.0:80 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING.

Apacheでトップページへのアクセスを特定URIにリダイレクト

  よくある要件。 トップページ(例:http://www.hogehoge.com/)へのアクセスを、特定のページに自動的にリダイレクトさせたい。 おなじみのmod_rewriteを使った例。 以下は、httpd.confの の中に記述すること。 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !test.*$ RewriteRule ^(.*)$ test/$1 [R,L] “http://www.hogehoge.com/”へのアクセスは、”http://www.hogehoge.com/test/”に自動的にリダイレクトされる。 参考: http://blog.dawgsdk.org/weblog/archives/411011 http://web-tan.forum.impressrd.jp/e/2010/01/05/6369  

Apache2.xでOWA(Outlook Web Access)用のリバースプロキシ環境構築

  (注意)実はこの設定でリバースプロキシを構築した際、不具合があってうまくOWAを参照できなかったことがあった。一応、参考までに当時の手順を残しておく。 Apacheでリバースプロキシを構築し、バックエンドのOWA(Outlook Web Access)にリクエストを転送する手順を確認した。 これもWindowsサーバをインターネットに晒したくないための措置。 実装方法はいくつかあるようだが、動作確認がとれたのは以下の方法。 ApacheはCentOS上の2.x系、Exchangeは2003を使用。 ■Apache側の設定メモ Apacheのconfigure時、mod_ssl、mod_proxy、mod_headers等を組み込んだ。 ※mod_headersは後述のRequestHeader設定のため必須 参考までに、動作確認時のLoadModuleは以下のとおり。davやrewriteはOWA連携の観点では必要なし。 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule ssl_module modules/mod_ssl.so LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule headers_module modules/mod_headers.so conf/extra/httpd-vhosts.confは以下のように設定した。 ※httpd.confでIncludeしておくこと。 ApacheはインターネットからのSSLリクエストを受信し(基本認証を使用するため、SSL必須)、バックエンドのExchangeにはhttpでリクエストを転送。 # # Virtual Hosts # # If.