EDITAR
Resulta que estaba ladrando el árbol equivocado tratando de editar .htaccess, ya que nginx no lo usa. Lo que aparentemente necesito hacer es editar mi archivo .conf. Antes de leer esto, my_app.conf se veía así:
upstream backend {
server unix:/u/apps/my_app/tmp/php.sock;
}
server {
listen 80 default;
root /u/apps/my_app/www;
index index.php;
access_log /u/apps/my_app/logs/access.log;
error_log /u/apps/my_app/logs/error.log;
location / {
try_files $uri $uri/ /index.php;
}
# This location block matches anything ending in .php and sends it to
# our PHP-FPM socket, defined in the upstream block above.
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /u/apps/my_app/www$fastcgi_script_name;
include fastcgi_params;
}
# This location block is used to view PHP-FPM stats
location ~ ^/(php_status|php_ping)$ {
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
# This location block is used to view nginx stats
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Ahora se ve así, y todavía no funciona:
upstream backend {
server unix:/u/apps/my_app/tmp/php.sock;
}
server {
listen 80 default;
root /u/apps/my_app/www;
index index.php;
access_log /u/apps/my_app/logs/access.log;
error_log /u/apps/my_app/logs/error.log;
location / {
try_files $uri $uri/ /index.php;
}
location /wordpress/ {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2 |doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires max;
}
# Uncomment one of the lines below for the appropriate caching plugin (if used).
#include global/wordpress-wp-super-cache.conf;
#include global/wordpress-w3-total-cache.conf;
# This location block matches anything ending in .php and sends it to
# our PHP-FPM socket, defined in the upstream block above.
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /u/apps/my_app/www$fastcgi_script_name;
include fastcgi_params;
}
# This location block is used to view PHP-FPM stats
location ~ ^/(php_status|php_ping)$ {
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
# This location block is used to view nginx stats
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Alguien sabe lo que estoy haciendo mal?
EDICIÓN FINAL
He cambiado mis enlaces permanentes del valor predeterminado a /% postname% /, y ahora los enlaces dentro del panel de administración de WordPress me dan errores 404, no páginas 404 de WordPress, páginas nginx 404. Buscando por qué esto me dice que esto debería estar editando mi archivo .htaccess o diciéndome que WordPress no puede reescribir .htaccess: el archivo .htaccess no existe y WordPress no está dando ningún error cuando cambio enlaces permanentes.
Intenté crear un archivo .htaccess en blanco en mi carpeta de WordPress, dándole 666 permisos, cambiando el usuario y el grupo a www-data y luego cambiando los enlaces permanentes, eso no funcionó. Luego lo cambié a esto antes de cambiar los enlaces permanentes:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Cuando eso no funcionó, cambié RewriteBase
a /wordpress/
antes de cambiar los enlaces permanentes de nuevo, todavía nada.
También ingresé al archivo .conf de mi sitio y cambié try_files $uri $uri/ /index.php;
a lo siguiente, reiniciando nginx y php5-fpm cada vez;
try_files $uri $uri/ /index.php?$query_string;
try_files $uri $uri/ /index.php?q=$request_uri;
try_files $uri $uri/ /index.php?$args;
Estoy ejecutando un servidor doméstico con nginx. ¿Alguna idea sobre lo que está pasando aquí?
fuente
Estoy usando WordPress multisitio con configuración de enlace permanente personalizada: /% category% /% postname% /
/etc/nginx/site-available/domain.conf
En el servidor {
Si su raíz wordpress no es el webroot sino http://domain.com/wordpress/ :
Si está utilizando wordpress antiguo con blogs.dir, agregue: location ^ ~ /blogs.dir {internal; alias /var/www/wordpress/wp-content/blogs.dir; acceso_log desactivado; log_not_found off; expira max; }
Verifique la configuración de nginx: sudo nginx -t
Recargar nginx: sudo service nginx reload
También intente cambiar la configuración del enlace permanente.
fuente
Tuve que agregar este fragmento de código tanto a la
/sites-available/your-settings-file
y/sites-enabled/your-settings-file
:Me está funcionando ahora.
fuente
Tuve que establecer la ruta raíz al directorio instalado de wordpressś: root / var / www / html / wp;
No me gusta porque tengo más aplicaciones instaladas en esta máquina, pero crear más hosts virtuales debería ser suficiente.
fuente