質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

0回答

1493閲覧

nginx+WordPressで新規投稿の保存ができずサイトを更新できません

forest-in-mind

総合スコア6

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2019/07/28 08:26

編集2019/07/29 12:00

前提・実現したいこと

さくらの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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukky1201

2019/07/29 01:11

wordpressに関するphpでのみエラーがでるのか、php全般でエラーが出るのか切り分けはできていますか。
forest-in-mind

2019/07/29 11:50

返信くださいましてありがとうございます。 wordpress以外では,例えばphpinfo(); などの単純な記述は問題なく動いています。 質問後に改めて検索をして、問題はnginx+wordpressの場合にドキュメントルート直下ではなくサブディレクトリにインストールするとエラーが起きることがあるというのを見つけました。この点を確認したので質問文に追記します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問