CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

WordPressでアイキャッチ画像や投稿中の画像など、メディアが保存されるディレクトリを変更する方法です。

デフォルトでは「(WordPressの設置場所)/wp-content/uploads」に保存されますが、セキュリティの面からインストール先を隠蔽するなど、運用の都合上、ディレクトリを変更したい場合があります。

そのような場合、まずは管理画面にログインした状態で以下のURLにアクセスします。

http://cms.helog.jp/wp-admin/options.php

するとWordPressの細かい設定項目の一覧が表示されます。
wp-upload1

WordPressのセキュリティチェック項目一覧です。

最近WordPressを使った要件がますます増えてきたのですが、そんな中でセキュリティチェックはルーチンワークとなっています。

オープンソースとして、活用事例も格段に多いWordPressですが、それに伴い攻撃の対象となりやすいのも事実です。ここで今一度、そのセキュリティの精度を確保するために、チェック項目一覧としてまとめてみます。

インストール編

WordPressインストール時に気をつけたいセキュリティチェック項目の一覧です。

WordPressインストールディレクトリの変更 WordPress本体のインストールディレクトリはルートにせずに、任意のディレクトリに設置しましょう。また、ディレクトリ名は「wordpress」や「wp」などとせずに、連想されないディレクトリ名にしましょう。
テーブルプレフィックスをデフォルトから変更する インストール時、デフォルトで生成されるDB内のテーブル名プレフィックスは「wp_」です。データベースを攻撃の対象とされた場合の対策として別のプレフィックスに変更しましょう。
SSL通信を適用する ログイン画面、管理画面にはSSLを適用して、通信を暗号化しましょう。
ユーザ名を「admin」などとしない 不正ログインを防ぐため、ユーザ名を「root」や「kanri」などにしない。特に、以前のバージョンでデフォルト管理ユーザ名である「admin」にはしない。

あるCMSをWordPressに移行するという事で、既存データを流し込みたいという依頼がありました。
そこで、関数wp_insert_postを使って投稿を一気に流し込む方法を考えてみます。

はじめは、それぞれのCMSでDB上のデータ構造が異なるので、詳細を把握した上で、PHPでDBからDBへのデータ移行プログラムを書くという、かなりリスクのある方法を検討していました。
しかし、WordPressのDBを直接操作することは、後に整合性がとれなくなるなど危険があります。

調べてみると、WordPressでは管理画面のインタフェースから記事を投稿する以外に、関数wp_insert_postを使ってプログラム上から整合性のとれた投稿が可能なことを知ったので、これを利用することにしました。

FuelPHPのAuthパッケージで会員管理やログイン画面などの作成に便利な認証機能を使ってみました。

今回はAuthパッケージの中でも基本的なドライバセット「Simpleauth」を利用してみます。

なお、今回の確認環境は以下の通りです。

  • PHP 5.4
  • FuelPHP 1.7

※FuelPHPはDB接続設定済みとします

FuelPHPのOilコマンドを使ったソース生成がものすごく便利です。

コマンドラインからOilコマンドを実行するだけで、Model、ViewやControllerクラスを自動生成してくれます。
また、Model生成時には、DBに定義したテーブルをcreateしてくれたり、cronジョブを実行してくれたりと、MVCフレームワーク特有のめんどくさい準備作業を自動化してくれます。

以下、今回確認した環境です。

  • Windows 7
  • xampp 1.8.2
  • FuelPHP 1.7.2

軽量で柔軟性に優れいていると話題のFuelPHPをWindows環境にインストールしてみます。

FuelPHP » A simple, flexible, community driven PHP5.3 framework.

今回検証した環境は以下の通りです。

  • FuelPHP 1.7.2
  • PHP 5.4.19
  • xampp 1.8.2
  • Windows 7

PHPはxamppのものを使います。
FuelPHPはPHP 5.3以上で動作するという事なので、要件は満たしています。

さくらレンタルサーバ上でWordPressのマルチサイト機能を有効にしてみました。
WordPressは基本的に1本で1サイトしか管理できませんでしたが、バージョン3.0からマルチサイト機能が追加され、これにより複数サイトを管理することができます。

これまで何度かトライしては失敗していたのですが、ネットで実装例の記事も充実してきたので、それらを頼りに再チャレンジです。
また、多くは新規WordPressインストール時を奨励していますが、今回はあえてハードルを上げて既存のWordPressを一か所に集約する目的で、マルチサイト化にチャレンジしてみたいと思います。

PHPでは取得した任意のTIMESTAMPから、フォーマットを指定して柔軟に表示可能な便利なクラス「DateTime」があります。

$date = new DateTime('2009-02-25 14:52:10');
echo $date->format("Y/m/d");

例えば上記の場合、「2009/02/25」と表示される。とても便利です。
しかし、これがPHP5.2以降でしか使えません。

最近、WordPressで構築したサイトへのスパムが多くて困ってす。
多いもので一月に500件ほど送りつけられます。
そこでWordPressに標準でインストールされているプラグイン「Akismet」。これがスパム対策のプラグインであることは知っていたのですが、有料ということで導入を見送っていました。
仕方ない、少しお金がかかってでも。。と調べていたら、なんと無料でも導入できるようです!

しばし、WordPressでページの引っ越しなどでページ単位でリダイレクトをかけたい場合があります。

リダイレクトさせたいページ毎に投稿を編集でJavaScriptなど記述してリダイレクトさせる方法もありますが、便利なプラグイン「Simple 301 Redirects」を発見したのでメモとして残します。

WordPress › Simple 301 Redirects « WordPress Plugins

Monthly Archives

Search