カテゴリ: PHP

こんばんは。

最近暑くなってきたので早くも扇風機を出してしまった@fujitaijuです。

 

今回は複数のWordPressサイトを統合的に管理できるInifiniteWPというツールを紹介します。

私は1つのブログを維持するだけで精一杯なので、他にサイトは運営してないのですが、複数のWordPressサイトを運営してる人には運営コストを劇的に減らすツールになるかもしれません。

 

このInfiniteWPが何をしてくれるんですの?ということですが、複数のWordPressサイトのプラグインやテーマのアップグレードとインストール、WordPressのバージョンアップを一回の操作で同時に実施してくれる統合管理ツールです。

もちろんドメインやサーバーが異なっていても全然問題なし。

InfiniteWP概略

  

インストールしてローカルのWordPressと、このFujitaiju Blogを登録してみました。

アップグレードしたくないものはチェックを外せば対象外にしてくれます。 

InfiniteWPプラグイン管理画面

 

インストールの流れは次の通り。

  1. パッケージをここからダウンロード
  2. PHPが使えるサーバーに置く。
  3. 管理したいWordPressサイトにプラグイン「InfiniteWP」をインストール。
  4. プラグインのインストール後に表示されるACTIVATION KEY(1枚目画像)を使ってInfiniteWPにサイトを登録(2枚目画像)。 

InfiniteWP Activation key

InfiniteWPサイト追加

 

InfiniteWPのインストールはWordPressのインストールと同じ要領で、パッケージをApacheが読める場所に置いてブラウザからそこにアクセスするだけ。あとはボタンを押していけばインストールは完了。

InfiniteWPをインストールするサーバーは自宅のPCでも全然問題なし。

個人サイトだったらMAMPとかXAMPPを使ってローカルで運用してもいい気がします。

 

パッケージのダウンロードは無料ですが、有料でいくつかのアドオンが提供予定のようです。

InfiniteWP有料アドオン

 

たくさんのサイト管理にうんざりしている方は使ってみてはいかがでしょうか。

このエントリーをはてなブックマークに追加



最近出たばかりのPHPのMVCフレームワークであるFuelを試してみました。

まずはインストール


インストールはcurlを使って一発おーけー。成功するとoilというコマンドが使えるようになります。Railsで言うrailsコマンドみたいなものですね。

$ curl get.fuelphp.com/oil | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 244 100 244 0 0 517 0 --:--:-- --:--:-- --:--:-- 1487

$ which oil
/usr/bin/oil


とりあえず動くものを作ってみる


次にPHPが動作するディレクトリに移って、oilコマンドでアプリのスケルトンを作成します。


$ oil create blog
Cloning into ./blog...
remote: Counting objects: 13771, done.
remote: Compressing objects: 100% (4693/4693), done.
remote: Total 13771 (delta 9439), reused 12989 (delta 8854)
Receiving objects: 100% (13771/13771), 1.99 MiB | 355 KiB/s, done.
Resolving deltas: 100% (9439/9439), done.
Submodule 'docs' (git://github.com/fuel/docs.git) registered for path 'docs'
Submodule 'fuel/core' (git://github.com/fuel/core.git) registered for path 'fuel/core'
Submodule 'fuel/packages/auth' (git://github.com/fuel/auth.git) registered for path 'fuel/packages/auth'
Submodule 'fuel/packages/oil' (git://github.com/fuel/oil.git) registered for path 'fuel/packages/oil'
Submodule 'fuel/packages/orm' (git://github.com/fuel/orm.git) registered for path 'fuel/packages/orm'
Cloning into docs...
remote: Counting objects: 3422, done.
remote: Compressing objects: 100% (1271/1271), done.
remote: Total 3422 (delta 2277), reused 3227 (delta 2097)
Receiving objects: 100% (3422/3422), 765.80 KiB | 154 KiB/s, done.
Resolving deltas: 100% (2277/2277), done.
Submodule path 'docs': checked out '71c16e068324e200f533c26aebb4b42b394562a8'
Cloning into fuel/core...
remote: Counting objects: 17159, done.
remote: Compressing objects: 100% (5174/5174), done.
remote: Total 17159 (delta 11902), reused 16939 (delta 11706)
Receiving objects: 100% (17159/17159), 2.64 MiB | 258 KiB/s, done.
Resolving deltas: 100% (11902/11902), done.
Submodule path 'fuel/core': checked out 'fcf88526205234a3b5d5d6553c7c3395c7fc83b3'
Cloning into fuel/packages/auth...
remote: Counting objects: 384, done.
remote: Compressing objects: 100% (242/242), done.
remote: Total 384 (delta 164), reused 354 (delta 142)
Receiving objects: 100% (384/384), 51.42 KiB, done.
Resolving deltas: 100% (164/164), done.
Submodule path 'fuel/packages/auth': checked out 'd5abd56317bdc448c3f4ccd4355509798e71934e'
Cloning into fuel/packages/oil...
remote: Counting objects: 262, done.
remote: Compressing objects: 100% (114/114), done.
remote: Total 262 (delta 137), reused 249 (delta 127)
Receiving objects: 100% (262/262), 43.96 KiB, done.
Resolving deltas: 100% (137/137), done.
Submodule path 'fuel/packages/oil': checked out '5ef10c039f91432f450ab2d1b18706a712f7521f'
Cloning into fuel/packages/orm...
remote: Counting objects: 13958, done.
remote: Compressing objects: 100% (4121/4121), done.
remote: Total 13958 (delta 9635), reused 13932 (delta 9616)
Receiving objects: 100% (13958/13958), 2.01 MiB | 306 KiB/s, done.
Resolving deltas: 100% (9635/9635), done.
Submodule path 'fuel/packages/orm': checked out 'cb3cc50d926914cace1fd6351cac4d94b3642971'
Made writable: /Users/***/Documents/Fuel/blog/fuel/app/cache
Made writable: /Users/***/Documents/Fuel/blog/fuel/app/logs
Made writable: /Users/***/Documents/Fuel/blog/fuel/app/tmp
Made writable: /Users/***/Documents/Fuel/blog/fuel/app/config


すると、下記のようなファイルやディレクトリが自動で作成されます。



この時点でhttp://localhost:8888/Fuel/blog/public/にアクセスすると下記のような画面が表示されます。簡単です!



カスタマイズしてみる


自分でコントローラーを作成してみます。fuel/app/classes/controller/welcome.phpを削除して、代わりにhello.php(下記)を作って同じ場所に保存します。

[gist id=1160321 file=hello1.php ]

http://localhost:8888/fuel/blog/public/Hello/indexにアクセスしてHello World!と表示されれば成功です。RailsやSinatraのようなフレームワークを知っている人であれば、コントローラーやアクションの命名規約からどのようなURLでアクセスすれば表示されるか分かってしまいますね。

次にViewを使ってみます。fuel/app/hello.phpを作成します。

[gist id=1160321 file=hello.php ]

さっき作成したfuel/app/classes/controller/hello.phpを修正します。

[gist id=1160321 file=hello2.php ]

http://localhost:8888/fuel/blog/public/Hello/buddy/Obamabuddy/の後を変更すると、名前を動的に表示させることができます。



コンセプトとしてはRailsやSinatraなどのフレームワークイイトコどりみたいなのですが、既存のフレームワークに比べると洗練されてない印象があるので、これから先どう進化するか楽しみですね!

この記事を書くに当たり次のサイトを参考にさせていただきました(ちょこちょこ誤植があるので注意)。
[browsershot url="http://net.tutsplus.com/tutorials/php/getting-started-with-the-fuel-php-framework/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+nettuts+%28Nettuts%2B%29" width="150"]

このエントリーをはてなブックマークに追加

PHPのPaaSサービスであるPHP Fogを試してみました。サイトがとってもカッコイイです。

事前にアカウントは作成しておいてください。あとgitも必須ですのでインストールしておきましょう。

アカウント作成後、ログインしたらMy Account画面からLaunch new appを選択します。



次にアプリケーションをどのようにデプロイするかを選択します。WordPressとかのアプリケーションを選べたり、CakePHPなどのフレームワークも選べるようになってますが、今回はCustom Appを選んでみます。ドメイン名は「.phpfogapp.com」の前に適当な名前を入れます。最後にCreate Appをクリックします。



あ、sshのパブリックkeyを登録するのも忘れずに。もしパブリックキーを生成してない場合はコチラが参考になります。



gitを使ってアプリケーションのクローンをローカルに生成します。クローン生成のコマンドは丁寧にも用意してくれているのでそれをコピペして実行しちゃいましょう。



実行すると、ドメイン名のディレクトリが出来るのでそこに移動します。


$ git clone git@git01.phpfog.com:fujitaiju.phpfogapp.com
$ ls
fujitaiju.phpfogapp.com
$ cd fujitaiju.phpfogapp.com


ディレクトリの中を見てみると、index.phpがすでに用意されてます。この時点でブラウザからアクセスしてみると「hello world」が表示されます。


$ ls -la
total 8
drwxr-xr-x 4 user staff 136 6 24 18:22 .
drwxr-xr-x 3 user staff 102 6 24 18:22 ..
drwxr-xr-x 13 user staff 442 6 24 18:22 .git
-rw-r--r-- 1 user staff 30 6 24 18:22 index.php


これを表示させるのもなんだかという感じなので違うのを作ってpushしてみましょう。次のようなコードを作ってみました。

[php]
echo "今日は" . date("n") . "月" . date("j") . "日" . "です!"
?>
[/php]これをコミットして表示させてみましょう。


$ git add .
$ git commit . -m "first commit"
$ git push


http://自分のドメイン/today.phpにアクセスすれば表示されるはずです。

操作性はHerokuとほぼ一緒。料金体系もすごく似てますね。スケーリングが自由にできるというのはすごく魅力的です。VPSやめてこっちにしようかな。

このエントリーをはてなブックマークに追加



記事の閲覧回数をカウントしてサイドバーに一覧表示してくれるWordPressのプラグインWP-PostViewを導入してみました。

インストールは通常のプラグインのインストールと同じです。コチラからダウンロードして直接サーバーにアップロードするか、WordPressからプラグインの新規追加を行ってください。

初期状態だと設定画面は英語なので、日本語にする場合はコチラから日本語化ファイルをダウンロードして、wp-postviews-ja.mowp-postviews-ja.powp-postviewsフォルダの中に入れればOKです。

設定を変える時は、ダッシュボードの「設定」ー「PostViews」から設定を行います。今は設定の変更は行わず初期状態でやってみたいと思います。



初期状態でも動くのでとりあえずウィジェットをサイドバーに追加してみます。



ウィジェットの設定を表示したい項目に合わせて変更します。ここではStatistics TypeMost Viewedにし、最も参照された記事順にしました。これをLatest Viewedにすると、直近で参照された記事が表示されます。なので、誰かが自分のサイトを見るたびにこの順番は変わります。



これで設定は完了です。トップページを見てみるとちゃんと表示されました。う〜ん、でもちょっと地味ですよね。せっかくなのではてぶ数も表示してみたいところ。



はてぶ数も表示できるように、設定画面から「ウィジェット用フォーマット」の部分を下記のように変更し、「〜views」の部分も色を変え強調表示にしてみました。
[html]
#初期状態
  • %POST_TITLE% - %VIEW_COUNT% views


  • #変更後
  • %POST_TITLE%- %VIEW_COUNT% views-

  • [/html]ちょっとはマシになったような気がします。



    カスタマイズ性もあって手軽に人気ランキングを表示できるのはすごいですね。

    このエントリーをはてなブックマークに追加

    先日、Ruby技術者認定試験を受験したいと思いますという記事を書きましたが、PHP界隈の方ではPHP技術者認定機構が2011年4月からPHP技術者認定試験を始めるようです。

    PHP系の試験としては、似たような試験にZend PHP Certificationがありますが、日本ではあまり機能してな様子。最新版のPHP5.3の試験も英語のみなんですね。

    どちらの試験がメジャーになっても構わないんですが、受験する者にとって有益な試験となるようにしてほしいです。そうでないとそもそも存在価値あるの?ってなってしまいますし。

    試験は全部で3段階。「初級」、「上級」、「ウィザード」があるようです。上級、ウィザードについては下位試験合格が受験資格となる。初級は2011年4月11日より予約受付開始、5月10日より配信開始となり、上級については2011年9月より開始予定となっています。ウィザードは現在制定中で試験開始時期は未定。
    PHP5技術者認定初級試験について

    問題数は全部で40問、試験時間は1時間となっています。7割正解で合格となる。テキストは公式テキストとしてオライリーの下記の本を採用。

    [tmkm-amazon]9784873112572[/tmkm-amazon]
    PHP5技術者認定上級試験について

    問題数は全部で60問、試験時間は1時間30分で合格ラインや出題形式は初級と同等となっている。テキストは初級と同様にオライリーの本を採用。

    [tmkm-amazon]9784873113425[/tmkm-amazon]
    試験範囲

    験範囲は初級試験しか制定されておらず、下記のようになってます。Webサイトを作るのであれば知っておかないといけないような知識ばかりだと思います。PHPに触れたことがない人でも少し勉強すれば合格できそうな感じではありますね。




















































































    目次 出題割合
    1章オリエンテーションと始めの一歩 0.06
    2章テキストと数の操作 0.08
    3章判定と繰り返しについて 0.08
    4章配列の操作 0.08
    5章関数 0.08
    6章Webフォームの作成 0.08
    7章データベースに情報を保存 0.08
    8章クッキーとセッションでユーザを記憶 0.06
    9章日付と時刻の取り扱い 0.06
    10章ファイルの操作 0.08
    11章XMLのパースと生成 0.02
    12章デバッギング 0.04
    13.8 クラスとオブジェクト(クラス定数も含む) 0.02
    14章日本語処理 0.06
    付録B 正規表現の基本 0.04
    付録D PHP5.1とPDO 0.02
    追加1.セキュリティ(各章からのポイントの集約や一般的な知識など) 0.02
    追加2.出力バッファ(エラー処理。各章からのポイントも含む) 0.02
    追加3.定数・予約語 0.02


    参考サイト

    参考になりそうなサイトをいくつか挙げておきます。

    PHP技術者認定機構

    PHP5技術者認定試験特集

    【解説付】 PHP5技術者認定初級ベータ試験のアンケート結果公開

    PHP5技術者認定資格 初級試験開催!

    事務局Twitterアカウント

    公開資料 - PHP技術者認定機構(2011/3/24 追記)

    Ruby検定試験が終わったら受験してみようかしら。まぁ、こういった試験は相手に対して「最低限の知識は持っていますよ」というメッセージを伝えることはできると思いますが、業務で役立つかといったら微妙だと思います。Web業界に転職したいという人はやる気と知識をアピールという点では合格を目指しても損は無いのではないかと思います。

    ちなみに自分はWeb業界に非常に興味があるため、受験してもいいかなと思っておりますf(-^ ^
    このエントリーをはてなブックマークに追加

    ↑このページのトップヘ