Category Archives: 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開発環境構築 http://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; ) OSを再起動 ←ここ重要   6、Apacheを起動 D:\Java\xampp\xampp-control.exeを実行。 XAMPP Control Panel Applicationにて、ApacheをStart。 ブラウザでhttp://localhost/にアクセス。XAMPPのページが表示されることを確認。   7、PHPのサンプルアプリを作成 D:\Java\eclipse\eclipse.exeを実行。 ファイル→新規→PHPプロジェクトにて、プロジェクト名はphpにする。 phpプロジェクトにて、ファイル→新規→PHPファイルを作成、ファイル名はdbaccess.phpにする。 Oracle DBのIPは192.168.1.100、サービス名はHOGEDB、キャラクタセットはAL32UTF8の場合。 スキーマ名はHR、パスワードはhogehogeの場合。 HRスキーマの作成は、ここを参照されたい。 [php] Oracle DB接続テスト Oracle DB接続テスト

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 4 TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 4 tasklistでみると4はなんとSystem・・。これは止められん。 C:\Users\hogehoge>tasklist イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 24 K System 4 Services 0 2,880 K smss.exe 352 Services 0 1,104 K ググり、Windows 7で80番ポートが使われている事例としては、以下のような事例が報告されていた。 ・うっかりIISをインストールし、起動している。 ・Web Deployment Agent Serviceが起動している。 ・SQL Server Reporting Servicesが起動している。 ・Windows Remote Managementが起動している。 いずれも、私の環境には該当しない。 さらにググり、犯人はWindows 7のBranchCacheであることがわかった。 […]

Also posted in Windows | Comments closed