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

Sakamoto php-users@php.gr.jp
Fri, 7 Feb 2003 14:57:10 +0900


RisaPapa(坂本)です。

久しぶりにCygWinをすべてインストールしてKDEなどで遊んでみました。
ずいぶん以前と変わっていて結構戸惑ったのでとりあえずすべて
ダウンロードしてインストールボタンをクリックしておいて映画を
見終わったらインストールが終わっていました。

とりあえず仲村さんの話題に関するテストしてみたっかたので、
Apache/Php/Perlなどをコンパイルしてインストールする
SHスクリプトを作成して自分で新しくコンパイルして
インストールしたものとダウンロードしてインストールしたものを
テストしてみました。バージョンはApache-1.3.27/Php-4.3.0/Perl-5.6.1と
MySQL-3.23.55で自分で作ったPERL・PHP掲示板やPHPBB・NUKE
などでテストしました。

結果はちゃんと動きましたが、トリックが必要でした。
WIN32側で /cygdraive/c と認識してくれないので
CygwinでのWWWディレクトリと同じものをC:¥ディレクトリにも
作成しておくことでCygwinを黙らせる方法で動かして見ました。
しかしすべてのCygwin側のモジュールなどが /cygdraive/c を
認識しているわけではありません。例えばApacheのモジュールの
mod_mime_magicなどです。

作動テストの phpinfo(); の画面は下記のURLにあります。
http://www.boreal-net.com/pub/etc/cygwinphpinfo.html

設定は下記のようにしてテストしましたので参考にしてください。

# PHP Installed Directory: C:\php
# Cygwin DocRoot: /var/www/htdocs
# Copy of Cygwin DocRoot: C:\var\www\htdocs
# to cheat Cygwin....


ScriptAlias /php/ "/cygdrive/c/php/"
# In case of FastCGI
#FastCgiServer /cygdrive/c/php.exe -processes 2
<Location /php/php>
   Options ExecCGI
   SetHandler cgi-script
# In case of FastCGI
#   SetHandler fastcgi-script
</Location>
AddType application/x-httpd-php .php
Action application/x-httpd-php /php/php
# In case of FastCGI
#AddType application/x-httpd-fastphp .php
#Action application/x-httpd-fastphp /php/php.exe

問題なのでPHPやPERLのパスなので
ちゃんとC:\ ディレクトリを/cygdrive/c のように認識するように
ソースを修正して再コンパイルすれば多分Win32用の
ものも十分Cygwin用として使えるのではないかと思いました。
PHPの場合はphp-4.3.0/sapi/cgi/cgi_main.c ファイルで
path_translated部分がこれと関係があります。
これに関しては以前この部分のソースを作成した人とちょっと
考え方の違いでもめたこともあったのですが、彼の主張で
現在のBang Line からPHPを動かせなくなりました。
私はPerlな人間で #!/usr/bin/perl がないとちょっと
さびしい感じがしますが、、、、

それからやはりPERLもgcc-2.95.3でコンパイルしたものが
やや安定して作動しました。gcc-3.2-3でコンパイルしたものと
ダウンロードしてインストールしたPerl-5.6.1もエラーが多く出て
使い物になりませんでした。

では。

RisaPapa


----- Original Message -----
From: "NAKAMURA Takeshi" <1yen@sh.rim.or.jp>
To: <php-users@php.gr.jp>
Sent: Thursday, February 06, 2003 11:24 AM
Subject: [PHP-users 13088] Re: Cygwin の apache でスナップショットの php を
使う方法は


> 仲村です
>
> 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 に逃げてきたんですが(^^;
>
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>