php - 如何通过 Puppet(在 Vagrant 上)连接 Nginx 和 PHP?

标签 php ubuntu nginx vagrant puppet

我正在为 Vagrant 设置一个 puppet 文件以用于配置 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 堆栈脚本,它运行得非常完美;然而,用 Nginx 代替 Apache 并用 php-fpm 代替 php5 导致中断。每当我尝试加载我的网站时,我都会收到“欢迎使用 nginx!”。如果我指定图像(或任何其他静态文件)的特定路径,图像就会加载。如果我指定 PHP 文件的特定路径,PHP 文件将被下载而不是执行。

我使用的是 Ubuntu 12.04 64 位。

我认为套接字没有从 Nginx 端正确设置,但我不完全确定如何通过 puppet list 文件设置它以实现可移植性。

想法?

最佳答案

您需要 puppet 将 /etc/nginx/sites-available/default 文件替换为未注释 php 套接字内容的配置。

尝试取消注释 location ~\.php$ block 并重新启动 nginx 以查看是否一切正常...如果是这样,那么让 puppet 用您的配置替换该文件应该让它为您工作。

还有很多更强大的nginx puppet scripts在那里你可能也想看看......你应该作为一个虚拟主机来做这件事......并注意有一些security issues看看是否在生产中使用它。

关于php - 如何通过 Puppet(在 Vagrant 上)连接 Nginx 和 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17216953/

相关文章:

c# - Linux Ubuntu 单声道

docker - 如何使用docker(分别为docker-in-docker)在Gitlab CI上启动Nginx?

c - FCGI 应用程序的问题

php - 从电视节目文件名中提取名称、季节和剧集

php - Bootstrap - 为什么我的导航栏背景颜色即使在我指定时也会被覆盖?

php - 使用 PHP 将 MySQL 转换为 JSON(我认为是重音)

linux - 如何将 Dcmtk 与 Qt for Linux 正确链接?

ubuntu - fail2ban gitlab UI 登录尝试

php - mysql查询获取每家公司的所有评论

Nginx动态位置配置