Configuração do Apache

Configuração do Apache

Quero instalar o Apache com PHP 7.0 no Ubuntu 16.04 usandoMódulo Apache do Puppet Labs.

  1. Seguindo a documentação omódulo suporta Ubuntu 16.04.
  2. Existe umticket relacionado ao suporte ao PHP 7.0e há um aceitosolicitação de mesclagemque 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 PHP 7.0?
  2. 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.

informação relacionada