首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NGINX服务器配置

NGINX服务器配置
EN

Stack Overflow用户
提问于 2016-12-27 20:48:38
回答 1查看 854关注 0票数 0

我正在尝试配置nginx,并在下面的配置中进行了如下配置:

/etc/nginx/sites启用/默认

代码语言:javascript
复制
server {
    server_name firstproj.dev www.firstproj.dev;
    root /var/www/firstProj/web;

    location / {
        try_files $uri /app.php$is_args$args;
    }

    location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }

    location ~ ^/app\.php(/|$) {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }

    location ~ \.php$ {
      return 404;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}

其中app.php和app_dev.php都是由symfony创建的/var/www/firstProj/web/文件夹中的文件,没有进一步的修改。

firstProj是我目前正在研究的一个symfony项目,我在这里不了解的是:

  1. 为什么当我访问www.firstproj.dev时 糟了!服务器返回"500内部服务器错误“时发生错误。
  2. 为什么当我访问www.firstproj.dev/app_dev.php时,一切正常,我也可以访问我的路线(例如:www.Firstproj.dev/app_dev.php/主页运行良好,并从控制器中的操作返回预期的响应)
  3. 为什么当我访问www.firstproj.dev/app.php时,我会得到404错误。

我希望它能与www.firstproj.dev/ make一起工作,没有app_dev.php,但我不能让它那样工作。此外,如果我访问

http://localhost

我得到:

欢迎来到nginx! 如果您看到此页面,则nginx服务器已成功安装和运行。需要进一步配置。 有关在线文档和支持,请参阅nginx.org。nginx.com提供商业支持。 感谢您使用nginx。

如果这是一个相当愚蠢的问题,我很抱歉,但就服务器配置而言,我是个初学者。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-28 00:04:03

所以你发现你的app_dev.php可以工作,但app.php不能工作?

我以前也有过这样的经历,有几件事值得我们去检查。

  1. app_dev.php的内容复制到app.php中,并查看www.firstproj.dev/app.phpwww.firstproj.dev是否有效。如果它有效,那么您就知道这不是NGINX的问题,而是Symfony设置的问题。
  2. 您是否为cachelogs创建了prod目录或仅为dev创建了目录?它们可以由www-data写吗?
  3. 您是否检查了/var/log/nginx/project_error.log,以查看在尝试访问app.php时是否出现了错误
  4. app.php文件的顶部,添加行error_reporting(E_ALL);。现在,当您尝试访问生产版本时,会看到任何错误吗?
  5. 尝试清除用于生产的缓存。取决于您如何设置服务器(您是对缓存/日志文件使用ACL还是CHOWN/CHMOD?)您可以运行类似于sudo su -u www-data php bin/console cache:clear --env prod的程序
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41352048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档