Symfony 和 WordPress 的 nginx 配置并排运行

Posted

技术标签:

【中文标题】Symfony 和 WordPress 的 nginx 配置并排运行【英文标题】:nginx configuration for Symfony and WordPress running alongside each other 【发布时间】:2015-01-02 08:36:37 【问题描述】:

我在 /var/www/mysite/symfony 有一个 Symfony 站点,在 /var/www/mysite/wordpress 有一个 WordPress 博客。如何将 mysite.com/blog 指向 WordPress 以及所有其他对 Symfony 的请求?到目前为止,这是我尝试过的:

server 
    server_name mysite.com;
    root /var/www/mysite/symfony/web;

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

    location ~ ^/(app|app_dev|config)\.php(/|$) 
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $request_filename;
         fastcgi_index index.php;
         fastcgi_pass 127.0.0.1:9000;
    

    location ~ ^/blog 
        root /var/www/mysite/wordpress;
        try_files $uri $uri/ /blog/index.php?$args;

        location ~ \.php$ 
                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                fastcgi_index index.php;
                fastcgi_pass 127.0.0.1:9000;
        
    

    access_log /var/log/nginx/mysite-access.log;
    error_log /var/log/nginx/mysite-error.log;

使用此配置,我得到一个“找不到文件”。访问 mysite.com/blog 时出错。我的 nginx 日志文件显示 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream。我知道这不是我的 php-fpm 设置的问题,因为 Symfony 在我的站点根目录下运行良好。

我哪里出错了?

【问题讨论】:

你搞定了吗?我们必须开发一个具有类似设置的项目。希望在这里看到您发现部署此设置的任何“陷阱”的答案。 【参考方案1】:

我找到了在子文件夹中安装 wordpress 的特定规则:

# Replace all occurrences of [subfolder] with the folder where your WordPress install is located

# The WordPress rewrite
location /[subfolder] 
    try_files $uri $uri/ /[subfolder]/index.php?$args;


# The default MODX rewrite</h1>
location / 
    try_files $uri $uri/ @modx-rewrite;

原帖在这里:Web Rules: Nginx Rewrites, Redirects and other Cloud Configs | MODX Cloud

【讨论】:

以上是关于Symfony 和 WordPress 的 nginx 配置并排运行的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 作为 Symfony (Symfony3) 子目录

更改Symfony公共目录以适应网站

私人Blog服务搭建

Symfony 项目 CMS

在linux下安装nginx时报出./configure: error: invalid option "–prefix=/usr/webserver/ngi

symfony/skeleton 和 symfony/website-skeleton