Apache のセットアップ

Apache のセットアップ

Ubuntu 16.04にPHP 7.0を搭載したApacheをインストールしたいのですがPuppet Labs Apache モジュール

  1. 文書に従ってモジュールはUbuntu 16.04をサポートしています
  2. そこにはPHP 7.0 サポートに関連するチケットそして受け入れられているマージリクエストこれにより、PHP 7.0 のサポートが追加されます。
  3. マージで提供された修正はモジュール 1.9.0 バージョンには含まれていないようです。

質問は

  1. 提案された修正を使用して PHP 7.0 で Apache をインストールする方法はありますか?
  2. マニフェストには何を書けばいいですか?

以下のコード(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

やってみましたPHPファイルを処理するFastCGIサーバーを設定するしかし、これもほぼ同じエラー メッセージで失敗します。モジュールはまだ PHP 7.0 について何も認識していません。

答え1

同様の問題に遭遇しましたが、どうやら Pupplelabs Apache mod では PHP バージョンをパラメータとして渡すことができるようになりました。

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

答え2

私も同じ問題を抱えていました。私は古いバージョンのモジュールを使用していましたパペットラボ-Apache現在のバージョンをダウンロードしました(1.10.0(2016年5月20日にリリース)修正されたため、現在は正常に動作しています。

ファイルを見てくださいマニフェスト/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'
}

ご覧のとおり、Ubuntu 16.04 ではデ​​フォルトで PHP 7 が選択されます。設定する必要すらありません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',
}

そうすれば、もっと近づくことができるでしょう。

関連情報