在nginx配置下执行php脚本

时间:2014-12-03 09:55:01

标签: php nginx

我的配置中有以下nginx服务器块

server {
    listen       80;
    server_name mydomain.com;
    location /deploy {
        alias /home/somedir/deploy/;
        }

    # pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;

    }
  }

我想在网址mydomain.com/deploy/erp/index.php或mydomain.com/deploy/erp

执行php文件

以上内容下载php文件而不是执行它。我用Google搜索并找到了要求您定义www目录或其他内容的解决方案。我只需要在特定网址的特定目录中执行该文件。我有什么选择?

1 个答案:

答案 0 :(得分:0)

你还没有告诉nginx如何处理.php文件。假设你使用的是php-fpm,你需要这样的东西:

server {
  listen       80;
  server_name mydomain.com;

  root /home/somedir;

  location / {
    try_files $uri $uri/ =404;
  }

  location /deploy {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
  }
}