1

本番サーバー(CentOS5.4およびphp5.3.5)でこのエラーが発生します:

警告:include_once(PharData.php):ストリームを開くことができませんでした:146行目の/var/www/ZendFramework/library/Zend/Loader.phpにそのようなファイルまたはディレクトリはありません

警告:include_once():インクルードのために「PharData.php」を開くことができませんでした(include_path ='/ var / www / fw:/ var / www / vmms:/ var / www / ZendFw / library:。:/ usr / share / pear :/ usr / share / php')146行目の/var/www/ZendFw/library/Zend/Loader.php

致命的なエラー:40行目の/var/www/vm/app/Backup.phpにクラス「PharData」が見つかりません

そしてこれは失敗するコードです:

$phar = new PharData($imageBackupFile);
$phar->buildFromDirectory($imageDir);
Logger::info("Image directory backed up to: $imageBackupFile");

このコードは自分のコンピューターで正常に機能しています。

PharDataはデフォルトでphp5.3+に含まれている必要があります...

ご協力いただきありがとうございます!


アップデート :

私はZendAutoローダー機能を使用して、このコードを使用して適切なphpファイルをロードしています:

require_once("Zend/Loader/Autoloader.php");
$autoloader = Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

Zendオートローダーが実行していinclude_once(PharData.php)ます。

4

1 に答える 1

3

PharがデフォルトでPHP5.3にバンドルされているからといって、必ずしもインストールに含まれているとは限りません。を使用してPHPをビルドする場合./configure、を渡し--disable-pharてPhar拡張機能を無効にすることができます。

これを確認するには、次のスクリプトを実行します。

<?php
  phpinfo();
?>

最初に表示されるセクションの1つがセクションになりますConfigure Command。このセクションを確認して、--disable-pharスイッチが存在するかどうか、およびPharページに一般的なセクションがあるかどうかを確認してください。

存在しない場合は、ホストに連絡して有効にする必要があります。ただし、サーバーの設定方法によっては他のユーザーに影響を与える可能性があるため、彼らがあなたに代わってそれを行わない可能性は十分にあります。これが自分のマシン上にある場合は、そのスイッチなしでPHPを再構築するか、PECLから手動でPharをインストールする必要があります(これが5.3でも機能するかどうかはわかりませんが、なぜ機能しないのかわかりません)。

于 2011-10-21T09:27:37.480 に答える