Apache-Einrichtung

Apache-Einrichtung

Ich möchte Apache mit PHP 7.0 auf Ubuntu 16.04 installieren mitPuppet Labs Apache-Modul.

  1. Im Anschluss an die Dokumentation derModul unterstützt Ubuntu 16.04.
  2. Da ist einTicket im Zusammenhang mit PHP 7.0-Supportund es gibt eine akzeptierteMerge-Anfragewodurch PHP 7.0-Unterstützung hinzugefügt werden sollte.
  3. Es sieht so aus, als ob der im Merge bereitgestellte Fix nicht in der Modulversion 1.9.0 enthalten ist.

Die Fragen sind

  1. Gibt es eine Möglichkeit, wie ich den vorgeschlagenen Fix verwenden und Apache mit PHP 7.0 installieren kann?
  2. Was soll ich in das Manifest schreiben?

Der folgende Code (aus dem Puppet-Manifest) funktioniert unter Ubuntu 16.04 nicht

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

Ich habe den folgenden Fehler

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

Ich versuchte zuKonfigurieren Sie FastCGI-Server für die Verarbeitung von PHP-Dateienaber auch dies schlägt fehl und es erscheint fast die gleiche Fehlermeldung. Das Modul weiß noch nichts über PHP 7.0.

Antwort1

Bin gerade auf ein ähnliches Problem gestoßen und anscheinend erlaubt das Pupplelabs Apache-Mod jetzt die Übergabe der PHP-Version als Parameter:

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

Antwort2

Ich hatte das gleiche Problem. Ich habe eine alte Version des Moduls verwendetPuppetlabs-Apache. Ich habe die aktuelle Version heruntergeladen (1.10.0veröffentlicht am 20. Mai 2016) und jetzt funktioniert es einwandfrei, weil sie es repariert haben.

Schauen Sie sich die Datei anmanifeste/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'
}

Wie Sie sehen, wird standardmäßig PHP 7 für Ubuntu 16.04 ausgewählt. Sie müssen es nicht einmal festlegen php_version => 7.0(wie von @starchx vorgeschlagen).

Antwort3

Ich glaube, es sieht eher so aus:

Apache-Einrichtung

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

Zusätzliche Apache-Module laden

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

Möglicherweise benötigen Sie auch:

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

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

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

Hoffentlich bringt Sie das näher.

verwandte Informationen