同じスタックを実行し、異なるPHPUnitテスト結果を与える2つの環境があります。PHP同じ環境で致命的なエラーが再現されない
私の迷惑メールベースの環境では、PHPUnitテストスイートは問題なく終了します。
PHPUnit 5.5.1 by Sebastian Bergmann and contributors.
.......................................S.S.....PHP Fatal error:
Class Mock\Product\Promotion\DataProviderMock contains 5 abstract methods
and must therefore be declared abstract or implement the
remaining methods (Olive\Product\Promotion\DataProviderInterface::hasPromotion, Olive\Product\Promotion\DataProviderInterface::isSticky, Olive\Product\Promotion\DataProviderInterface::getValuePromotion, ...)
in /tmp/popeye/olive/tests/mock/Mock/Product/Promotion/ProviderMock.php on line 11
修正は(クラスのメソッドを実装する)は簡単です、しかし、修正を行う前に、私が理解したいと思います:私のVPSで
ベースの環境、我々は次のPHPの致命的なエラーを見ています2つの環境で動作が異なる理由
2つの環境の違いは、私のPHP構成のどこかにあると思います。
php-config
またはphp composer.phar show -t
の出力環境に違いがないことを確認しました。
php -i
の出力には、があります。の出力にはいくつかの違いがあります。
$ diff php-i.vagrant php-i.vps
4c4
< System => Linux vagrant-box 4.4.0-62-generiC#83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64
---
> System => Linux staging-01 4.4.0-81-generiC#104-Ubuntu SMP Wed Jun 14 08:17:06 UTC 2017 x86_64
109c108
< apc.shm_size => 32M => 32M
---
> apc.shm_size => 192M => 192M
112c111
< apc.ttl => 0 => 0
---
> apc.ttl => 86400 => 86400
144,145c143,144
< display_errors => STDOUT => STDOUT
< display_startup_errors => On => On
---
> display_errors => Off => Off
> display_startup_errors => Off => Off
154c153
< error_reporting => 32767 => 32767
---
> error_reporting => 22527 => 22527
746c745
< opcache.fast_shutdown => 0 => 0
---
> opcache.fast_shutdown => 1 => 1
754c753
< opcache.interned_strings_buffer => 4 => 4
---
> opcache.interned_strings_buffer => 16 => 16
757c756
< opcache.max_accelerated_files => 2000 => 2000
---
> opcache.max_accelerated_files => 16229 => 16229
760c759
< opcache.memory_consumption => 64 => 64
---
> opcache.memory_consumption => 192 => 192
771c770
< opcache.validate_timestamps => On => On
---
> opcache.validate_timestamps => Off => Off
793c792
がどんなものである:ここで
は左右に(エラーが表示されない)VPS環境に(エラーが表示されません)浮浪者の環境と
php -i
の差分をありますこれを読んでいるPHPの達人は、なぜ私たちが1つの環境だけでこのエラーを見るのか説明することができますか?
多くの感謝!
それがPHPの設定の複雑さに対処ですので、これはhttps://serverfault.com/に潜在的により適しているようです、幸運がありますが – kjones
少なくともあなたの迷惑メール環境で問題を示す[MCVE]を書くことができれば、それは何かかもしれません。そうであるように、目に見えないように誰もあなたを助けるのはかなり難しいです。 – pvg
私はそのエラーを検出していました。エラー報告が有効になっているかどうか以外には、それに影響する設定オプションは見つかりませんでした。 – Barmar