Alojamiento de una aplicación wordpress y laravel a través de nginx

Alojamiento de una aplicación wordpress y laravel a través de nginx

Es lamentable, pero me veo obligado a hacer que una aplicación de WordPress y Laravel no solo coexistan sino que sean conscientes del estado de cada una. Tengo esto funcionando a través de un complemento de WordPress, un paquete laravel y una configuración de Apache, pero ahora necesito traducir la configuración para que funcione con nginx como servidor web.

Mi repositorio está configurado así:

/src- aplicación laravel, debajo de la cual /public contiene el punto de entrada index.php a la aplicación

/wordpress- aplicación de wordpress

Tengo la siguiente configuración de Apache VirtualHost que funciona y hace exactamente lo que necesito:

<VirtualHost *:80>
    ServerName app.local
    DocumentRoot /var/www/vhosts/app.local/wordpress
    ErrorLog /var/www/vhosts/logs/app_local_error_log

     <Directory "/var/www/vhosts/app.local/wordpress">
         Options Indexes FollowSymlinks MultiViews
         AllowOverride All
         Require all granted
         DirectoryIndex index.php
    </Directory>

    <Directory /var/www/vhosts/app.local/src/public>
            DirectoryIndex index.php
            Options FollowSymLinks MultiViews
            AllowOverride All
    </Directory>

     Alias /xyz /var/www/vhosts/app.local/src/public

     <Location "/xyz">
         AllowOverride All
     </Location>
</VirtualHost>

Todo lo que se encuentra bajo /xyz específicamente es manejado por laravel. Todo lo demás, incluido el root, lo maneja WordPress.

Aquí está mi configuración de nginx (estoy probando esto localmente con un cuadro laravel/homestead):

server {
listen 80;
server_name .app.local;
root "/home/vagrant/code/app/wordpress";

index index.html index.htm index.php;

charset utf-8;

location /xyz/ {
    alias /home/vagrant/code/app/src/public/;
    try_files $uri $uri/ /index.php?$query_string;
}

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt  { access_log off; log_not_found off; }

access_log off;
error_log  /var/log/nginx/app.local-error.log error;

sendfile off;

client_max_body_size 100m;

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location ~ /\.ht {
    deny all;
}
}

Siento que estoy muy cerca, sin embargo, parece que WordPress aún termina manejando la solicitud independientemente de si uso aliaso root, agrego barras diagonales a las rutas o reorganizo las directivas de ubicación. Simplemente no sé lo suficiente sobre nginx para depurar esto, o cuáles son mis alternativas en cuanto a configuración. ¡Cualquier ayuda sería muy apreciada!

También intenté configurar una directiva de ubicación específica y personalizar los parámetros que paso a fastcgi, como se ve aquí, y eso parece no tener ningún efecto:

https://gist.github.com/mnshankar/9642844

información relacionada