Php
帶有 Nginx 的子目錄上的 WordPress:訪問儀表板?
我想建立一個 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 參數。