Tente:
location / {
try_files $uri $uri/ /index.php;
}
Estou movendo um blog do Wordpress de um servidor da Web baseado no Apache para um servidor da Web baseado em Nginx . Passos fáceis, pensei:
scp da pasta fonte do WordPress, neste exemplo, /var/www/example.com, que é transferido para uma pasta com o mesmo nome no servidor remoto. Não problema com isso.
mysqldump do WordPress fonte base de dados. Não há problema com isso.
No servidor da Web nginx, eu crio um banco de dados (com o mesmo nome que o fonte um, só para manter tudo igual).
Eu configuro um blog WP padrão para ver se
está tudo bem neste momento. Eu
criar um bom
/etc/nginx/sites-available/example.com
arquivo de configuração (e link para
sites habilitados, é claro). Que
arquivo de configuração aponta para um diferente
pasta (/ var / www / exampletemp)
Modifique meu arquivo de hosts do Windows para testar o novo blog no domínio em que estou interessado. O blog em example.com mostra bem, o blog WP padrão, é claro, mas com as URLs corretas.
E depois os passos cruciais. Primeiro eu editar /etc/nginx/sites-available/example.com por isso aponta agora para o backup real pasta (/var/www/example.com) - > (apenas mude os locais de raiz e diretiva fastcgi).
Então eu crio outro banco de dados, restaurar o banco de dados de origem neste novo, edite o arquivo wp-config.php em o /var/www/example.com apenas no caso há algo faltando, e reinicie o nginx.
O que eu ganho?
Um lindo, lindo "ERRO 310: muitos redirecionamentos": (
Eu posso ver a página de login em www.example.com/wp-login.php, mas meus usuários de origem não funcionam e não consigo acesso ao Painel do WordPress. Eu modifiquei, por exemplo, uma conta de administrador do phpMyadmin, configurando uma nova senha e selecionando a criptografia MD5, e embora isso tenha funcionado quando eu mudei do Apache para Apache ou Nginx para Nginx, desta vez não foi.
Eu realmente não entendo porque há esse erro Muitos redirecionamentos. Eu tentei desativar todos os plugins (renomeando o / wp-content / plugins para / wp-content / oldplugins, ou desativando todos eles com uma consulta SQL) mas sem sorte novamente.
Desculpe pela longa pergunta. Espero ter me esclarecido ...
Edit: Este é o arquivo de configuração nginx, apenas no caso de:)
server {
listen 80;
server_name www.example.com;
rewrite ^/(.*) http://example.com/$1 permanent;
}
server {
listen 80;
access_log /var/www/example.com/log/access.log;
error_log /var/www/example.com/log/error.log info;
server_name example.com;
root /var/www/example.com;
location / {
index index.php;
# if the requested file exists, return it immediately
if (-f $request_filename) {
break;
}
# all other requests go to WordPress
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
## Images and static content is treated different
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www/example.com;
}
## Parse all .php file in the /var/www directory
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example.com$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTP_HOST example.com;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort on;
fastcgi_read_timeout 180;
}
## Disable viewing .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
}
Estou pensando em outra resposta à minha pergunta : A pasta WP de origem no servidor Apache tem apache:apache
como user: group e depois de "scping" essa pasta no meu novo servidor Nginx , esse usuário e esse grupo não são mais válidos. Eu fiz o chown -R www-data:www-data
adequado para a nova pasta WP, mas ... isso poderia ser uma sugestão para a resposta?
Tente:
location / {
try_files $uri $uri/ /index.php;
}
O nginx passa um cabeçalho "Host" adequado para o servidor FastCGI? O Wordpress verifica esse cabeçalho e executa um redirecionamento se não for igual a uma configuração no banco de dados. Parece que você deve verificar seu /etc/nginx/fastcgi_params
e definir algo como fastcgi_param HTTP_HOST example.com;
.
Tags redirect nginx wordpress apache-2.2