executando o wordpress blog como local do diretório dentro do servidor nginx configurado para trilhos

2

Eu tenho rodado um site na configuração do puma / rails sob o nginx. Agora temos que configurar o wordpress no caminho / blog, ou seja,

www.mysite.com é o aplicativo rails e www.mysite.com/blog é o blog do wordpress.

a configuração da localização feita para o blog do Wordpress é a seguinte

upstream app {
    # Path to Puma SOCK file, as defined previously
    server unix:///var/run/website/website.sock fail_timeout=0;
}

server {
    listen 80;
    server_name www.bhokaal.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    #server_name www.bhokaal.com;

    access_log /home/bhokaal/bhokaal.com/logs/access.log;
    error_log /home/bhokaal/bhokaal.com/logs/error.log;

    ssl_certificate /etc/ssl/www.bhokaal.com_cert_chain.crt;
    ssl_certificate_key /etc/ssl/www.bhokaal.com.key;

    root /home/bhokaal/bhokaal-website/public/;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_pass http://app;
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }

    location ^~ /assets/ {
        gzip_static on;
    # Per RFC2616 - 1 year maximum expiry
    expires 1y;
        add_header Cache-Control public;
    }

    location /blog {
       root /home/bhokaal/bhokaal-blog/;
       try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
    try_files $uri $uri/ /index.php?$args =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
       fastcgi_param SCRIPT_FILENAME   $document_root/$fastcgi_script_name;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 500m;
    keepalive_timeout 15;
}

minha suposição é que / blog get é processado pelo PHP enquanto o resto vai para o servidor puma upstream.

Recebemos um erro bastante enigmático quando acessamos www.bhokaal.com/blog

2017/12/08 12:10:02 [error] 19193#19193: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 49.207.56.120, server: , request: "GET /blog/ HTTP/2.0", upstream: "fastcgi://unix:/run/php/php7.1-fpm.sock:", host: "www.bhokaal.com"

Nginx, PHP-FPM e Puma estão todos rodando sob o mesmo usuário, então eu não acho que seja um problema de permissões de usuários como apontado pela maioria dos blogs que eu me referi sobre este problema.

    
por Anadi Misra 08.12.2017 / 08:05

2 respostas

1

Você precisa usar alias para mapear URIs que começam com /blog para uma raiz que termina com outra coisa. Consulte este documento para saber mais.

A solução mais limpa é usar um bloco location aninhado. O modificador ^~ no bloco externo evita efeitos colaterais. Consulte este documento para saber mais.

location ^~ /blog {
    alias /home/bhokaal/bhokaal-blog;
    index index.php;

    if (!-e $request_filename) { rewrite ^ /blog/index.php last; }

    location ~ \.php$ {
        if (!-f $request_filename) { return 404; }
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;

        include /etc/nginx/fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $request_filename;
    }
}

Evite try_files com alias devido a problema e observe esta advertência sobre o uso de if .

    
por 08.12.2017 / 14:48
0

isto é o que funcionou para mim,

instalando o wordpress em /home/bhokaal/bhokaal-website/public/blog , ou seja, a pasta pública rails

adicionando a localização e os blocos PHP como de costume

location  /blog {
    index   index.html index.htm index.php;
    try_files $uri $uri/ /blog/index.php?$args;
}

location ~ \.php$ {
    try_files $uri =404;

    fastcgi_pass    unix:/run/php/php7.1-fpm.sock;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include         fastcgi_params;
}
    
por 09.12.2017 / 06:09