Debian 8 上的 Nginx 开发设置。通过 PHP FPM 的 PHP 无法正常工作

Debian 8 上的 Nginx 开发设置。通过 PHP FPM 的 PHP 无法正常工作

更新:好的,我现在可以高兴地说,您在下面看到的是一个愉快工作的自动化 PHP 和 Nginx 开发设置(带有自动域)的秘诀,我遇到的所有问题现在都得到了解决。

sudo apt-get nginx php5 php5-fpm dnsmasq我在 Debian 8 上安装了以下内容,Jessie。我安装了 dnsmasq,这样我就可以拥有以我的开发站点命名的域。我制作了一个.conf文件,其中/etc/dnsmasq.d包含

address=/dev/127.0.0.1

并且这部分设置运行良好,任何 .dev 域都会解析为由 Nginx 提供服务的 localhost。

现在进入开发环境的服务器部分以及我到目前为止所尝试的内容(服务器块位于清单下方)。更新:一切都好!现在一切正常!

到目前为止我已经完成的事情清单:

  • 我现在已经完成了工作设置(这是我对这篇文章的最新编辑)。我在 Sitepoint(网站)文章中发现了一些有用的提示。因此,我向我的开发站点文件夹的父级授予了一些权限,即 chgrp -R www-data /var/www ,我执行了 chmod -R g + rw /var/www 以及 chmod g + s /var/www最后这个 chmod 是最好的一点!添加 SGID (g + s) 意味着添加到 /var/www 中的任何新开发目录将自动归 www-data 所有,从而使此开发设置更加自动化
  • 每次我在设置中进行更改时,我都会重新加载 php5-fpm 和 Nginx,并且两者都运行良好。
  • 更新。现在新的设置正在快速运行 cgi,我现在也完成了, sudo apt-get php5-cgi spawn-fcgi
  • 我将用户 josh (我的主用户)、root 和用户 www-data (Nginx) 添加到名为 www-data 的组中
  • 对于 php5-fpm,我检查了 /etc/php5/fpm/pool.d/www.conf 并看到默认安装给了我这些用户属性,user = www-data group = www-data,并且这些监听属性监听。所有者 = www-data Listen.group = www-data
  • 我制作了以下符号链接:ln -s /etc/nginx/sites-available/local_dev.conf /etc/nginx/sites-enabled/

我遵循了 goodrobot.com 的 Nginx 开发设置教程,该教程没有使用 PHP;因此,我将该教程的主要部分与 Christophe 在scaleyourcode.com 上的 PHP 非开发环境教程的一部分结合在一起

这是我为 conf 文件中的服务器块想到的/etc/nginx/sites-available(结合两个教程的想法)。同样,问题是我的index.php 页面没有被提供服务。 (如果我将一个index.html 文件添加到服务器块下面的索引中,然后提供一个index.html 文件,它将正常工作)。更新。我已经废弃了我制作的 Frankenconfig 文件,并创建了一个新文件,详细信息如下。现在一切都好了!

更新,工作!我发布了一个新的配置文件,该文件是用户 denji(在 Github 上)在 Github 上发布的一个稍微修改的版本,标题为“dnsmasq”。该版本还具有 PHPmyadmin 块,但我不需要。我还添加了 fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;到位置 ~ .php 块,因为在此之前它不适用于我的设置。我还删除了位置 ~ .php 前面的美元符号(美元符号在这里,不好),这样当我在真实的网络服务器上使用以下任何内容时,$ 符号将不会成为黑客的免费通行证。

  server {
  index index.php;
  set $basepath "/var/www";

  set $domain $host;

  # check one name domain for simple application
  if ($domain ~ "^(.[^.]*)\.dev$") {
    set $domain $1;
    set $rootpath "${domain}";
    set $servername "${domain}.dev";
  }

  # check multi name domain to multi application
  if ($domain ~ "^(.*)\.(.[^.]*)\.dev$") {
    set $subdomain $1;
    set $domain $2;
    set $rootpath "${domain}/${subdomain}/www/";
    set $servername "${subdomain}.${domain}.dev";
  }

  server_name $servername;

  access_log "/var/log/nginx/server.${servername}.access.log";
  error_log "/var/log/nginx/server.dev.error.log";

  root $basepath/$rootpath;

  # check file exist and send request sting to index.php 
  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  # allow php only in root index.php
  #location ~ "^/index\.php" {
  # allow execute all php files
  location ~ \.php {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;   
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
  }

    location ~ /\.ht {
    deny all;
  }

  # disallow access to git configs path
    location ~ /\.git {
    deny all;
  }

  }

相关内容