
Quero instalar o Apache com PHP 7.0 no Ubuntu 16.04 usandoMódulo Apache do Puppet Labs.
- Seguindo a documentação omódulo suporta Ubuntu 16.04.
- Existe umticket relacionado ao suporte ao PHP 7.0e há um aceitosolicitação de mesclagemque deve adicionar suporte ao PHP 7.0.
- Parece que a correção fornecida na mesclagem não está incluída na versão do módulo 1.9.0.
As perguntas são
- Existe alguma maneira de usar a correção sugerida e instalar o Apache com PHP 7.0?
- O que devo escrever no manifesto?
O código a seguir (do manifesto do Puppet) não funciona no Ubuntu 16.04
class { 'apache':
mpm_module => 'prefork',
}
include apache::mod::php
Eu tenho o seguinte erro
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
Eu tenteiconfigurar servidores FastCGI para lidar com arquivos PHPmas isso também falha com quase a mesma mensagem de erro. O módulo ainda não sabe nada sobre o PHP 7.0.
Responder1
Acabei de me deparar com um problema semelhante e, aparentemente, o mod Pupplelabs Apache agora permite que você passe a versão PHP como parâmetro:
class { 'apache::mod::php':
php_version => '7',
}
Responder2
Eu tive o mesmo problema. Eu estava usando uma versão antiga do módulopuppetlabs-apache. Baixei a versão atual (1.10.0lançado em 20 de maio de 2016) e agora está funcionando corretamente porque eles consertaram.
Dê uma olhada no arquivomanifestos/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'
}
Como você pode ver, ele escolherá por padrão o PHP 7 para Ubuntu 16.04. Você nem precisa definir php_version => 7.0
(como sugerido por @starchx).
Responder3
Parece mais com isso, eu acho:
Configuração do Apache
class { 'apache':
mpm_module => 'prefork'
}
apache::listen { '80': }
apache::listen { '443': }
Carregar módulos extras do Apache
class { 'apache::mod::rewrite': }
class { 'apache::mod::status': }
class { 'apache::mod::php': }
Você também pode precisar de:
package { 'php7.0':
ensure => 'installed',
}
package { 'libapache2-mod-php7.0':
ensure => 'installed',
}
package { 'libapache2-mod-php':
ensure => 'installed',
}
Espero que isso o aproxime.