为什么设置xdebug.max_nesting_level = 200没有从php.ini文件中获取?

时间:2016-03-30 13:25:52

标签: php xdebug vagrantfile

我有一个vagrantfile用于调出一个Ubuntu盒子,我已经定义了这样的php配置:

config.vm.provision "shell", inline: "sudo apt-get -y install php5 php5-dev php5-curl php5-imagick php5-gd php5-mcrypt php5-mhash php5-mysql php5-xdebug php5-intl php5-xsl"
config.vm.provision "shell", inline: "sudo php5enmod mcrypt"
config.vm.provision "shell", inline: "echo \"xdebug.max_nesting_level=200\" >> /etc/php5/apache2/php.ini" 
config.vm.provision "shell", inline: "sudo apt-get -y install phpunit"

我还可以看到这确实更新了创建的框上的php.ini文件。 cat php.ini output 所有这一切都让我不明白为什么我仍然会收到这个错误:

==> default: PHP Fatal error:  Maximum function nesting level of '100' reached, aborting! in /vagrant-B05032-Magento-Box/vendor/magento/framework/Code/Reader/ClassReader.php on line 59
==> default: PHP Stack trace:
==> default: PHP   1. {main}() /vagrant-B05032-Magento-Box/bin/magento:0
==> default: PHP   2. Symfony\Component\Console\Application->run() /vagrant-B05032-Magento-Box/bin/magento:25
==> default: PHP   3. Magento\Framework\Console\Cli->doRun() /vagrant-B05032-Magento-Box/vendor/symfony/console/Symfony/Component/Console/Application.php:126

有什么想法可能会出错?

1 个答案:

答案 0 :(得分:0)

所以我能够弄清楚这一点。我还需要将max_nesting_level添加到这两个文件中。

config.vm.provision "shell", inline: "echo \"xdebug.max_nesting_level=1000\" >> /etc/php5/apache2/conf.d/20-xdebug.ini" 
config.vm.provision "shell", inline: "echo \"xdebug.max_nesting_level=1000\" >> /etc/php5/mods-available/xdebug.ini" 

我确信最终其中一个参数实际上不确定是哪一个。也许我会对Vagrantfile进行更改并逐个测试。但是现在问题已经解决了...... :)