【问题标题】:heroku php nginx configurationheroku php nginx 配置
【发布时间】:2014-08-31 08:52:05
【问题描述】:

我有一个驻留在 Heroku 上的 php 应用程序(Yii 框架)。我正在尝试正确设置 nginx 配置,以便应用程序正确运行。现在,它服务于 PHP,但不服务于静态文件。下面是我的 nginx 配置以及 Procfile 中的命令。任何帮助表示赞赏。

--Procfile--
web: vendor/bin/heroku-php-nginx -C nginx.conf

--nginx.conf--
location / {
    try_files $uri @rewriteapp;
}

location @rewriteapp {
    rewrite ^(.*)$ /myapp/public/index.php/$1 last;
}

location /css {
    alias /myapp/public/css/;
}

location /js {
    alias /myapp/public/js/;
}

location /img {
    alias /myapp/public/img/;
}

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass  heroku-fcgi;
}

【问题讨论】:

  • 您能否提供一个未提供静态文件的示例?喜欢example.com/assets/js/jquery.min.js...
  • @ALtheX 感谢您提供的信息,我终于能够从 Google 中弄清楚了;D

标签: php heroku yii nginx


【解决方案1】:

我最终得到了下面这个配置的一切工作:

location / {
    root /app/myapp/public;

    try_files $uri @rewriteapp;
}

location @rewriteapp {
    rewrite ^(.*)$ /myapp/public/index.php/$1 last;
}

【讨论】:

  • 你不需要最后一节;这已经在外部默认配置中了。
  • 另外,您不应该这样定义文档根目录。使用以下命令: location / { try_files $uri @rewriteapp; } 位置 @rewriteapp { 重写 ^(.*)$ index.php/$1 最后;在你的Procfile 中,使用web: vendor/bin/heroku-php-nginx -C nginx.conf myapp/public/(见devcenter.heroku.com/articles/…)
  • @dzuelke,我已经尝试了很多东西,但我仍然遇到问题。 stackoverflow.com/questions/29418400/…这里有什么要补充的吗?
猜你喜欢
  • 2012-03-17
  • 2021-08-14
  • 2021-05-11
  • 2014-01-01
  • 2020-08-09
  • 2023-03-07
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多