2009-03-13 4 views
6

コマンドラインPHPクライアント(WindowsではPHP 5.2)からPHPスクリプトを実行すると、奇妙な5〜7秒が一時停止します。PHPコマンドラインインターフェイス(mysql/mysqli拡張機能に関連する)で5秒間が不安定になる

この一時停止中に、PHPスクリプトはしばらくの間「フリーズ」してから、コマンドプロンプトに戻ります。これは重要なCPU時間を使用していない、それはいくつかの遅延を待っているようだ。

PHP.iniを試した後、私はこれをmysqlまたはmysqli拡張が有効になっているという事実に絞り込んだ。これらの拡張機能が両方とも無効になっていると、迷惑な一時停止はなく、PHPスクリプトはほんの数ミリ秒で終了します。

私が使用しているコマンドは、次のとおりです。

%1は、PHPスクリプトです
"C:\Program Files\PHP\php.exe" -f %1 

休止がまだ実行されているPHPスクリプトは基本的に空の場合でも発生します。

<?php 

?> 

あなたはこの一時停止の原因を知っていますし、どのように私はまだPHPのためのMySQLやmysqliのサポートを可能にしながら、それを削除することができますコマンドライン?

+0

問題はWindows上の現在のPHP 5.3で修正されています。 – thomasrutter

+0

このスレッドはありがとうございます、それは何週間も私を迷惑にしていた私の問題を解決しました! IISとPHPを使用しているWin2008サーバーでこの問題が発生しました。幸いなことに、私たちはmysqlを必要としないので、この拡張機能を無効にしました。 Jens –

+0

あなたのコードでMySQLデータベース関数を使用していますか?永続的な接続を使用していますか?それらをオフにすると、それは消えますか? –

答えて

6

これはbug in mysqlです。最新のlibmysql.dll(5.1.31以降、いくつかの古いバージョンも動作します - 第2のリンクを参照)を入手して解決できます。実際に使用されているlibmysql.dllであることを確認し、パスに他のlibmysql.dllがないことを確認してください。詳細はphp issueを参照してください。

+0

ありがとうございます。私のPHPディレクトリにあるlibmysql.dllをアップグレードすると、遅延がほぼ完全になくなりました。興味深いことに、mysqlサポートを無効にするのに比べて少し遅れます(数百ミリ秒)。しかし、迷惑要因は解決されます。 – thomasrutter

3

私はまた、Windows 7 64ビット環境下でコマンドラインからPHPを実行する際に迷惑な2秒の遅延を経験しました。
php.exeに(v5.3.5)ZendServer Community Edition

に同梱されてこのバージョンは素晴らしく速かった:
php.exeに(v5.3.6)に同梱

このバージョンでは、遅延していましたEasyPHP

(古代のスレッドをぶつけ申し訳ありませんが、うまくいけば、これは、この問題をグーグルで他の人を助けます。)

4

私にとっては(Mac OS XのZend Server CE)、imap exetensionが原因でした。これを無効にすると問題が解決しました。

AnoyoneはPHP拡張バイセクトスクリプトを書いてみたいですか? :)

+1

ありがとう!これは、Mac OS X MavericksのMAMPを使って私の最終段階で修正しました。php-cli設定ファイルの "extension = imap.so"という行を削除して拡張機能を無効にしました:/Applications/MAMP/bin/php/php5.5.10 /conf/php.ini – jmserra

+0

同じです!面白い、これは2年後の問題ですが、imap.soを無効にすると私のためにcliの遅延も解決されました。 (MAMP PRO 3.0/OSX Yosemite) –

関連する問題