如何使用Chef从Apache和Apache安装特定版本的PHP?

时间:2014-05-07 12:39:09

标签: php apache chef vagrant

我正在使用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吗?

2 个答案:

答案 0 :(得分:1)

如果您使用apache2::mod_php5食谱,则不会。

如果您查看the recipe,可以看到它会安装libapache2-mod-php5包,这会将php5-common作为依赖项。

如果你想避免引入它,你必须为php模块编写自己的配方,可能是从源代码编译模块。

答案 1 :(得分:1)

你也可以自己创建一本菜谱,其中包括一个特殊的php安装文件