2016-03-30 50 views
0

我有我使用弹出一个框的Ubuntu框中vagrantfile和我定义的PHP配置是这样的:为什么设置xdebug.max_nesting_level = 200没有从php.ini文件中获取?

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 

任何想法可能是错误吗?

+0

重新启动盒子后它工作吗? ini文件更新后,思考apache不重新启动 – JimL

+0

是否有另一个php.ini文件?我遇到了php.ini的问题,发现xdebug实际上使用的是不同目录下的cli版本。 –

+0

@JimL:尝试重新启动和启动,仍然是同样的事情。在Vagrant文​​件中,我在此PHP更新之后已经配置了Apache。所以这应该默认情况下照顾最后一个文件可用吗? – maverick

回答

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并逐个测试它。但现在,问题解决了...... :)