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

Sakamoto php-users@php.gr.jp
Wed, 5 Feb 2003 22:51:20 +0900


RisaPapa(坂本)です。

CygwinでのドライブはC:\の場合はsh で
/cygdrive/c のようにして呼び出すことが出来ます。
例えばC:\usr\bin\perl.exeにインストールされている
Perlの場合 /cygdrive/c/usr/bin/perl のように
呼び出して処理されたデータをCygwinで受け取って
Cygwinサーバで使うことが出来ます。
(Cygwinのmountについて調べてみてください。)

>>shbang(#!c:/php4/php.exe) を指定して動かそうとすると
まずshコマンドプロンプトで 
/cygdrive/c/php4/php -i
をたたいてみて出力されるかどうかを確認して
Bang Lineを変更してみてください。 

>>ScriptAlias /php/ /var/www/php/
>>Action application/x-httpd-php /php/php.exe
>>AddType application/x-httpd-php .php

ScriptAlias /php/ /var/www/php/
Action application/x-httpd-php /cygdrive/c/php4/php.exe
AddType application/x-httpd-php .php

のように指定してみてください。
この部分はShaneという人がPHPエンジンのソースを
多く作成(FastCGIとの連動との関係で)しているので
問題があれば www.caraveo.com/fastcgi/ のサイトを
参照して直接メールを出せばより良い答えを得ると思います。
親切にメールの返事を書いてくれると思います。
(IIS security token の Impersonateなども関連があります)

>>Cygwin の Apache で コンパイル済みのスナップショット版 php を
>>使うという考えが変なのでしょうか。

どのOSを使ってもOSやシステムに関する知識があればどれを
使っても構わないと思います。私の場合はほとんどすべてのOSを
構築してみた経験がありますが、ほとんど同じような気がします。
実際にCygwinの場合はGNUソースすべてをコンパイルして
インストールしてみたりコンパイラーやヘッダファイルなどを修正して
変更したりSFIOを使用してIOを変更したCygwinを作って
みたりしてもOSの次元ではほとんど同じような気がします。

CygwinのApacheも十分安定しています。Win2000の場合は
性能の面でも総合的にはWin32版のApacheより良いような
気がします。PHPの場合Win2000ではモジュールとして
運用すると不安定でメモリー(リーク)の問題が時々起こりますが
Cygwinではより安定した運用ができると思います。Win32では
スピードやシステムの負荷などが気にならないのならば
CGIでの運用をお勧めします。

Cygwinもバージョンによってかなり違ってきますが、私の場合は
最近のバージョンはあまり好みません。GCCコンパイラーも
3.XXバージョンは非常に不安定でした。gcc-2.95.3バージョンを
使った方が無難だと思います。2001年の末に出たバージョンが
気に入りますが、今は新しいものに変わっていて見つけるのが
大変だと思います。多分MySQLサイトでダウンロードできる
Cygwinもありますが、手に入らなかったらそちらを使う手もあります。
または現在のバージョンのCygwin本体のみインストールして
gcc-2.95.3バージョンで再構築する方法もありますが結構大変です。

CygwinかWin32かよりもApache/Perl/Phpなどのバージョンに
よる信頼性のほうがもっと大事なような気がします。どんどん
バージョンアップしていくにつれて信頼性や安定度に私は疑問を
持つようになりました。Phpの場合もPHP4.1.2バージョンを
過ぎた時点からだんだん複雑化していて色んな問題やスピードが
だんだん遅くなるということにいらいらしたりもします。

Apacheの場合も私はWin32でもUnixでも自分で1.3.9バージョンを
修正したものをまだ使っています。理由は新しいバージョンはスピードが
かなり遅くて複雑でシステムに負荷が多くかかるです。
インターネットが多く普及していて誰でも簡単にオープンソースの
開発に参加できる環境が容易にできることから5,6年前に比べて
オープンソースで開発されたソフトの品質がだんだん悪く
なっていくような気がしてなりません。Perlにおいても5.0005_3バージョンが
一番安定した動作をします。私は主に高負荷システム用の
FastCGIによるCやPerlでアプリケーション(サーバ)を個人で
開発をしていますが、Perl5.6.Xや5.8.0などはメモリリーク問題や
スピードが20%以上遅いこともありました。

PHPにおいてはPHPは多くのGNUライブラリに依存していて
使用する各ライブラリのバージョンによっても異なる動作をするし
場合によってはWin環境でも再コンパイルして使わないといけない
場面が多くあります。特に気になるのがビルド時に使うライブラリの
バージョンのポリシがなくて自分でビルドする時には資料を集めるのも
大変なこともあります。php-1.99cバージョンから今までの
すべてのバージョンをコンパイルしてテストしてみましたが
やはりPHP4よりPHP3が好きです。自分でWIN環境でPHPを
ビルドして使って見たいのならばMSVCで私がコンパイルして
パッケージしたPHPコンパイル用のライブラリを下記のURLで
win32buildディレクトリ(php_build.zip)を参照してみてください。
http://www.boreal-net.com/pub/
私はどうしても本家でPHPのWIN32用にリリーズされるバイナリが
まだ信頼できないので他のものもほとんどそうですがソースがあれば
WIN32でも自分でビルドしたものしか使わなくなりました。
MySQLのWIN32用のバイナリの場合はかなり信頼しています。

参考になったでしょうか。
結局は自分の考え方によって違うと思いますが、、、、、

RisaPapa

・・・日本語(母国語ではないので)に間違いがあったらすみません・・・

----- Original Message -----
From: "NAKAMURA Takeshi" <1yen@sh.rim.or.jp>
To: <php-users@php.gr.jp>
Sent: Wednesday, February 05, 2003 6:33 PM
Subject: [PHP-users 13054] Cygwin の apache でスナップショットの php を使う
方法は


> 仲村です。
>
>
>  http://snaps.php.net/ から Win32 4.3.x-dev をダウンロード、
> Cygwin の apache から、CGIで実行しようとしています。
> (apache は SYSTEM 権限で実行)
>
>
>  shbang(#!c:/php4/php.exe) を指定して動かそうとすると
> http://localhost/~nakamura/cgi-bin/script
> ===== ブラウザの表示 =====
> Security Alert! The PHP CGI cannot be accessed directly.
>
> This PHP CGI binary was compiled with force-cgi-redirect enabled. This
> means that a page will only be served up if the REDIRECT_STATUS CGI
> variable is set, e.g. via an Apache Action directive.
> =========(以下略)=========
>  と、ブラウザに表示されます。
>
> このメッセージから http://jp.php.net/manual/ja/security.cgi-bin.php にある
>  マニュアルを見てみると「ケース 2: --enable-force-cgi-redirect を使用」に
> あたるようなので
> ===== /etc/apache/httpd.conf =====
> ScriptAlias /php/ /var/www/php/
> Action application/x-httpd-php /php/php.exe
> AddType application/x-httpd-php .php
> ==================================
>  として、cygwin の $HOME/public_html と、
> windows の %USERPROFILE%/public_html に phpスクリプトを置いてみましたが
>
> http://localhost/~nakamura/script.php
> ===== ブラウザの表示 =====
> No input file specified.
> ==========================
>  と、phpは起動されるようなのですが ファイルを見つけることが
> できないようです。(apacheのエラーログには何も出ず アクセスログに 404が残
る)
>
>  悪あがきでケース3の
> ===== c:\WINNT\php.ini ===== (%SYSTEMROOT% = C:\WINNT)
> user_dir = public_php
> ============================
> を追加してみましたが No input file specified のままでした。
>
>
>  Cygwin の Apache で コンパイル済みのスナップショット版 php を
> 使うという考えが変なのでしょうか。
> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----
+
>  関西沖縄青年の集い がじまるの会 手伝い 一人だけの勝手に神奈川支部
>  仲村 武 <1yen@sh.rim.or.jp>
>
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>