「さくらインターネット」タグアーカイブ

WordPressのデータベースサーバのみ引っ越し

いつの間にか、さくらのレンタルサーバのスタンダードで扱える MySQL データベースの数が1から20に増えていました。

いままで1つに諸々のサイトのデータベースを突っ込んでいたので、管理しやすくするために、分けることにしました。さくらの場合、MySQLのデータベースはバージョンによってサーバが異なる仕様です。ついでに5.1から5.5にバージョンアップしたデータベースを作成しました。他のレンタルサーバでは、localhostに接続することで使用できますが、さくらのレンタルサーバでは個別のサーバ名を指定することになります。

今回は別のサーバになりましたので、PhpMyAdminで手元のPCにバックアップしたものを、新しいサーバにそのままリストアしました。テーブルの数は12個でした。

その後、Wordpressをインストールしたフォルダのwp-config.phpのデータベース関連の記述を新しいものに変更しました。これで引っ越しは完了です。

wwwなしとwww付きのアクセスを統合 (htaccess)

さくらインターネットのレンタルサーバではドメインの設定において、マルチドメインとして使用することを推奨されています。例えばexample.comのドメインを/exampleに割り当てたとき、www.example.comでもexample.comでもアクセスできるということです。ほかにもblog.example.comを/blogに割り当てるといった追加はもちろん可能です。サブドメインなしでアクセスがあった場合に、代表的なwwwに割り当てるのはありがたい設定ではあります。

ところがブラウザ上もwwwなしのままで表示されますし、検索園児になどには、サブドメインの有無で全く別のサイトと判断されますのでどちらかに統一した方がよいといわれています。
続きを読む wwwなしとwww付きのアクセスを統合 (htaccess)

WordPressのダッシュボードの表示がおかしい

このサイトはCoreserver+Wordpress (3.2.1) で運用しています。インストール直後から、ダッシュボードの表示がおかしくなってしまいました。ブラウザはOpera 11.51、Firefox 6.0、IE 9、Chrome 14.0、のいずれも同様でした。

続きを読む WordPressのダッシュボードの表示がおかしい

エラーログを取りたい場合 (PHP)

PHPのエラーログを記録する場合はphp.iniに以下のように記述します。エラーを画面に直接出力してもよいのですが、セキュリティ的に望ましくありません。
さくらのレンタルサーバ非公式FAQより引用します。

display_errors="0"
error_reporting="2047"
log_errors="1"
error_log="/home/???????/www/phplog/php-error.log"

1行目:エラー情報を表示しないようにする。
2行目:出力するPHPエラーの種類を設定。2047はすべてのエラーを表示。
3行目:ログを保存する。
4行目:保存するディレクトリ。php-error.logのアクセス権の設定する。

ブラウザが閉じても処理を続ける (PHP)

PHPで処理に時間がかかっている場合、途中でブラウザを閉じてもPHPは実行を続けようとします。 その中で、ブラウザとの接続が無いと(無いことがわかったところで)処理が中断されます。中断せずにそのまま続行するためには、php.iniのignore_user_abortをtrueにします。例えば、ページを開くことをトリガーにしてなにかの処理を完結する場合などでは必要だと思います。

通常は ignore_user_abort をfalseとし、例外的にtrueにしたい場合は、スクリプトの中で以下のように記述することででも可能です。デフォルトでは多くのレンタルサーバーではfalse(off)になっているようです。さくらインターネット、Coreserverではfalseでした。

ignore_user_abort(true);

このほうが、サーバーへの負荷は少なくなります。
ブラウザとの接続については出力しようとしたときに確認されるようなので、ignore_user_abortがfalseでも、ブラウザを閉じたと同時に処理が中断するわけではなさそうです。

実行時間の最大値を制限 (PHP)

時間のかかる処理を行った場合、Maximum execution time of 30 seconds exceededというエラーで止まることがあります。
こんなときは以下のように対処します。

set_time_limit(60);

(数値は制限時間、この場合は60秒)
0をセットすることで、制限なしにもできますが、さくらインターネットのライトでPHPを使う場合は無視されている様子です。
呼び出しごとにタイマーがリセットされるので、処理の途中で再度呼び出すことで制限時間を延ばすことができます。