• Apacheで運営していたサイトをnginxサーバーに引っ越しました。

    過去記事の読み込みはできるのですが新規記事の追加ができません。
    Mysqlのpostsテーブルを見ると、ステータスinheritで挿入されており
    親IDが存在しておりません。

    しかしここからの問題の切り分けができずフォーラムに投稿させて頂きました。

    ここまでの特定に至ったプロセスは
    記事の追加をした後に、mysqlのpostsテーブルを見ながら
    http://anything-movie.com/【親記事ID】
    はページが見つかりません。

    http://anything-movie.com/wp-admin/post.php?post=【記事ID】&action=edit
    で呼び出すと白紙で表示されます。
    リビジョンを呼び出すURLの末尾をURLに書き換えると記事一覧にルーティングされます。

    Mysqlへのクエリーが届いていないのかと思っておりますが、nginxのキャッシュを切っても同じでした。
    此処から先の問題の切り分けをするにはどうしたらよろしいでしょうか?

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • データはどのように引っ越されたのでしょうか。
    とりあえずは設定のパーマネント設定を見直し、問題なかったとしても「更新」ボタンで更新してみてはどうでしょうか。

    また、たとえば、MAMPやXAMPPなどを使ってPCのローカル環境に Apacheやnginxサーバーを立ち上げて
    Apacheへ移行して問題なければ、nginxの設定に何か問題があるということになります。

    トピック投稿者 Metttt

    (@metttt)

    ご返信いただきましてありがとうございます。

    >データはどのように引っ越されたのでしょうか。
    Apache環境でwp-contentを圧縮しました。
    nginxの新サーバーでは真っさらのワードプレスをインストールし、
    wp-contentだけ上書きしました。
    Mysqlに関しては、phpmyadminにてインポートしました。
    表示の段階ではおかしい点は無いように思います。

    >とりあえずは設定のパーマネント設定を見直し、問題なかったとしても「更新」ボタンで更新してみてはどうでしょうか。
    ありがとうございます、行いました。

    >また、たとえば、MAMPやXAMPPなどを使ってPCのローカル環境に Apacheやnginxサーバーを立ち上げて
    >Apacheへ移行して問題なければ、nginxの設定に何か問題があるということになります。
    これは行ってみたのですが、MAMPのApacheに移行しても動きました。

    その後2つおかしい挙動を発見しました。
    記事更新後、新規追加ボタン押下し、あらたに記事を編集し公開ボタンを押すと
    1つ目の記事のURLとなります。

    URLの推移としては
    http://▲▲.com/wp-admin/post-new.php 記事編集後更新ボタン押下
    http://▲▲.com/wp-admin/post.php?post=◯◯&action=edit 発行され更新される そのままの画面で新規追加ボタン押下
    http://▲▲.com/wp-admin/post-new.php 真っ白の画面が表示され、記事編集後更新ボタン押下
    http://▲▲.com/wp-admin/post.php?post=◯◯&action=edit 発行され更新されるも一つ前のpostIDで表示される(上書きされる)

    2つ目のおかしい挙動は
    Nginx Cache Controllerプラグインを使っているのですが、それの設定保存ボタン押下後、
    画面上部に
    Warning: Cannot modify header information – headers already sent by (output started at /var/www/vhosts/▲▲.com/httpdocs/wp-includes/formatting.php:5011) in /var/www/vhosts/▲▲.com/httpdocs/wp-includes/pluggable.php on line 1174

    しかしこの絶対パスが前のサーバーのパスを引き継いでおります。
    現在のパスはvhostの階層がありません。この2つの問題が結びつかず苦悩しております。

    何か思い当たる点をご指摘頂けると幸いです。
    宜しくお願い致します。

    • この返信は8年、 1ヶ月前にMettttが編集しました。
    • この返信は8年、 1ヶ月前にMettttが編集しました。

    URLもフォルダ構成も移行前と移行後で同じということでしょうか。

    MAMPのApacheでは動作したということですので、MAMPのnginx環境ではどうでしょうか。
    MAMPは設定でnginxに切り替える事ができます。

    あとは
    http://server-setting.info/centos/nginx-wordpress-check-point.html
    あたりを参考に nginxにて WordPressをつかう際の注意点を確認してみることかなと思います。
    結構癖ありますからね、nginx…速いですけど。

    トピック投稿者 Metttt

    (@metttt)

    >URLもフォルダ構成も移行前と移行後で同じということでしょうか。
    はい、そうです。

    >MAMPのApacheでは動作したということですので、MAMPのnginx環境ではどうでしょうか。
    >MAMPは設定でnginxに切り替える事ができます。
    これも問題ありませんでした。

    今までのMysql関連の謎挙動は一部解決致しました。
    DNSに問題が有りました。

    サーバー引っ越しとともにドメインの管理者移管も行ったのですが、旧サーバーのMysqlに保存したかった記事が記録されておりました。サーバー会社に問い合わせたところ、ipの飛び先が不安定だったようです。

    記事の新規追加をする度に、スーパーリロードしてブラウザキャッシュを一旦リセットしないと
    ひとつ前の記事(postテーブル上に記録されている最新の記事)が上書きされてしまうという問題が有ります。

    タイトルと本文を埋めた時点でパーマリンクが表示されます。それがひとつ前のIDなのです。

    画像1枚目
    画像2枚目

    画像がうまく表示できなかった時のためのリンク1 2

    キャッシュに問題があるかと考え
    >– http://server-setting.info/centos/nginx-wordpress-check-point.html
    >あたりを参考に nginxにて WordPressをつかう際の注意点を確認してみることかなと思います。
    コレを参考にwp-admin以下はキャッシュしないと設定したのですが、上手く行きません。
    そもそもサーバー側の静的なキャッシュですよね。。。
    nginxでクライアント側のキャッシュの設定方法がわからず手間取っています。

    何度も申し訳ございませんが、nginxでクライアント側のキャッシュの設定は可能でしょうか?
    そもそも、この問題の切り分けはあっていますでしょうか?

    何か思い当たる点をご指摘頂けると幸いです。
    以上、宜しくお願い致します。

    • この返信は8年、 1ヶ月前にMettttが編集しました。
    • この返信は8年、 1ヶ月前にMettttが編集しました。

    お示しされた画像が表示されないのでなんともですが、
    nginxをどのような構成にされているのでしょうか。
    キャッシュも含めての構成です。

    キャッシュが毎回クリアされない場合で、リバースプロキシなどを使っているのなら
    nginx cache controller などが有用です。
    参考:https://ja.amimoto-ami.com/2013/12/03/how-to-use-nginx-cache-controller/

    ただ記事が上書きされてしまうという状況は変ですね。
    MAMP等のnginxでは問題ないことから、nginxの設定のどこかがおかしいのだろうと思います。

    http://qiita.com/egnr-in-6matroom/items/a08f4851bf16d0131e60
    あたりにパーマネントリンクをnginxで扱う際の注意なども書かれているので参考にしてみてはと思います。

    トピック投稿者 Metttt

    (@metttt)

    >nginxをどのような構成にされているのでしょうか。
    >キャッシュも含めての構成です。

    もういちど見なおしてみます。

    >キャッシュが毎回クリアされない場合で、リバースプロキシなどを使っているのなら
    >nginx cache controller などが有用です。
    nginx cache controllerは現在使っており、記事公開につき全部のキャッシュをクリアにしており、
    ユーザーから見える面は全て正常にクリアされております。

    >MAMP等のnginxでは問題ないことから、nginxの設定のどこかがおかしいのだろうと思います。
    ご指摘いただき、ありがとうございます。

    もうちょっと粘り強くやってみます。
    ご返答頂きありがとうございました。

    nginx cache controller を導入されているということは、リバースプロキシを使っているということですね。

    http://server-setting.info/centos/apache-nginx-10-proxy.html

    あたりを参考に、キャッシュをしない条件をいろいろ追加しないといけない場合もあるので、参考にしてみてはと思います。

    トピック投稿者 Metttt

    (@metttt)

    kimipooh様色々とご指摘頂きありがとうございました。

    .confのlocationディレクティブに下記内容追加で解決しました。

    
    set $no_cache 0;
    if ( $http_cookie ~ ^.*(comment_author|wordpress_logged_in|wp-postpass_).*$ ) { set $no_cache 1; }
    
    if ( $request_uri ~ "^/wp-admin/.*" ) { set $no_cache 1; }
    if ( $request_uri ~ "^/wp-content/.*" ) { set $no_cache 1; }
    if ( $request_uri ~ "^/wp-include/.*" ) { set $no_cache 1; }
    if ( $request_uri ~ "^/wp-cron.php.*" ) { set $no_cache 
    if ( $request_uri ~ "^/wp-login.php.*" ) { set $no_cache 1; }
    
    if ( $request_method != "GET" ) { set $no_cache 1; }
    
    proxy_no_cache  $no_cache;
    proxy_cache default;
    proxy_cache_key "$mobile$scheme://$host$request_uri";
    
    
8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「Nginxのサーバーに引っ越しをしたら新規追加が公開できない(ステータスinheritになる。)」には新たに返信することはできません。