1

Vagrant が LEMP スタックをプロビジョニングするために使用するパペット ファイルをセットアップしています。

exec { "apt-get update":
command => "/usr/bin/apt-get update",
}

package { "acl":
    ensure => "present",
    require => Exec ["apt-get update"],
}

class nginx{
  package { "nginx":
    ensure => present,
    require => Exec ["apt-get update"],
  }
    service { "nginx":
        ensure  => "running",
        require => Package["nginx"],
    }

    file { "/var/www":
        ensure  => "link",
        target  => "/vagrant/web",
        require => Package["nginx"],
        notify  => Service["nginx"],
        force => true,
    }
}

class php {
    package { "php5-cli": ensure => present }
    package { "php5-dev": ensure => present }
    package { "php5-mysql": ensure => present }
    package { "php-pear": ensure => present }
    package { "php5-common": ensure => present}
    package { "php5-fpm": ensure => present}
    package { "php5-cgi": ensure => present}
    package { "php-apc": ensure => present}
    exec { "pear upgrade":
        command => "/usr/bin/pear upgrade",
require => Package["php-pear"],
    }
}
class mysql {
  package { "mysql-server":
    require => Exec["apt-get update"],
    ensure => present,
  }
  service { "mysql":
    enable => true,
    ensure => running,
    require => Package["mysql-server"],
  }
  exec { "Set MySQL server root password":
        require => Package["mysql-server"],
        unless => "/usr/bin/mysqladmin -uroot -proot status",
        command => "/usr/bin/mysqladmin -uroot password root",
  }
}  

include nginx
include php
include mysql

私は Vagrant を正しくセットアップしました。そのために LAMP スタック スクリプトを使用していましたが、問題なく動作しました。ただし、Apache を Nginx に、php5 を php-fpm に置き換えると、問題が発生しました。サイトを読み込もうとすると、「nginx へようこそ!」というメッセージが表示されます。画像 (またはその他の静的ファイル) への特定のパスを指定すると、画像が読み込まれます。PHP ファイルへの特定のパスを指定すると、PHP ファイルが実行される代わりにダウンロードされます。

Ubuntu 12.04 64 ビットを使用しています。

Nginx側からソケットが正しくセットアップされていないと考えていますが、移植性のためにパペットマニフェストファイルを介してソケットをセットアップする方法が完全にはわかりません。

アイデア?

4

1 に答える 1

1

/etc/nginx/sites-available/defaultファイルをphpソケットのコメントが外された構成に置き換えるには、人形が必要です。

ブロックのコメントを外し、 location ~ \.php$nginx を再起動して動作するかどうかを確認してください...そうであれば、パペットを取得してそのファイルを設定に置き換えると、動作するはずです。

かなりの数のより堅牢なnginx puppet スクリプトも出回っているので、そちらも参照してください...たとえば、仮想ホストとしてこれを実行する必要があります...そして、いくつかのセキュリティ上の問題があることに注意してくださいこれを本番環境で使用する場合はアウト。

于 2013-06-20T15:16:48.250 に答える