1

現在、PHP 5.3 ホスティング環境では、「Zend Guard Loader」拡張機能をインストールして使用し、Zend Guard でエンコードされたファイルを処理および実行する必要があります。Zend Optimizer (PHP 5.2) で使用するためにエンコードされたファイルを実行できませんでした。

これに対する回避策はありますか?

4

3 に答える 3

0

そうは思いません...そのため、php 5.2の使用にもこだわっています。

「Zend Guard Loader」を使用して zend でエンコードされた 5.2 スクリプトを実行したい場合は、スクリプトを再度エンコードするために、より多くのお金を払い、新しいバージョンを購入する必要があります.... 悲しい.

于 2011-11-14T02:59:47.750 に答える
0

私にとってうまくいった唯一の方法は、phpバージョンをチェックするif条件でzendガードローダーが見つからない場合に表示されるZend Guardsメッセージの代わりにphp 5.2ファイルを含めることでした。汚れていますが、機能していますが、まだ 2 つのファイルが存在する必要がありますが、保護されていないコードでローダーがそれらを切り替える必要はありません。

于 2011-11-18T03:27:43.213 に答える
0

Zend Guard/Optimizer/Loader のコンテキストで Encoding と Runtime に答えるには、完全に一致する必要があります。受け入れられた答えは正しくありません。PHP 5.2 にロードされたオプティマイザーで PHP 5.3 でエンコードされたファイルを実行する調整はありません。

コードの更新時にエンコード プロセスをスクリプト化またはバッチ化すると、2 つのターゲット バージョンを維持するのが非常に簡単になります。ソースのエンコーディングを zendenc52 で 1 回実行し、次に zendenc53 で実行して、異なるターゲット ディレクトリを指定するだけです。

それについてもっと。PHP 5.3 コードは 5.2 とは異なります。実際には、これらのバージョンに一致するソース用に 2 つの異なるブランチが必要です。古いニュース: http://php.net/manual/en/migration53.php

Zend Guard でエンコードされたアプリケーションをテスト/ステージングする場合は、必ずエンコードされたバージョンをテストしてください (もちろん、必要に応じてオープン ソースをデバッグしてください)。理由は単純です。エンコードされたファイルには、難読化を処理するデータ テーブルのオーバーヘッドがあり、高度な PHP 構文で PHP の機能が変更される可能性があります。テスト中にエンコードされたファイルに問題が見つかった場合、ソースを特定して修正するのは簡単です。ソース バージョンのみをテストし、エンコードして顧客に展開する場合、結果は予測できません。

デプロイに関しては、PHP ファイルをインストール/untar/git/svn デプロイするときに、PHP ターゲット バージョンをリリース/ダウンロード/コード プッシュに貼り付けて、正しいバージョンにインストールするか、別のドキュメントに 2 つのバージョンをデプロイすることができます。ルートの場所、および PHP ターゲット バージョン 5.2 または 5.3 に一致する正しい保護されたアプリケーション バージョンにシンボリック リンクまたは書き換えることができます。

最後だが大事なことは。Zend Guard でサポートされているランタイムは Zend Server です。コミュニティ エディションがあり、DEB/RPM のネイティブ パッケージ マネージャーまたはインストール ファイル (Windows、Mac、その他の Linux ではサポートされていませんネイティブ パッケージ マネージャー)。Zend Server のオプションの Loader コンポーネントは、エンコードされたアプリケーション ファイルを処理し、PHP 5.2 および 5.3 ブランチに付属しているため、PHP に Zend Optimizer または Loader を手動でインストールする必要はありません。PHP 5.2 から 5.3 へのアップグレードは、アプリケーション (エンコード済みおよびオープン ソース) が適切に移行されていれば、簡単かつネイティブです。

お役に立てれば。

于 2012-03-12T12:40:37.807 に答える