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

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

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

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

WordPress

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

受付中

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

forest-in-mind
forest-in-mind

総合スコア6

nginx

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

WordPress

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

0回答

0評価

0クリップ

1183閲覧

投稿2019/07/28 08:26

編集2022/01/12 10:55

前提・実現したいこと

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

server { listen 80; server_name xxx.jp; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443 ssl; server_name xxx.jp; access_log /var/log/nginx/xxx.jp-access.log main; error_log /var/log/nginx/xxx.jp-access.log; root /home/username/xxx; ssl_certificate /etc/letsencrypt/live/xxx.jp/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xxx.jp/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets on; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

yukky1201

2019/07/29 01:11

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

2019/07/29 11:50

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

nginx

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

WordPress

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