サーバー移転で、WordPressのリンクが全部切れた

 サーバー移転は、phpMyAdminを使って、問題なく終わったと思っていた。

 トップページも表示されていたし。ところが、メニューからのリンクが全部サーバーエラーになってしまっていたのだ。

 このサイトは、パーマリンク設定をカスタム構造「/%category%/web%post_id%.html」にしていて、それ自体は、phpMyAdminでインポートした際に、ちゃんと入力されていた。

 ただ、動作的に、この辺りが怪しいとは思ったので、元々入力されていたものを変更することなく、「変更を保存」を押すと、あっさりリンクは直った。

解決方法:管理画面>設定>パーマリンク設定 カスタム構造に入力されているのを確認の上、「変更を保存」を押す。

サーバーを引っ越した

契約更新のタイミングで、XREA + から、CORESERVER に引っ越した。XREA + では、wordpressのバージョンアップが面倒で、2.9のままで放置していたのだが、いいタイミングなので、新サーバーに3.0の新しいwordpressをアップロードした。

プレーンなwordpressを新サーバーにアップロードした後、phpMyAdminを使ってデータベースをインポート。

ドメインを、旧サーバーに向けていたものを、新サーバーに向けて、引っ越し終了。

さすが、wordpressの引っ越しも慣れてくると手早いねえと満足していて、ついうっかり面倒な事をやってしまった。XREA +のサーバーも予備用としてキープするつもりなのだが、有料から無料にすると、容量が50MBまでしか使えなくなってしまう。それで、サーバーの中身を整理するつもりで、いらないファイルを削除していたのだが、その流れで、/public_html/log の中身を一瞥して、「ここのログ見ないし、削除」ということで、中身を全部削除したのだ。実は、phpMyAdminとかのデータも全部ここに入っていたのに。しかも 、消すつもりだった旧サーバーではなく新サーバーの方を削除してしまったのだ。アクセスできなくなって初めてこの事態に気がついた。しょうがないので、CORE SERVER 管理画面から、再インストールするも、アクセスできず。訳がわからず、データベースを削除して、また新規に作成(←この動きは全く意味がないどころか、余計な仕事を増やしてしまった)。

時間を置いて、何度アクセスしても、エラーメッセージが出るので、違うブラウザでやってみると、ベーシック認証まで聞いてくる始末。こんなこと今まで一度もなかったので、どうも、phpMyAdmin 以外にも大事なファイルを削除してしまったような気がした。それで、思い当たるパスワードを入れて、何度目かでアクセス成功。phpMyAdminにも無事アクセスできるようになりました。

一時は、もう手に負えないと思って、別のサーバーに移ってしまおうかと思ったのだが、いいサーバーの空きがなくて、というか、今回たまたま取得できたサーバーはかなり良さそうなので、引っ越すのが惜しかったのだ。もう満員で、このサーバーの別アカウントを取る事もできなかったわけで。それで、なんとかならないかと試行錯誤した訳なのだが、今にして思うと、大事なファイルを削除したというよりは、やっぱり時間の問題だったような気がする。じっと待っていれば、使えていたのではないかなと。

キャッシュで高速表示 [ WP Super Cache ]

WordPressは、動的にページを生成する。このプラグインを使うと、キャッシュを作成し、静的ページのようにできる。
パーマリンクを有効にする必要があるようだ。

サーバーのキャッシュの様子を観察すると、誰かがそのページにアクセスするとサーバーにキャッシュされるようだ。
キャッシュの方法は、「Super Cache」と「WP Cache」があり、どれを利用するか選べる。

「Super Cache」‥‥優先的にキャッシュを使い、サイト表示を速くする。有効期限が切れていたり、新しいものがあっても、データベース に読みに行かない。
「WP Cache」‥‥データベースとキャッシュを比較して判断する。新しいものがあれば、データベースを読みにいくので多少遅くなる。

このプラグインが有効になっているかは、サイトのソースの下を見て、
<!– Cached page generated by WP-Super-Cache on 2009-11-20 18:25:39 –>などと書き込まれていれば成功。

「ログインしているユーザーはキャッシュを利用しない」という設定ができるのは、なかなか便利。

ちなみに、このサイトではまだ導入していません。近いうちに入れたいと思っています。

CPIでパーマリンク

CPI独自仕様のPHPでは、WordpressでPermalinks機能が正常に動作しない。
パーマリンクの設定をすると、.htaccessファイルに

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

と自動挿入するが、これだけだと駄目で、その前に

Options +FollowSymLinks

を入れる必要がある。これは、CPIサーバーでmod_rewriteを有効にするための記述。

.htaccessファイル全部の内容

suPHP_ConfigPath /usr/home/サーバー番号/secure/ ←php.iniの場所
AddHandler x-httpd-php528 .php ←使用するPHPのバージョン指定
Options +FollowSymLinks ←今回手動で追加

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress