2013-08-11 15 views
9

Ich versuche, die neueste Version von PHP auf einer Centos-Box zu installieren und zu kämpfen.Chef korrekte Art, neue rpm zu laden und Paket zu installieren

Das Kochbuch ich gesucht haben ist die Opscode ein: https://github.com/opscode-cookbooks/php

Es sieht tut, wie ich PHP 5.5 verwenden, die installiert werden können.

So installieren Sie manuell würde ich einfach gehen Sie wie folgt (auf CentOS 6.4):

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

Wie wirkt sich das übersetzen in Koch (Solo) mit PHP 5.5 installiert zu bekommen?

Antwort

1

Standardmäßig verwendet das PHP-Kochbuch vordefinierte Pakete, um PHP unter Enterprise Linux zu installieren. Sie können die install_method Attribut in attributes/default.rb ändern

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

Sie müssen auch die default['php']['version'] zur Quelle ändern, default['php']['checksum'] oder kompilieren Optionen default['php']['configure_options'] usw. es funktioniert.

Wenn Sie die vorkompilierten Pakete verwenden möchten, schauen Sie in Chefs resources and providers, ob es möglich ist, RPM-Pakete von einer URL innerhalb von Rezepten zu installieren.

9

Es funktioniert immer durch die Installation von der Quelle, aber yum wird bevorzugt, um rpm zu installieren, um Abhängigkeiten und Updates zu verwalten.

Wenn Sie nur php v5.3 wollen, gehen Sie weiter mit dem php Kochbuch, wo die Standardoption php53 von CentOS yum Repo installieren.

Wenn Sie PHP v5.5 möchten, können Sie einfach ein anderes Rezept bieten ein yum-Repository enthalten enthält php55 wie Webtatic EL yum repository oder 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 

Dann überschreiben Sie müssen nur das Attribut node['php']['packages'] in Ihrem Knoten/environment/role object zur installation von php v5.5 über das opscode php cookbook:

node['php']['packages'] = ['php55w', 'php55w-devel', 'php55w-cli', 'php55w-pear']