我正在使用Chef的社区烹饪书,特别是apt,php和apache2烹饪书。我在节点上运行的角色:
name "development"
# list of recipes to run
run_list(
"recipe[apt]",
"recipe[php::source]",
"recipe[apache2]",
"recipe[apache2::mod_php5]",
"recipe[apache2::mod_rewrite]",
)
# attributes setup
override_attributes(
"php" => {
"version" => "5.4.27",
"checksum" => "3080690bbb14d798a511e325a81a6f32"
}
)
如您所见,我想从源代码安装PHP 5.4.27。如果我只运行php::source
,我确实有PHP 5.4.27。但是,当我运行apache2 cookbook时,apache2::mod_php5
从存储库安装另一个PHP 5.3(Ubuntu 12.04在其repo中有PHP 5.3)。我想包安装libapache2-mod-php5
依赖于php5
包,因此再次安装PHP。
我不想要两个版本的PHP。我想只有一个; PHP 5.4.27。适用于Apache和CLI。我可以以某种方式指示apache cookbook使用PHP 5.4.27吗?
答案 0 :(得分:1)
如果您使用apache2::mod_php5
食谱,则不会。
如果您查看the recipe,可以看到它会安装libapache2-mod-php5
包,这会将php5-common
作为依赖项。
如果你想避免引入它,你必须为php模块编写自己的配方,可能是从源代码编译模块。
答案 1 :(得分:1)
你也可以自己创建一本菜谱,其中包括一个特殊的php安装文件