开发环境的Nginx站点配置

时间:2015-10-05 09:20:37

标签: php nginx configuration config

我目前正在尝试在Vagrant中为网络开发指导项目的学生设置一个通用的多项目开发环境。想法是域<project>.vagrant映射到~/code/<project> 我认为我有足够的经验与Nginx解决这个问题,但事实证明我没有。

假设PHP-FPM设置正确,我需要有关站点配置的try_files /路由的帮助。 虽然主页(/)工作正常,但是对非静态文件的任何请求(因此应该传递给PHP-FPM)会导致 301 Moved Permanently 到主页,或者下载PHP脚本的内容而不是执行它。

  

是的,我知道列出这么多的索引文件并不理想,但学生们将处理多个项目(phpMyAdmin,WordPress)和框架(Symfony,Silex,Laravel等)。

非常感谢任何帮助!

到目前为止,单个站点可用配置文件的内容是:

map $host $projectname {
    ~^(?P<project>.+)\.vagrant$ $project;
}

upstream phpfpm {
    server unix:/var/run/php5-fpm.sock;
}

server {
    listen 80;
    server_name *.vagrant;
    server_tokens off;
    root /home/vagrant/code/$projectname/web;
    index app_dev.php app.php index.php index.html;
    autoindex on;
    client_max_body_size 5M;
    location / {
        try_files $uri $uri/ / =404;
    }
    # Pass all PHP files onto PHP's Fast Process Manager server.
    location ~ [^/]\.php(/|\?|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
        try_files $fastcgi_script_name =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # Specify the determined server-name, not the literal "*.vagrant".
        fastcgi_param SERVER_NAME $projectname.vagrant;
        fastcgi_pass phpfpm;
    }
}

0 个答案:

没有答案