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