11

我正在尝试在 centos 盒子上安装最新版本的 php 并且正在苦苦挣扎。

我一直在看的食谱是 opscode 之一:https ://github.com/opscode-cookbooks/php

看起来我不能使用它安装 php 5.5。

要手动安装,我只需执行以下操作(在 centos 6.4 上):

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum install php55w php55w-opcache

这如何转化为使用 chef (solo) 安装 php 5.5?

4

2 回答 2

14

它总是通过从源代码安装来工作,但 yum 更喜欢安装 rpm 来管理依赖项和更新。

如果您只想要 php v5.3,请继续使用 php 食谱,其中默认选项是从 CentOS yum repo 安装 php53。

如果你想要 php v5.5,你可以提供另一个配方来包含一个包含 php55 的 yum 存储库,例如Webtatic EL yum 存储库servergrove.com

remote_file "#{Chef::Config[:file_cache_path]}/webtatic_repo_latest.rpm" do
    source "http://mirror.webtatic.com/yum/el6/latest.rpm"
    action :create
end

rpm_package "jmxtrans" do
    source "#{Chef::Config[:file_cache_path]}/webtatic_repo_latest.rpm"
    action :install
end

然后你只需要覆盖node['php']['packages']你的 node/environment/role 对象中的属性来通过 opscode php cookbook 安装 php v5.5:

node['php']['packages'] = ['php55w', 'php55w-devel', 'php55w-cli', 'php55w-pear']
于 2013-08-12T01:18:08.777 回答
1

默认情况下,php 食谱使用预构建的包在 Enterprise Linux 上安装 PHP。您可以将install_method属性更改attributes/default.rb为源

default['php']['install_method'] = 'source'

您还需要更改default['php']['version']default['php']['checksum']或 compile 选项default['php']['configure_options']等以使其工作。

如果您想使用预编译的包,请查看 Chef 的资源和提供程序,看看是否可以从食谱中的 URL 安装 RPM 包。

于 2013-08-11T21:55:53.997 回答