前回はPHP5.4で動く古いWPをPHP8で動くようにする作業のお話でした。
今回はその続きで、XAMPPで動くようになったWPをサーバーにUPして公開できるまでのお話です。
まずXAMPPからDBデータをエクスポートします。それは前回WPをバージョンアップした際に、DBの仕様も変化があった可能性があります。ずいぶんとWPのバージョンが変わりましたから、念のため先に落としたものよりXAMPPで表示確認できたDBのほうが安心かと思います。
DBのデータが準備できたら、まず元サーバーのPHPのバージョンを5.4から8.1にアップします。恐らくこの作業でそれまで表示していたサイトは表示しなくなると思いますので予めベーシック認証などで非表示にしておくとよいかもです。
phpMyAdminで新たにデータベースを用意し、そこにインポートします。インポート終了後はXAMPPで行ったようにsiteurlとhomeのURLをドメインに変更します。
// ドメイン名がhogehoge.co.jpの場合
siteurl : http://localhost/wp → https://hogehoge.co.jp/wp ※ssl対応してる場合
siteurl : http://localhost → https://hogehoge.co.jp ※ssl対応してる場合
WPデータはXAMPPと同じような環境だと調整が早いと思いますので、FTPでサーバーのルートにXAMPPのhtdocsに置いたwpフォルダごとアップロードします。
サーバーのルートには、XAMPPのhtdocsに作った.htaccessファイルとindex.phpファイルをアップします。
これで一度ドメイン入力して表示するか確認してみましょう。
XAMPPと同じ環境になったはずなので表示してもおかしくないのですが、これでも表示しない場合があります。実は今回自分はうまく表示しませんでした。なぜかずっとループをしている状態。
そこでとった行動は、XAMPPで行った作業と同じく、フォルダ名含むURLの状態で表示するよう変更しました。
一旦サーバーのルートに置いたindex.phpはファイル名変更し、DBでwp_optionのhomeをsiteurlと同じにし、ブラウザでフォルダ名含めて入力してみました。
https://hogehoge.co.jp → https://hogehoge.co.jp/wp
すると表示することができました。
もしできなかった場合、キャッシュ、.htaccessとindex.phpの設定間違い、プラグインのリダイレクト機能などいろいろと考えられるかもしれません。その場合はキャッシュクリアや一度プラグイン削除など行ってみてください。
表示できた場合、管理画面でパーマリンクの設定を一度行います。
管理画面 > 設定 > パーマリンクと進み、なにも変更せず「変更を保存」ボタンをクリックします。
これでurlや.htaccessに何かしら作用するそうです。
そして次に、管理画面 > 設定 > 一般と進み、サイトアドレスを変更します。DBではhomeはこの部分にあたり、WPの機能をしようせずDBで直接homeのurlを変更していたので何かしら障害が起きてたのではないかと思います。
ここでドメインに変更し、保存します。
その後、再度ファイル名変更したindex.phpに戻し、ブラウザにドメイン入力して確認します。
表示すれば成功です。
もし記事にところどころ画像が表示してなかった場合、ファイルパスが変わってしまっているため修正する必要があります。
https://hogehoge.co.jp/wp-content/uploads/ファイル名
↓
https://hogehoge.co.jp/wp/wp-content/uploads/ファイル名
前回DBをXAMPPにインポートする際、データをなにも触らないようにという意味はここでの意味でした。もしXAMPPでlocalhostなど変更していれば、ここでもまた作業する必要が出てくるため二度手間で、さらに面倒なことになっていた恐れがありますw
また、テンプレートファイルに直接URLや画像などの追加を手作業でhtml入力しているのであればそれらも手作業で修正する必要があります。
こういうことがありますので、売り切りの際は画像の追加に絶対パスを使うより、アップロードパスを取得する関数など交えてパスを入力したほうが面倒ですが無難で親切かもしれません。