Назад | Перейти на главную страницу

Использование Puppet для установки PHP 5.2 в Ubuntu 10.04

Я работаю над установкой 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?

установка php 5.2.14

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, конечно ...