Como instalar o Apache com o PHP 7.0 no Ubuntu 16.04 usando o puppetlabs-apache

2

Eu quero instalar o Apache com o PHP 7.0 no Ubuntu 16.04 usando o módulo Apache do Puppet Labs .

  1. Após a documentação, o módulo suporta o Ubuntu 16.04 .
  2. Existe um tíquete relacionado ao suporte do PHP 7.0 e há uma aceitação merge request que deve adicionar suporte ao PHP 7.0.
  3. 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

  1. Existe alguma maneira de usar a correção sugerida e instalar o Apache com o PHP 7.0?
  2. O que devo escrever no manifesto?

O código a seguir (do manifesto Puppet) não funciona no Ubuntu 16.04

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

Eu recebi 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 tentei configurar servidores FastCGI para lidar com arquivos PHP mas isso também falha com quase a mesma mensagem de erro. O módulo não sabe nada sobre o PHP 7.0 ainda.

    
por Victor Smirnov 13.05.2016 / 07:45

3 respostas

0

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 te aproxime mais.

    
por 17.06.2016 / 22:46
0

Acabou de se deparar com um problema semelhante, e aparentemente Pupplelabs Apache mod agora permite que você passe na versão do PHP como parâmetro:

  class { 'apache::mod::php':
    php_version => '7',
  }
    
por 10.08.2016 / 05:26
0

Eu tive o mesmo problema. Eu estava usando uma versão antiga do módulo puppetlabs-apache . Eu baixei a versão atual ( 1.10.0 lançada em 20 de maio de 2016) e agora ela está funcionando corretamente porque ela foi corrigida.

Dê uma olhada no arquivo manifestos / 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 irá escolher por padrão o PHP 7 para o Ubuntu 16.04. Você nem precisa definir php_version => 7.0 (como sugerido por @starchx).

    
por 16.08.2016 / 05:02