如何在 nginx 的子目录中安装 symfony2 应用程序

2024-02-25

我需要在同一主机上但不同的子目录(或位置块)上安装多个 symfony2 应用程序。

使用此配置,当尝试访问任何 url 时,nginx 会抛出“找不到文件”或重定向循环消息。

Example:

/login -> /base/login
/app1 -> /base/app1
/app2 -> /base/app2

当前配置:

root /base/default; #Points to an empty directory

# Login Application
location ^~ /login {
    alias /base/login/web;
    try_files $uri app_dev.php;
}

# Anything else
location ~ ^/([\w\-]+) {
    alias /base/$1/web;
    try_files $uri app_dev.php;
}

location / {
    # Redirect to the login
    rewrite ^ /login redirect;
}

# Handle PHP
location ~ \.php$ {
    include fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    fastcgi_param HTTPS off;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
}

经过几个小时才找到这个(sf2 doc没有解释如何需要和解释cgi参数,你需要通过Request.php才能理解),所以我分享这个。

这个配置对于​​目录 {subdir} 中的 sf2 来说似乎没问题(并且禁止对 {subdir}/web/* 以外的其他文件进行 Web 访问)。

它适用于我的 php-fpm (套接字)。

当然,将“{subdir}”替换为 /path/from/docroot/to/symfony_root/

可以通过将“dev”添加到“{subdir}”来选择开发环境(因为url中的app_dev.php不再适用于此conf)

server {

  # general directives

  location ~ ^/{subdir}(/.*)$ {   
    try_files /{subdir}/web$1 @sf2;
  }
  location ~ ^/{subdir}dev(/.*)$ {
    expires off;
    try_files /{subdir}/web$1 @sf2dev;
  }
  location @sf2 {
    expires off;
    fastcgi_pass   {your backend};
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/{subdir}/web/app.php;
    fastcgi_param SCRIPT_NAME       /{subdir}/app.php;
    fastcgi_param REQUEST_URI       /{subdir}$1;
  }
  location @sf2dev {
    expires off;
    fastcgi_pass   {your backend};
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/{subdir}/web/app_dev.php;   
    fastcgi_param SCRIPT_NAME       /{subdir}dev/app_dev.php;       
    fastcgi_param REQUEST_URI       /{subdir}dev$1;     
  }


  # other location directives

  # if some others apps needs php, put your usual location to cactch php here

}

我希望它能有所帮助(并且没有任何配置错误),但没有任何保证......

当然,如果不需要,您可以选择 prod/dev conf。您可以使用 var 和仅一个 @sf2 位置来代替:

  set $sf2_root /{subdir};
  location ~ ^/{subdir}(/.*)$ {   
    set $sf2_prefix /{subdir};  
    set $sf2_ctrl app.php;
    try_files $sf2_root/web$1 @sf2;
  }
  location ~ ^/{subdir}dev(/.*)$ {
    set $sf2_prefix /{subdir}dev;
    set $sf2_ctrl app_dev.php;
    expires off;
    try_files $sf2_root/web$1 @sf2;
  }
  location @sf2 {
    expires off;
    fastcgi_pass   {your backend};
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$sf2_root/web/$sf2_ctrl;
    fastcgi_param SCRIPT_NAME       $sf2_prefix/$sf2_ctrl;
    fastcgi_param REQUEST_URI       $sf2_prefix$1;
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 nginx 的子目录中安装 symfony2 应用程序 的相关文章

随机推荐

  • 如何跨越表格小部件的水平标题

    我想将水平标题合并 跨越 QTableWidget 您可以子类化 QHeaderView 并为您想要跨越的每一组列 行创建一个部分 并连接信号和槽以使它们对不同的列 行做出反应 以下示例用于跨越水平标题 include
  • 点击 UILabel 的部分文本

    我有一个问题boundingRectForGlyphRange总是返回CGRect zero 0 0 0 0 0 0 0 0 例如 我正在编写触摸文本的一部分的代码UILabel特征 我的文字第一部分是any text第二个是阅读更多 我希
  • 在Python中公开C++类(只能加载ET_DYN和ET_EXEC)

    我在看here http www boost org doc libs 1 56 0 libs python doc tutorial doc html python exposing html了解如何将 c 暴露给 Python 我已经构
  • 使用missViewControllerAnimated传回数据

    我有一个FirstViewController and a SecondViewController 我创建了一个按钮FirstViewController为了以模态方式执行segueSecondViewController In Seco
  • 从 UIKit 调用的 SwiftUI 模式中的“关闭”按钮

    我有一个 SwiftUI 模态视图 我从主 UIKit 视图调用它 我想在我的模式视图中添加一个关闭按钮 据我所知 UIKit 中没有 State 变量 因此我正在创建一个单独的 SwiftUI 视图来存储我的 State 变量 但由于某种
  • 如何在 Openstreetmap 上双击获取坐标?

    我在用角度 openlayers 指令 https github com tombatossals angular openlayers directive 我想获取双击点的坐标 类似的问题 将点转换为经纬度 https stackover
  • 当模块未模拟时,如何在 Jest 中模拟导入的命名函数

    我正在尝试在 Jest 中测试以下模块 myModule js export function otherFn console log do something export function testFn otherFn do other
  • 如何对通用列表进行升序或降序排序?

    我有一个 MyImageClass 类型的通用集合 并且 MyImageClass 有一个布尔属性 IsProfile 我想对这个通用列表进行排序 其中 IsProfile true 位于列表的开头 我已经尝试过了 rptBigImages
  • 有没有办法自动构建 Node.js 项目的 package.json 文件

    package json 应该手动编辑吗 像 npm 这样的程序难道不能只浏览文件 查看 require 语句 然后使用它将必要的条目放入 package json 文件中吗 有这样的程序吗 package json 文件用于npm了解您的
  • 克隆泛型类型

    我想克隆一个通用对象并保留其类型 run Append style Clone BlackFont run object accepts only RunProperties objects public T Clone T what if
  • 在 iOS 上的 Safari 中滚动时如何监控滚动位置?

    我目前使用 window bind scroll foo 监视 window scrollTop 并做一些事情来创造视差效果 在所有桌面浏览器中foo 用户滚动的每个像素都会被调用 一切都很好 在 iOS 上的 Safari 中 滚动事件仅
  • 如何使 apk 安全。防止反编译

    我正在开发一个应用程序 它具有 SQLite 数据库来存储必须受到保护的个人信息 有哪些方法可以保护这些个人数据 APK很容易被完全反编译 那么我们如何保证APK的安全呢 另外 如何保护移动应用程序的数据库 基本上 有 5 种方法可以保护您
  • 无法运行宏...该宏在此工作簿中可能不可用

    我试图在不同的工作表上调用子程序 但收到运行时错误消息 具体来说 我有两个工作表和这些工作表中的多个 VBA sub 在其中一个 VBA 项目 例如 workbook1 xlsm 中 我有以下代码 Sub AnalysisTableMacr
  • 如何在 ie7 中使用 jquery 启用禁用的单选按钮

    这在 Firefox 中有效 我怎样才能使它在 IE7 中运行 addressSection input radio attr disabled false 我也尝试过这些但无济于事 addressSection input radio r
  • 使用 Android 调用 .NET Web 服务

    我知道以前曾在这里问过这个问题 但我认为这些答案不足以满足我的需求 我们有一个用于 iPhone 应用程序的 SOAP Web 服务 但我们可能需要 Android 特定版本或该服务的代理 因此我们可以选择使用 SOAP 或 JSON 我对
  • C# 更改特定行的背景颜色

    我已经从网格应用程序 XAML 模板 C Windows 应用商店 创建了一个新项目 到目前为止 我没有更改模板中的任何内容 但我想更改网格中特定行的背景颜色
  • Char 数组 VS Char *

    这是一个基于问题答案的问题 const char myVar 与 const char myVar https stackoverflow com questions 7082175 const char myvar vs const ch
  • 如何命名范围为 0.0 到 1.0 的值?

    我经常使用 0 0 到 1 0 之间的值来保存进度 透明度或其他可以从none to full 如果你愿意的话 可以给个百分比 我不想称其为百分比因为它不表示为 0 到 100 之间的值 为了给我的变量一个清晰的名称 我仍然想描述这种值 什
  • array_unique 有两个数组

    我有两个长度相同的数组 search type search term 我想删除任何重复项 因为存在具有相同类型和搜索词的搜索 即 search type a search type b search term a search term
  • 如何在 nginx 的子目录中安装 symfony2 应用程序

    我需要在同一主机上但不同的子目录 或位置块 上安装多个 symfony2 应用程序 使用此配置 当尝试访问任何 url 时 nginx 会抛出 找不到文件 或重定向循环消息 Example login gt base login app1