nginx instala wordpress en /blog bajo mi dirección de dominio

nginx instala wordpress en /blog bajo mi dirección de dominio

Tengo un dominio example.com, sirve a mi sitio web utilizando un servidor web nginx que apunta a un puerto 3000 del contenedor acoplable de Nodejs usando proxy passla opción en /ubicación.

server {
    listen 80 default_server;
    server_name example.com www.example.com;
    index index.php index.html;
    access_log /var/log/nginx/access_example.com.log;
    error_log /var/log/nginx/error_example.com.log;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Ahora quiero agregar un sitio web de WordPress, /blogasí que agregué esta configuración en el bloque del servidor.

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location /blog {
        root /var/www;
        try_files $uri $uri/ =404;
    }

¿Por qué no puedo acceder a WordPress recién instalado /var/www/blog/ si lo ejecuto curl http://example.com/blog/license.txten mi terminal? Está bien y puedo ver el contenido del license.txtarchivo que agregué para la prueba, /var/www/blog/pero index.phpno lo cargué .index.html

Creo que el problema está en try_files $uri $uri/ =404;la línea pero no encontré nada útil. cualquier ayuda será apreciada

Respuesta1

Como probablemente sepa, Wordpress utiliza una arquitectura de controlador frontal, es decir, el punto de entrada para ejecutar cualquier script PHP es $WORDPRESS_ROOT/index.php. Debe indicarle a nginx que enrute las solicitudes en consecuencia:

try_files $uri $uri/ /blog/index.php?$args;

Tenga en cuenta que las solicitudes de la mayoría del contenido estático serán manejadas por uno de los primeros 2 valores. No existe un controlador 404 ya que Wordpress necesita manejar el escenario por sí mismo.

pero index.php no está cargado

Mmmm, no es una descripción muy significativa de lo que sucedió, es decir, ¿preguntaste explícitamente por ..../index.php o simplemente .../? ¿Qué respuesta obtuviste? ¿Qué había en tus registros?

Se necesita bastante configuración para PHP (y para la mayoría de los controladores fcgi) que generalmente se incluye en otra parte de su configuración. En Ubuntu, hubiera esperado que esto ya estuviera implementado si se instala desde el repositorio, pero sería recomendable probarlo. También sugeriría abordar esto ANTES de realizar la modificación anterior del controlador frontal, ya que esto complicará un poco las cosas. Utilice un script PHP sencillo de "hola mundo".

información relacionada