
Я хочу установить Apache с PHP 7.0 на Ubuntu 16.04, используяМодуль Apache Puppet Labs.
- После документациимодуль поддерживает Ubuntu 16.04.
- Eстьтикет, связанный с поддержкой PHP 7.0и есть принятоезапрос на слияниечто должно добавить поддержку PHP 7.0.
- Похоже, исправление, предоставленное при слиянии, не включено в версию модуля 1.9.0.
Вопросы таковы:
- Есть ли способ использовать предложенное исправление и установить Apache с PHP 7.0?
- Что мне следует написать в манифесте?
Следующий код (из манифеста 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.
решение1
Только что столкнулся с похожей проблемой, и, судя по всему, мод Apache Pupplelabs теперь позволяет передавать версию PHP в качестве параметра:
class { 'apache::mod::php':
php_version => '7',
}
решение2
У меня была та же проблема. Я использовал старую версию модуляpuppetlabs-apache. Я скачал текущую версию (1.10.0выпущено 20 мая 2016 года) и теперь работает правильно, потому что они это исправили.
Посмотрите файл.манифесты/параметры.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).
решение3
Я думаю, это больше похоже на это:
Настройка 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',
}
Надеюсь, это поможет вам приблизиться к цели.