「レンタルサーバー」カテゴリーアーカイブ

WordPressでメインテナンス中の表示をするプラグイン

Maintenance ModeはWordpressで構築したサイトにメインテナンス中の表示をするプラグインです。サイトの構造や内容を大きく変更するときはもちろん、テーマを変更したりする場合にも使えます。

このプラグインの特徴としては以下の通りです。

  • メインテナンス中に表示する文章をカスタマイズできる。
  • メインテナンス終了予定時刻を表示できる。
  • ログインしている場合には、通常通り表示できる。
  • メインテナンス中はダッシュボードに注意が出る。

他にも設定項目はいくつかありますが、今回便利だと思ったのは上記のような点です。

本来はテストサーバを用意してやるべきことですが、個人のブログなどの小規模なサイトならこのようなプラグインで十分対応できると思います。

.htaccessのメモ(coliss.comより)

レンタルサーバの利用する上でほぼ避けられないのが.htaccessの設定です。

自分のメモもかねますが、coliss.comの「サーバーの設定をカスタマイズ、よく利用する『.htaccess』の設定のまとめ」がわかりやすく解説されています。

他の方法でもできることを.htaccessで設定する場合もありますし、.htaccessでしかできないこともあります。サラッと読んでおいて、「そういえば、こんなことが.htaccessでできた気がする!」と思い出すだけでも役に立ちそうです。

CORESERVER (CORE-A) サーバー間の移転

CORESERVER (CORE-A)で運用しているサイトの反応がどうも鈍いので障害メンテナンス情報で確認したところ、他のサーバーよりも負荷が多い状態でした。2日ほどの間いろいろな時間帯に見てみましたが、ほとんど赤い「混雑」状態でした。

共用サーバなので、仕方の無いことですが、改善を考えるとサーバーの移転が望ましいところです。幸い、CORESERVERは無料お試し期間を利用することで、比較的簡単にサーバー間の移動ができます。

参考にしたサイトは「CORESERVERのサーバー移動(作業手順メモ) | 普通のサラリーマンのiPhone日記」です。

ほとんどは上記のサイトに従って行いました。ひとつ注意ですが、サーバー間でコピーを行った場合、PhpMyAdminもコピーされます。従って、Logフォルダのパスワードの設定も引き継がれますので、管理画面、データベースの「ページ入室の際はログ閲覧画面の認証パスワード」も旧サーバの設定がコピーされます。新しいサーバーの管理画面にあるパスワードは使えません。この設定は/public_html/log/.htpasswdに記述されていますので、気になる場合はこれを変更します。.htpasswdの生成には管理メニューのツールの使用が便利です。

データベースのコピーは一括でできませんので、一つ一つ設定する必要がありますが、30分ほどで移転が完了しました。

同じプランのサーバー間の移転はもちろん、サーバーのアップグレードや統合などにも使えます。

CodeIgniterの’index.php’を省略する.htaccess

久しぶりにPHP関連の話題です。

PHPフレームワークのCodeIgniterは軽量かつわかりやすいということで人気です。現在のバージョンは2.1.0で、こちらからダウンロードできます。2MB強です。インストールは先ほどのアーカイブを展開しておくだけです。

展開したディレクトリをcodeigniterとすると、アクセスはhttp://www.example.com/codeigniter/index.php/test/などとなります。他のフレームワークと同様に、パラメータをディレクトリのように渡します。ただ、このままだと、inde.phpの部分が毎回表示され冗長です。

.htaccessを設定すると、解消できるとオンラインのドキュメントにも書かれているので設定してみましたが、404 Not Found とエラーが出てきました。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

上記の場合は、CodeIgniterをhttp://www.example.com/の直下に展開した場合なので、今回のようにhttp://www.example.com/codeigniter/に展開した場合は3行目を以下のように書き換えます。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /codeigniter/index.php/$1 [L]

これで無事に解決しました。

WordPressの丸ごとバックアップはBackWPupで

WordPressのデータは記事や設定はデータベース(MySQL)に、画像等のデータや、プラグインなどは、そのままファイルとしてディレクトリに保存されています。

バックアップは手動でも可能ですが、プラグインを用いると自動かつ定期的に行うことができます。

いくつか試してみて便利だったのはBackWPupです。データベースのバックアップのみだったりするプラグインも多く見られますが、こちらはデータベースとファイルをすべてひとまとめにバックアップできます。バックアップ先は、以下のいずれかに設定できます。

  • 同じサーバの別ディレクトリ
  • E-mail
  • FTP
  • DropBox
  • SugarSync
  • Amazon S3
  • Google Storage
  • Microsoft Azure (Blob)
  • Rackspace Cloud

上記の様に対応が幅広いのも特徴です。

バックアップの最大数も決められるので、バックアップ先で使える容量をみながら設定できます。バックアップの状況もログを残したり、コンソールが表示されますので、バックアップにかかる時間なども予想できます。バックアップはバックグラウンドで行われるので、Wordpressへのアクセスに支障はありません。複数のバックアップを設定することもできるので、記事のみを毎日E-mailで、全体を週に1回FTPで行うというような設定も可能です。

DropBoxやSugarSyncは無料でGB単位の容量を利用できるので、通常のブログであれば、十分バックアップ可能だと思います。

堅牢性ではAmazon S3などを利用するのが良いのかもしれませんが、それならいっそAmazon EC2などでWordpressを立ち上げた方がよさそうです。

ちなみに、FTPはPHPのftp_connectを使うので、さくらのレンタルサーバ(スタンダード、2012年3月時点)のPHPでは使用できないようです。

 

 

Google XML Sitemapsで書き込みエラーが出るとき (coreserver, WordPress)

Coreserverはファイルの書き込みや更新に制限が出ることが多くあります。

WordPressのプラグインであるGoogle XML Sitemapsでサイトマップファイルを作成するときも、新規にファイルを作ることができずにエラーが出ます。

エラーは「書き込みができませんでした」といった内容です。

There was a problem writing your sitemap file. Make sure the file exists and is writable. Learn more
There was a problem writing your zipped sitemap file. Make sure the file exists and is writable. Learn more

解決方法は、アクセス権を設定したからのファイルを作成することです。

通常必要なファイルはsitemap.xmlとsitemap.xml.gzです。
このファイルをwordpressフォルダ、またはインストールしたフォルダとは別フォルダにホームページを設定している場合はそのフォルダに作成します。内容は0バイトでOKです。パーミッションは666に設定します。

以上を行ったら、あらためてサイトマップを構築すれば完了です。再構築には、Google XML Sitemapsプラグイン設定ページから「サーバーまたはブログ上で何か変更をした場合は、手動でサイトマップを最構築するべきです。」のところで行ってください。

coreserverのPHPはセーフモードの制限があるので、こちらの「WordPressのダッシュボードの表示がおかしい」も参考にしてください。

Contact Form 7で複数のアドレスにメールを送る(WordPress)

WordPressで問い合わせなどに使うメールフォームのプラグインにContact Form 7があります。問い合わせの送り先のメールアドレスはプラグインの設定から行うことができますが、複数のメールアドレスを指定する場合は、半角カンマ(,)で区切って設定します。

半角セミコロン(;)は不可のようです。この場合、「メッセージの送信に失敗しました。間をおいてもう一度お試しいただくか、別の手段で管理者にお問い合わせ下さい。」というエラーが表示されます。

確認したバージョンはWordpress : 3.3.1、Contact Form 7 : 3.1.1、サーバーはCoreserverです。

 

error_reportingの設定について(php.ini)

以前、「エラーログを取りたい場合 (PHP)」というエントリで、PHPのエラーをログに取る方法を紹介しました。ログをのこすエラーのレベルを数値によって設定できますが、しばらくは2039で設定していました。これは実行時の警告(E_NOTICE)を除いたすべてのエラーを表示する設定でした。

しかし、ログの肥大がすさまじく、すぐにGB単位になってしまうためE_WARNINGを表示させないようにしました。

設定はE_WARNING に対応する2を引いて2037としました。

PHPのオンラインマニュアルのこのページにエラーと定数の対応があります。参考にどうぞ。

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

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

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

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

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

レンタルサーバの初期ドメインへのアクセスをリダイレクト(htaccess)

レンタルサーバーのほとんどで、ユーザーIDやユーザー番号をサブドメインとして、webを公開できるようになっています。たとえば、example.comというドメインがレンタル元から提供されていて、useridというサブドメインで以下のようにアクセスできる様なケースが考えられます。

http://userid.example.com/

独自ドメインを取得した場合は、上記のようなURLでアクセスはしない(させたくない)と思いますので、.htaccessに以下のように設定します。(例として取得した独自ドメインをexample.netとします。ややこしいですが、例示のドメインには決まりがあるみたいです)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^userid\.example\.com
RewriteRule ^(.*) http://www.example.net/$1 [R=301,L]

以前に、www付きとwwwなしのアクセスの統合に関するエントリで示した例の応用になっています。
これを.htaccessに記述することで、サブドメイン+レンタルサーバーのドメインをwww付きの独自ドメインにリダイレクトすることができます。