前提・実現したいこと
さくらのVPSを利用し、CentOS7上でnginxとWordPressのインストールを行いました。
インストールまで終えた時点で新規投稿のテストを行っています。
発生している問題・エラーメッセージ
投稿テストで”下書きを保存”および”公開”を行うと、『更新に失敗しました』というメッセージが表示され投稿に失敗します。ダッシュボードから”メディアのアップロード”は成功します
サイトのアクセスログを確認したところ,FastCGIがエラーを出力していることがわかりました。このエラーはnginxのPHP設定中にある SCRIPT_FILENAMEに起因しているというWebサイトをいくつか見たのですが,そこにある記述を参考にしても問題が解決せず,どのように修正してよいかわかりません。適切な設定方法を知りたいです。
アクセスログのエラーメッセージとnginxの設定ファイルは以下の通りです。
(サーバ名はxxx.jp、URLはyyyに置き換えています)
投稿後の試験について追記
質問時の状況では、ドキュメントルート直下ではなくxxx.jp/blog/ のようにサブディレクトリにWordPressをインストールしていました。
調べてみると、nginx+WordPressの環境では、サブディレクトリにWordPressをインストールしたい場合には追加の設定が必要とのことでしたので,blogディレクトリにアクセスした場合にエイリアスを追記するようにしてみましたが,やはりうまくいきませんでした。
また、このことから一旦WordPressを削除して、xxx.jp/ 直下に再インストールしてみたところ、正常に動作することがわかりました。
###エラーメッセージ
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: xxx.jp, request: "POST /yyy/wp-json/wp/v2/posts/17?_locale=user HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxx.jp", referrer:"https://xxx.jp/yyy/wp-admin/post.php?post=17&action=edit"
該当のソースコード
nginx
1server { 2 listen 80; 3 server_name xxx.jp; 4 rewrite ^ https://$server_name$request_uri? permanent; 5} 6server { 7 listen 443 ssl; 8 server_name xxx.jp; 9 access_log /var/log/nginx/xxx.jp-access.log main; 10 error_log /var/log/nginx/xxx.jp-access.log; 11 root /home/username/xxx; 12 13 ssl_certificate /etc/letsencrypt/live/xxx.jp/fullchain.pem; 14 ssl_certificate_key /etc/letsencrypt/live/xxx.jp/privkey.pem; 15 ssl_session_timeout 1d; 16 ssl_session_cache shared:SSL:50m; 17 ssl_session_tickets on; 18 ssl_dhparam /etc/nginx/ssl/dhparam.pem; 19 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 20 ssl_ciphers HIGH:!aNULL:!MD5; 21 ssl_prefer_server_ciphers on; 22 23 location / { 24 index index.php index.html index.htm; 25 try_files $uri $uri/ /index.php?$args; 26 } 27 28 location ~ .php$ { 29 fastcgi_pass 127.0.0.1:9000; 30 fastcgi_index index.php; 31 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 32 include fastcgi_params; 33 } 34}
あなたの回答
tips
プレビュー