web-dev-qa-db-ja.com

新規インストール後、null $ wp_customizeによるwp-admin/customize.phpの致命的エラー

クリーンインストール後にCustomize Your Siteをクリックすると、以下のエラーが表示されます。指定されたファイルで$wp_customizeが誤ってnullになっているようです。インストール全体が成功し、問題に関するドキュメントを見つけるのに苦労しています。

Fatal error: Uncaught Error: Call to a member function changeset_post_id() on null in /home/<user>/blog/wp-admin/customize.php:29 Stack trace: #0 {main} thrown in /home/<user>/blog/wp-admin/customize.php on line 29
1
gopher

サブディレクトリでWordPressを設定する方法に関する記事から、nginxの設定に誤りがあるようです。

設定前

location @wp {
    rewrite ^/blog(.*) /blog/index.php?q=$1;
}

location ^~ /blog {
    root /home/user;
    index index.php index.html index.htm;
    try_files $uri $uri/ @wp;

    location ~ \.php$ {

        include fastcgi_params;

        fastcgi_index index.php;
        fastcgi_intercept_errors on;
        # Deleted this line
        fastcgi_split_path_info ^(/blog)(/.*)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    }
    break;
}

設定後

location @wp {
    rewrite ^/blog(.*) /blog/index.php?q=$1;
}

location ^~ /blog {
    root /home/user;
    index index.php index.html index.htm;
    try_files $uri $uri/ @wp;

    location ~ \.php$ {

        include fastcgi_params;

        # Added this line
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_index index.php;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    }
    break;
}

いくつかのコメントで述べたように、いくつかのPHPサーバー変数は、/wp-admin/customize.phpをロードするときに問題を引き起こしているnginx設定の誤りのために誤って設定されていました

/wp-admin/customize.php?wp_customize=onにアクセスして、致命的なエラーをスローする代わりに動作し始める場合は、nginxの設定がこのシナリオに問題があることを確認できます。

1
gopher