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

Как установить Apache с PHP 7.0 на Ubuntu 16.04 с помощью puppetlabs-apache

Я хочу установить Apache с PHP 7.0 на Ubuntu 16.04, используя Модуль Puppet Labs Apache.

  1. Следуя документации, модуль поддерживает Ubuntu 16.04.
  2. Eсть билет, связанный с поддержкой PHP 7.0 и есть принятый запрос на слияние который должен добавить поддержку PHP 7.0.
  3. Похоже, исправление, предоставленное при слиянии, не включено в версию модуля 1.9.0.

Вопросы

  1. Есть ли способ использовать предложенное исправление и установить Apache с PHP 7.0?
  2. Что писать в манифесте?

Следующий код (из манифеста Puppet) не работает в Ubuntu 16.04.

class { 'apache':
  mpm_module    => 'prefork',
}
include apache::mod::php

У меня следующая ошибка

Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install libapache2-mod-php5' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
Package libapache2-mod-php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libapache2-mod-php5' has no installation candidate
Error: /Stage[main]/Apache::Mod::Php/Apache::Mod[php5]/Package[libapache2-mod-php5]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install libapache2-mod-php5' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
Package libapache2-mod-php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libapache2-mod-php5' has no installation candidate

Я пытался настроить серверы FastCGI для обработки файлов PHP но это тоже не срабатывает почти с тем же сообщением об ошибке. Модуль пока ничего не знает о PHP 7.0.

У меня такая же проблема. Я использовал старую версию модуля марионеточные лаборатории-apache. Скачал актуальную версию (1.10.0 выпущен 20 мая 2016 г.), и теперь он работает правильно, потому что они исправили его.

Взгляните на файл манифесты / params.pp:

if ($::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemrelease, '16.04') < 0) or 
   ($::operatingsystem == 'Debian' and versioncmp($::operatingsystemrelease, '9') < 0) {
  # Only the major version is used here
  $php_version = '5'
} else {
  # major.minor version used since Debian stretch and Ubuntu Xenial
  $php_version = '7.0'
}

Как видите, по умолчанию он выберет PHP 7 для Ubuntu 16.04. Вам даже не нужно устанавливать php_version => 7.0 (как предлагает @starchx).

Только что столкнулся с аналогичной проблемой, и, по-видимому, мод Pupplelabs Apache теперь позволяет вам передавать версию PHP в качестве параметра:

  class { 'apache::mod::php':
    php_version => '7',
  }

Я думаю, это выглядит примерно так:

Установка Apache

class { 'apache':
    mpm_module => 'prefork'
  }
     apache::listen { '80': }
     apache::listen { '443': }

Загрузить дополнительные модули apache

class { 'apache::mod::rewrite': }
class { 'apache::mod::status': }
class { 'apache::mod::php': }

Также вам могут понадобиться:

package { 'php7.0':
ensure => 'installed',
}

package { 'libapache2-mod-php7.0':
ensure => 'installed',
}

package { 'libapache2-mod-php':
ensure => 'installed',
}

Надеюсь, это приблизит вас.