Php

帶有 Nginx 的子目錄上的 WordPress:訪問儀表板?

  • July 30, 2012

我想建立一個 WordPress 部落格,但不是典型的配置:

  • 站點位於 www.example.com。到目前為止,它只有一個帶有圖像的靜態 index.html 文件,我們可能會使用 index.php 來顯示一些資訊並訪問網站的高級部分
  • 使用 WordPress的部落格,位於 www.example.com/blog

我在 Nginx 下進行了設置,但是雖然我可以在 www.example.com 上看到我的靜態首頁,在 www.example.com/blog 上看到我的部落格,但我無法訪問 WordPress 的管理面板,所以我無法登錄或寫新文章。

這是 /etc/nginx/sites-enabled/www.example.com 配置文件:

server {
   server_name  www.example.com;
   rewrite ^(.*) http://example.com$1 permanent;
}

server {
  listen   80;
  server_name  example.com;

  access_log  /var/www/www.example.com/log/access.log;
  error_log      /var/www/www.example.com/log/error.log info;

  index index.php;

  location / {
       set $php_root /var/www/www.example.com;
       try_files $uri $uri/ /index.php?q=$uri&$args;
       }

  location /blog {
       set $php_root /var/www/www.example.com;
       try_files $uri $uri/ /blog/index.php?q=$uri&$args;
       }

  ## Images and static content is treated differently

  location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|\
rtf|js)$ {
        access_log        off;
        expires           30d;
        root /var/www/www.example.com;
   }

   location ~* \.php$ {
       fastcgi_split_path_info ^(.+\.php)(.*)$;
       fastcgi_pass   backend;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
       include fastcgi_params;
       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;
   }
}
upstream backend {
             server 127.0.0.1:9000;

}

我必須做什麼才能訪問管理面板?我想這與 php 位置有關,但現在確定要觸摸什麼:(

這對任何 PHP 都不起作用。您在一個位置設置一個變數,然後在另一個位置使用它,這在 Nginx 中不起作用。範圍僅向下繼承,而不是向上或跨越,因此 http -> 伺服器 -> 位置,從不位置 -> 位置。

除此之外,實際上不需要為 PHP root 使用自定義變數,您只需使用普通的 root 指令(在伺服器上下文中)指定您的 root,然後將內置變數 $document_root 用於您的 SCRIPT_FILENAME fastcgi 參數。

引用自:https://serverfault.com/questions/232758