サポート » 使い方全般 » サーバー移転後に旧サーバーの情報が残ってしまった

  • 解決済 tomg25

    (@tomg25)


    同じレンタルサーバー内にて、wordpressを引っ越ししました。
    DBも以前のサーバーよりすべてバックアップし、コンテンツファイルもすべてFTPでコピー、新しいサーバーに展開しました。
    DB上のwp-optionの設定、およびファイルのwp-config.phpも修正したところ、一見、動作もちゃんとしており、管理画面へのログインも問題ない状態です。

    しかし画像をメディアにアップロードすると

    Warning: Unknown: open(/servername/古いusername/tmp/sess_f4f438ed93923ba4d0c74185133bc200, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
    
    Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/servername/古いusername/tmp) in Unknown on line 0

    と、エラーメッセージが表示されます。
    ただし画像アップロードについては成功しているようで、メディア一覧にも表示されます。

    ファイルかディレクトリが見つからないとありますが、古いユーザー名となっている以前のサーバーのもので、この設定がどの部分でなされているのか、どの部分を修正すればよいのかがわかりません。

    大変恐縮ですが、ご教示ください。

15件の返信を表示中 - 1 - 15件目 (全18件中)
  • バージョンをお願いします。
    それと、3.0以降でしたらマルチ化してるとかしてないとか。

    で、とりあえず通常状態だという前提で。
    設定 → メディア → ファイルアップロード
    こちらで、パスが古い状態とかではないですか?

    kvex様 ご教示ありがとうございます。
    バージョンは現時点最新の3.0.4です。

    マルチ化はいたしておりません。

    設定 → メディア → ファイルアップロードのパスの設定は、元々デフォルトのままでした。
    従いまして、ファイルアップロードの項目の
    「アップロードするファイルの保存場所」はデフォルトの「wp-content/uploads」。
    「ファイルへの完全な URL パス」は「未入力」としております。

    また、関係があるかは不明ですがプラグインの管理画面上での検索及びインストールは問題ないものの削除では下記エラーが出ます。
    (例:wp-super-cacheの場合)
    エラー: プラグイン wp-super-cache/wp-cache.php を完全に削除できませんでした。 によりプラグインの削除に失敗しました。

    どうぞよろしくお願いいたします。

    そうですか。
    エラー内容から考えられることは、他に
    session.save_path
    が設定してないとかなんですけど、同じ設定のサーバなんですよね?

    はい。同じ設定、同じ仕様のサーバー(coreserver)です。
    契約プランも同じですし、サーバーそのもののハードの仕様も同じようです。

    仕様の紹介には以下のようにありました。
    OS Linux (32bit)
    ウェブサーバー Apache
    メールサーバー qmail
    FTPサーバー ProFTPD
    MySQLサーバー 5.1系
    (InnoDBは利用可能ですが、非公式サポート)
    PostgreSQLサーバー 8.2系
    Perl 5.8系
    PHP 5.2系
    Ruby 1.8.5
    メーリングリスト Mailman

    kvex様にいただいたヒント「session.save_path」を元に、少し調べてみました。

    phpinfo.phpで確認すると「session.save_path」はno valueとなっておりました。

    そこで、http://blog.ipweb.org/archives/54記事を参考にwp-config.phpに

    ini_set( 'session.save_path' , '/virtual/新username/tmp');
    ini_set( 'session.cookie_path' , '/virtual/新username/cookie');

    を追記するとともにそれぞれのパーミッションを707としました。

    するとメディアのアップロード時に表示されていた初期のエラーメッセージは出なくなり、
    アップロードした画像のタイトルや代替テキスト、キャプション、説明などが追記できる画面も出るようになりました。
    しかし、その下部に新たに

    : Unknown: open(/virtual/新username/tmp/sess_tapvvkosdmjm40ilevr4ccke06, O_RDWR) failed: Permission denied (13) in Unknown on line 0
    
    Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/virtual/新username/tmp) in Unknown on line

    と出るようになりました。
    少し前進したような気もしますが、もう少し模索してみたいと思います。
    またアドバイスの程、ぜひよろしくお願い申し上げます。

    一度 wp-content/cache/ をftpで消してしまうとか。(というか引っ越し時に消さないとよろしくないと思いますが)

    wp-content/cache/はディレクトリごと存在していませんでした。
    試しにftpで設置し、パーミッションも777としてみました。

    しかし、相変わらずな状況です。

    tmp のほうのパーミションはどうでしょう?

    引き続きありがとうございます。

    tmpのパーミッションは707、755、777と試してみましたが、残念ながら結果は変わりませんでした。

    どうも、本当に状態が同じなのかというのが気になるんですけど。
    open_basedir とかは同じですか?

    なんか、そのへんの設定により、書き込めないとかそういうんじゃないかと思うんですけど。

    私自身 coreserver で何度もサーバの移転を経験しております。

    自分がサーバを移転する時にはデータベース内にディレクトリの絶対パスの情報が含まれていたら全て書き換えるようにしています。別の言い方をすればサーバの環境依存情報を全て書き換えなければ、予期せぬエラーが起きる可能性があります。

    なのでこれまでの対処を元に戻した上で、ダンプファイルをテキストエディタで置き換えするなり、phpMyadminから書き換えるなり、SQLコマンドを打つなり方法はどれでも良いですが、

    データベース内の
    /virtual/旧サーバのアカウント名

    /virtual/新サーバのアカウント名

    に書き換えてみてはいかがでしょうか。おそらくこれで今回の問題は回避できるかと思います。

    Heihachiro様

    アドバイス誠にありがとうございます。
    本件とは違いますが、ダンプファイルがかなり大きく、色々エディタを試してみましたが重くて、場合によってはフリーズするような状況です。

    仰るとおりダンプファイル内には旧サーバのアカウント名が残っている箇所があると思います。

    ありがとうございます。
    何とか書き換えて再チャレンジしてみたいと思います。

    kvex様

    open_basedirについての知識がございませんでした。
    調べて理解しようと努めているところです。

    色々とありがとうございます。

    ダンプファイルに残っている旧サーバのアカウント名もphpMyadminからすべて書き換えることができましたが、やはり同じ症状が出ました。(初期の旧ユーザーのサーバー情報の入ったエラー表示はwp-config.phpへのsave_pathに関する追記ですでに解決済み)

    この段階でのエラーメッセージは依然として

    : Unknown: open(/virtual/新username/tmp/sess_5h18lm7c1ulvdaln5k9os0pq95, O_RDWR) failed: Permission denied (13) in Unknown on line 0
    
    Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/virtual/新username/tmp) in Unknown on line

    その後良く見ていますと「tmp」に書き出されているファイル(例:sess_5h18lm7c1ulvdaln5k9os0pq95)の情報が通常は所有者・グループそれぞれユーザー名とhpusersとなっている様なのですが、所有者・グループともにApacheとなってしまっておりました。
    幸いcoreserverにはこれらファイルの所有情報を書き換えるツールが管理画面にあり、それを使用して所有者・グループそれぞれユーザー名とhpusersに書き換えました。
    するとエラーメッセージは出なくなりました。

    一応の解決をみた格好ですが、今後wordpressが書き出すファイルの所有者情報などについては様子を見ていこうと思います。

    色々とご教示いただきましたkvex様、Heihachiro様、この度はありがとうございました。

    解決していますが。

    やはり2つのサーバで状態が違うんじゃないでしょうか?
    htaccessとかなにか書いてませんか?念のため見ておいて下さい。

15件の返信を表示中 - 1 - 15件目 (全18件中)
  • トピック「サーバー移転後に旧サーバーの情報が残ってしまった」には新たに返信することはできません。