[PHP-users 13088] Re: Cygwin の apache でスナップショットの php を使う方法は

NAKAMURA Takeshi php-users@php.gr.jp
Thu, 06 Feb 2003 11:24:36 +0900


仲村です

From: "Sakamoto" <ringring@zb4.so-net.ne.jp>
Date: Wed, 5 Feb 2003 22:51:20 +0900
Subject: [PHP-users 13065] Re: Cygwin の apache でスナップショットの php を使う方法は

> CygwinでのドライブはC:\の場合はsh で
> /cygdrive/c のようにして呼び出すことが出来ます。
 確か1年か、もう少し前に c: 等のドライレターを受け付けるように
変更されていますので、私の環境でc:\php4\php.exe と実行できます。
また、ブラウザに出力されたメッセージを読む限り このスナップショットの
コンパイルオプションでは sh bang を使った方法は実行できないようです。


> ScriptAlias /php/ /var/www/php/
> Action application/x-httpd-php /cygdrive/c/php4/php.exe
> AddType application/x-httpd-php .php
>
> のように指定してみてください。
 この設定だと、http://HOST/~user/path/to/script.php とアクセスがあった際に
http://HOST/cygdrive/c/php4/php.exe/~user/path/to/script.php
と渡るのではないでしょうか。
 で、http://HOST/cygdrive/c/php4/php.exe  へアクセスが移り
(実際のファイルで言うと DocumentRoot/cygdrive/c/php4/php.exe)
Not Found が出ると思います。

# 書き忘れていましたが、/var/www/php に php.exe はコピーしてあり
# php.exe に必要なdllは c:\php4 へ移動させ c:\php4 に Windows自体の
# PATHを通しています。


今回やろうとしているのは http://jp.php.net/manual/ja/security.cgi-bin.php の
ケース2 と ケース3 の併用になります
 ケース2 で php を呼び出し
 ケース3 で php.exe に渡された URL をOS のパスへ変更
と、両方ないと動きそうに無かったので。

 で、このケース3の部分で実際のファイルの場所と結びつける。
user_dir が見付からないんだろうと何となく思っていても
始まらないので 切り分けのため
===== c:\WINNT\php.ini =====
  doc_root = c:\\cygwin\\var\\www\\htdocs\\
============================
===== /etc/apache/http.conf =====
  ScriptAlias /php/ /var/www/php/
  Action application/x-httpd-php /php/php.exe
  AddType application/x-httpd-php .php
=================================
 と、いう状態で http://localhost/script/script.php
をアクセスすると、php スクリプトが実行されました。(一部漢字が化けましたが...)
access log を見ると 何故か 404 なのですが...
xxx.xxx.63.205 - - [06/Feb/2003:10:39:23 +0900] "GET /script/script.php HTTP/1.1" 404 17222

 これで、user_dir が私の計り知れないところ
(Windows の %HOMEDRIVE%%HOMEPATH% や %USERPROFILE% あるいは
 Cygwin の /etc/passwd 第6フィールド や $HOME でないところ)
を指すらしいということは間違いないと思うのですが、実際にどこなのか
分かりません。

 http://snaps.php.net/ から、ダウンロードできるバイナリの user_dir は
doc_root = c:\\cygwin\\var\\www\\htdocs\\
user_dir = public_html
と設定した場合、http://localhost/~nakamura/script/ は一体どこを指すのでしょうか。
 strings で見てみましたが、分かりませんでした。



>>>Cygwin の Apache で コンパイル済みのスナップショット版 php を
>>>使うという考えが変なのでしょうか。
>
> どのOSを使ってもOSやシステムに関する知識があればどれを
> 使っても構わないと思います。
 その知識を持ってないわけですね(^^;

> 私の場合はほとんどすべてのOSを
> 構築してみた経験がありますが、ほとんど同じような気がします。
 そうなんですか。VMS に TCP/IP すらインストールできなかった私としては(^^;
# サポートに聞くと「ライセンスはある」って言うんですが
# インストールすると「ライセンスがない」と言われて動かなくて...
# 結局 9600のモデムで 40分ほどかけて kermit

 フリーの Cygwin だけで、DLLを作る方法が(あって、それが)分かれば自分で
コンパイルしてもいいんですが、apache に全部組み込む以外手が無いとなると
用途がお遊びなわたしは 面倒 & 遅いPCでは手を出したくなくなります...
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+
 関西沖縄青年の集い がじまるの会 手伝い 一人だけの勝手に神奈川支部
 仲村 武 <1yen@sh.rim.or.jp>
# P133 なFreeBSD を壊してしまい、またネットワークに繋がらないように
# なってしまったので、Cygwin に逃げてきたんですが(^^;