gpt4 book ai didi

php - 使用 chef php cookbook 修改 php.ini 设置

转载 作者:可可西里 更新时间:2023-11-01 13:21:13 26 4
gpt4 key购买 nike

我已经安装了来自 opscode 的 PHP Cookbook 和位于 chef-dotdeb 的 chef-dotdeb cookbook。这样我就可以在 vagrant box 中运行 PHP 5.4

我想修改一些默认的 php.ini 设置。

根据 chef php cookbook 的文档,我可以修改设置使用

node['php']['directives'] = {}

例如:

node['php']['directives'] = { :short_open_tag => 'Off' }

我已经在我的应用程序说明书中创建的 webserver.rb 脚本中进行了修改。当我配置或重新加载 vagrant box 时,php.ini 设置保持不变。

知道哪里出了问题吗?

webserver.rb 文件的内容是:

include_recipe "nginx"

include_recipe "php"

node.default["php"]["directives"] = { :short_open_tag => 'Off' }

即使我删除了 dotdeb 说明书,以便唯一的 php 内容来自官方 opscode php 说明书,它仍然不会更新任何 ini 值。

附加信息

我看过 opscode php cookbook 中的代码,它实际上将指令注入(inject)到 erb php.ini 模板中: https://github.com/opscode-cookbooks/php/blob/master/templates/ubuntu/php.ini.erb

将指令附加到文件末尾的代码是:

<% @directives.sort_by { |key, val| key }.each do |directive, value| -%>
<%= "#{directive}=\"#{value}\"" %>
<% end -%>

这总是空的{}

但是....如果我将其修改为...

<% node.default[:php][:directives].sort_by { |key, val| key }.each do |directive, value| -%>
<%= "#{directive}=\"#{value}\"" %>
<% end -%>

然后指令被注入(inject)到模板中。我不是 ruby 专家。这两个逻辑之间的根本区别是什么???

最佳答案

可能是一个真正的远景,但我试图使用这个功能并发现它不起作用,然后我实际上发现它是因为我正在查看 apache2 php.ini,而 cookbook 默认情况下只添加设置到 cli php.ini 文件。这可能不是 Fedora/Redhat 的问题,但它是 Ubuntu 的问题,因为它将/etc/php5/下的配置分离到不同的文件夹中。

关于php - 使用 chef php cookbook 修改 php.ini 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20613206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com