【发布时间】:2020-08-10 05:18:55
【问题描述】:
我正在尝试配置 nginx 以服务于一个 symfony 项目的多个版本。
发布文件夹结构:
/var/www/my-project/releases/24/
/var/www/my-project/releases/46/
/var/www/my-project/releases/47/
我想调用像“http://my-server/my-project/release/47”这样的 URL,它应该访问 /var/www/my-project/releases/47/web/app.php在服务器上。
我尝试了一段时间,但找不到最终解决方案,任何帮助都会很棒!
我的最后一次尝试:
server {
server_name my-server;
location / {
# try to serve file directly, fallback to app.php
try_files $uri $uri$2app.php$is_args$args;
}
location ~ /my-project/release/([-a-zA-Z0-9]+)/app\.php(/|$) {
root /var/www/my-project/releases/$1/web;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/app.php;
fastcgi_param HTTPS off;
error_log /var/log/nginx/my-project_$1_error.log;
access_log /var/log/nginx/my-project_$1_access.log;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this
internal;
}
}
此配置产生以下错误:
[错误] 2272#0: *169 重写或内部重定向周期,同时内部重定向到“/my-project/release/47app.phpapp.phpapp.phpapp.phpapp.phpapp.phpapp.phpapp.phpapp.phpapp.phpapp .php"
【问题讨论】: