5

次のセットアップで Ubuntu 15.04 - 64 ビットを使用しています。

アパッチ

サーバーのバージョン: Apache/2.4.10 (Ubuntu)、サーバーのビルド: 2015 年 7 月 24 日 17:25:18

PHP

PHP 5.6.4-4ubuntu6.2 (cli) (ビルド: Jul 2 2015 15:29:28) Copyright, (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c), 1998-2014 Zend Technologies Zend OPcache v7.0.4-dev、著作権、(c) 1999-2014、Zend Technologies による

私の php.ini (最後の 5 行)

; Local Variables: 
; tab-width: 4 
; End
zend.loader=1
zend_extension="/var/www/extensions/ZendGuardLoader_56.so"

そうです、ZendGuardLoader はロードされません (「php -v」にも「phpinfo()」にも記述されていません)。スレッドセーフが無効になっています! 他のオプションが必要な場合は、お知らせください。

私がこれまでに試したこと:

  • 「zend.loader=1」オプションを削除し、
  • 「zend.loader」の代わりに「zend_loader.enabled = 1」を試しました
  • ZendGuardLoader の古いバージョンが含まれていました (5.6 ではなく 5.5)
  • 所有者とグループを両方のファイルから自分のアカウントに変更しました (代わりに www-data)
  • 権限を 777、775、755 に変更しました

また、知っておくと便利です:

私のApacheエラーログも「きれい」です。.so ファイルの名前を変更すると、Apache がその例外をログに記録します。しかし、現在のセットアップでは、ファイルは読み取り可能です..誤解しないでください.

アップデート1

数時間後、私はかなり怖いです!vagrant incl をインストールしました。「Debian 7.8」も、いろいろと始めました。ボックスに PHP (5.4) と Apache をインストールし、同じ場所に www フォルダーを作成し、5.4 ZendGuard ローダーをダウンロードしました。私のボックスのセットアップでは、私のメインシステムと同じように -> php.ini、最後のエントリ: "zend_extension=/vagrant/ZendGuardLoader.so" と同じようにしました。

ファイルが存在し、読み取り可能でもあります。新しい "info.php" ("phpinfo()") を作成した後も、ZendGuardLoader 拡張機能はまだありません。コマンドphp -vは、メインシステムとほとんど同じです(バージョンの違い..)。

php -v の解決策

オーケー、私の心は壊れていましたが、まだ直っていません! php -v をチェックすると、出力はかなりデフォルトになります (ZendGuardLoader はありません)。BUT(!): php -v はコマンドライン (cli) によって実行されます。つまり、php5\cli\php.ini 内に「zend_extension」を追加しました。

PHP 5.4.41-0+deb7u1 (cli) (ビルド: 2015 年 5 月 22 日 12:49:18) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0、Copyright (c) 1998-2014 Zend Technologies with Zend Guard Loader v3.3、Copyright (c) 1998-2013、Zend Technologies 著

それが私が欲しかったものです。それで、コマンドラインを使用してphpinfoファイルを呼び出し、出力を別のファイルに保存しました。ご覧のとおり、ZendGuardLoader も提供されています。

しかし、まだ Apache 問題があります。zend_extension 行は、apache2\php.ini と cli\php.ini の間で正確に一致します。

CLI には問題がないため、権限の問題ではありません。それほど特殊でない拡張機能をロードしないため、Apache が壊れていると思います。

新しい日 - 新しいアイデア

わかりました、昨日、要点がわかりました。CLI で動作しない理由ですが、それはそれほど大きな問題ではありません。そのため、ioncube を CLI と apache に統合しました。CLIは魅力のように機能します。Apache も ioncube をロードしません。では、このアパッチの何が問題になっているのでしょうか..?

php5\apache2\conf.d\ ディレクトリに新しいファイルを作成して、エラーを発生させようとしました。新しいファイルには、php5\apache2\php.ini と同じ「zend_extension=/vagrant/ZendGuardLoader.so」スニペットが含まれているため、apache2 は .so を 2 回ロードしようとし、予想されるエラーをスローします。

PHP 致命的なエラー: [Zend Guard Loader] 拡張機能「Zend Guard Loader」を行 0 の不明で 2 回読み込めません

Apache は両方の拡張機能をロードしようとします。だから私が言うなら、私は正しいかもしれません.apache2は拡張機能を1つだけロードします! しかし、そのApacheは拡張機能では動作しないようです。覚えておいてください - php cli ("php -v" / "php -m" ) はできます!

4

1 に答える 1