Я работаю над установкой PHP 5.2 на Ubuntu с помощью Puppet (с целью использования Puppet и Drush для установки Drupal), но все устанавливаемые пакеты - это PHP 5.3. Я нашел инструкции по установке PHP 5.2 вручную:
http://2bits.com/drupal-planet/various-ways-running-php-52-ubuntu-1004-lucid-lynx.html (Подход 3)
Но это не соответствует модели Puppet. Кто-нибудь нашел лучший способ установить PHP 5.2 (для использования с Drupal 6) с Puppet?
class php {
$php = "installed"
$phpoptions = "'--with-apxs2=/usr/local/apache2/bin/apxs' '--prefix=/usr/local/php' '--with-curl' '--enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/lib' '--with-png-dir=/usr/lib' '--with-xpm-dir=/usr/lib' '--with-gettext' '--with-iconv' '--with-mysql=/usr/lib' '--with-openssl' '--with-pear' '--with-ttf' '--with-freetype-dir=/usr/lib' '--enable-gd-native-ttf' '--with-xmlrpc' '--with-zlib' '--enable-maintainer-zts' '--enable-mbstring' '--enable-sockets' '--enable-pcntl'"
$packagelist = [ "libjpeg-dev", "libcurl4-gnutls-dev", "libfreetype6-dev", "libxpm-dev", "libpng12-dev" ]
package { $packagelist:
ensure => present }
exec { "php-install":
cwd => "/home/chris/downloads",
user => "root",
path => "/bin:/usr/bin",
command => "/usr/bin/wget http://museum.php.net/php5/php-5.2.14.tar.gz && /bin/tar -xzvf php-5.2.14.tar.gz && cd php-5.2.14 && ./configure $phpoptions && make && make install && touch /tmp/php.txt",
creates => "/tmp/php.txt"
}
}
package { "drupal6": ensure => present }
Похоже, что Drupal 6 уже во вселенной Ubuntu 10. Это лучше, чем самостоятельно устанавливать PHP из исходников. Я предполагаю, что они уже исправили незначительные проблемы с Drupal 6 на PHP 5.3.
Посмотрев на зависимости, я решил, хочу ли я mysql или postgresql, и сделал одно из:
package {
"php5-mysql":
ensure => present;
"mysql-client":
ensure => present;
"drupal6":
ensure => present,
require => [
Package["php5-mysql"],
Package["mysql-client"]
];
}
Или:
package {
"php5-pgsql":
ensure => present;
"postgresql-client":
ensure => present;
"drupal6":
ensure => present,
require => [
Package["php5-pgsql"],
Package["postgresql-client"]
];
}
В противном случае зависимости «или» могут привести к неправильному использованию библиотеки базы данных. Вы также можете захотеть соответствующий материал для сервера базы данных, дополнительные компоненты php5 и различные модули drupal, конечно ...