タグ

ブックマーク / www.1x1.jp (32)

  • nginx+php-fpmをyumでインストールして、WordPress/CakePHPを動かす設定

    Home > PHP | Web+DB > nginx+php-fpmをyumでインストールして、WordPress/CakePHPを動かす設定 www.1×1.jpの環境をApache+mod_phpな環境から、nginx+php-fpmな環境へ移行しました。 さくらVPSのCentOS5.5環境にnginx+php-fpmをyumでインストールして、CakePHPWordPressを動かす設定を行いました。 このエントリでは導入ということで、インストールから、とりあえず動作するところまでをご紹介します。 0. 構成 nginx+php-fpm環境にCakePHPWordPressをインストールします。 それぞれ以下のURLでアクセスできるようにします。 http://www.1×1.jp/ -> CakePHP http://www.1×1.jp/blog/ -> WordPres

  • CakePHPでCSRF対策

    CakePHPでCSRF対策を行う方法です。 フレームワークに含まれているSecurityコンポーネントを使います。 Security#requestAuth()にアクションを記述しておくと、アクション実行前に正規リクエストかどうかをチェックします。チェックの方法はCSRF対策で一般的なワンタイムトークン方式です。 まずController#beforeFilter()にてチェックを行うアクションを指定します。 [app/controller/test_controller.php] < ?php class TestController extends AppController { var $name = 'Test'; var $components = array('Security'); function beforeFilter() { $this->Security->req

  • CakePHPのSecurityComponentに深刻なセキュリティホールが見つかりました

    すでにご存知の方も多いと思うのですが、CakePHPに深刻なセキュリティホールが見つかりました。 SecurityComponentの実装に問題があり、結果、外部から任意のコードを実行させることができるという深刻な内容です。 セキュリティホールの概要や攻撃手順については以下のエントリが詳しいですので、ご一読を。 CakePHPPHP コード実行の脆弱性を使って CakePHP を焦がす なお、今回の問題はSecurityComponentを利用していない場合は発生しません。 もしSecurityComponentを利用している場合は、以下のいずれかの方法で早急に対策してください。 1. CakePHP1.2.9 or 1.3.6にアップグレードする。 この脆弱性を受けて修正バージョンが出ています。 CakePHP 1.3.6 and 1.2.9 released | The Bake

  • CakePHP cache()はCache::write()に

    CakePHPにはキャッシュを行う関数cache()があるのですが、1.2.2のソースを見るとdeprectatedになってました。 [cake/basics.php] <?php /** * Reads/writes temporary data to cache files or session. * * @param string $path File path within /tmp to save the file. * @param mixed $data The data to save to the temporary file. * @param mixed $expires A valid strtotime string when the data expires. * @param string $target The target of the cached da

  • CakePHPとnginx+memcachedで手軽にキャッシュを活用する

    nginx+memcachedがめちゃ気になったので試してみました。 元ネタは下記です。 A 53,900% speedup: Nginx, Drupal, and Memcache bring concurrency up and page load time way down | TechnoSophos nginxをリバースプロキシに利用した構成で、バックエンドの出力をmemcachedにキャッシュしておけば、次回リクエストではnginxがそのキャッシュを読み取ってそのまま出力してくれます。 つまりバックエンドにリクエストを経由させずにnginxから即出力するのでかなりの高速化が見込めるという優れものです。 リンク先ではバックエンドにDrupalを利用していたのですが、ここではCakePHPを利用してみます。 1. 全体構成 リバースプロキシにnginx(Port: 80)を使い、バ

  • iPadでPHP開発ができるか試してみた

    ついにiPadが日でも発売になりました。早速入手できたので色々と触ってみました。 使ってみた印象としては「大きくなったiPhone」ですね。操作はiPhoneまんまなのですが、A4プロセッサのおかげか軽快に動作します。またソフトキーボードがかなり改良されていて特に日語についてはPCのキーボードっぽく入力できます。 とはいえ、やはりMacBookほど多機能ではないので、立ち位置としては見た目どおりiPhone以上MacBook未満という印象です。 そんなiPadで購入前に気になっていたのが、「iPadで開発ができるか?」という点です。もしこれができるなら MacBookは事務所に置いてまま外出先や家ではiPadでこなせるのではと企んでいました。 そこでiPadPHPが書けるか試してみました。 キーボード ソフトウェアキーボード 冒頭でも触れたとおり、iPad搭載のソフトウェアキーボード

    aratafuji
    aratafuji 2010/05/30
    SSHアプリもあるのか。
  • PHPカンファレンスで「PHPを見える化する」を発表しました

    10th PHPカンファレンスで発表してきました! photo by lllnorikolll まず、こういった発表の機会を与えて下さった実行委員会の皆さんにお礼を言いたいと思います。ありがとうございましたm(_ _)m また、拙い発表を聞いて下さった皆さんありがとうございました。いくつか反応を頂けて、とても嬉しかったです。 PHPカンファレンスでの発表は、目標としていたところだったので、檀上に立った時は緊張と共に感激していました:-D 発表では、初めはふわふわした感じで正直結構緊張していたのですが、途中からはわりと落ち着いてきました。スライドが抜けていたり、プロジェクタの表示が左端が切れていたり、時間が足りなかったりはあったのですが、最後は笑って貰えたので良かったです:-D 当はプロファイリングをもっと解説したかったのですが、時間が足りず、すっ飛ばしました。。。プロファイリングツールの

  • CakePHP 目で見るフックメソッド

    第2回CakePHP関西勉強会でやったデモをこちらでも。 CakePHPには色々なフックメソッドがあるのですが、それらがどのタイミングで呼ばれるかを一覧できるようにデモを行いました。懇親会やアンケートでも良かったよ、と意見を頂いたので、簡単に画面のキャプチャを並べます。 1. Controllerのフックメソッド Controllerのフックメソッドを並べています。index()はアクションメソッドなので、ここで表示されているフックメソッドは3つです。 ソース <?php class DemoController extends AppController { public $uses = array(); public function index() { } } ?> フックメソッドの並び 2. Componentのフックメソッド Controllerの$componentsを設定して

  • CakePHP アプリケーション実行の流れをシーケンス図で書いてみた

    CakePHP関西勉強会での発表のためにアプリケーション実行の概要をシーケンス図で書いてみました。 具体的にはDispatcher#_invoke()[cake/dispatcher.php]が、コントローラ・コンポーネント・ビュークラスの各メソッドを呼び出す流れです。これを見るとアプリケーション側の各メソッドがどの順序で呼び出されるかが分かります。 なお図にあるUserControllerとUserComponentは、アプリケーションで定義しているものです。 勉強会での発表資料に解説があるので、そちらも参考にして下さい。 @see CakePHP関西勉強会終了しました&発表資料 cakephp_dispatcher__invoke_sequence.pdf

  • 楽天API PEAR::Services_Rakuten-0.1.0リリース

    [2007/07/18追記] Services_Rakuten-0.2.0がリリースされています。今後はこちらをご利用下さい。 楽天から公式APIが公開されましたので、早速PEARパッケージを作ってみました。 PEAR::Services_Rakuten-0.1.0 $ pear install --alldeps /blog/download/Services_Rakuten-0.1.0.tgz 楽天APIを使用するにあたってデベロッパーIDが必要ですので【楽天ウェブサービス】RAKUTEN WEBSERVICEで取得しておきましょう。 使い方は以下です。検索サービスごとにメソッドを分けています。do~()で値を連想配列で返します。 <?php require_once('Services/Rakuten.php'); $api = new Services_Rakuten('your_

  • 楽天API PEAR::Services_Rakuten-0.2.0リリース

    楽天ウェブサービスをPHPで利用するPEARライブラリ「PEAR::Services_Rakuten-0.2.0」をリリースしました。今回は未対応だったAPIの対応のほか、リファクタリングを行い、今後拡張しやすい形にソースコードを変更しました。 主な変更点は以下です。 2007/07/17現在の全APIに対応(楽天ダイナミックアドAPI含む) ソースコードリファクタリング リファクタリングに伴い利用方法を変更(後述) インストール・アンインストール インストール方法は以下です。 $ pear install --alldeps /blog/download/Services_Rakuten-0.2.0.tgz インストール時に「Failed to download pear/XML_Serializer within preferred state “stable”」といったエラーが発生し

  • CakePHP Modelに関する6つの誤解

    CakePHPのModelはActiveRecordライクなDBアクセス方法を提供しており、さらにアソシエーションを設定することにより複数テーブルの値を同時に操作できるなど、DB操作に対するインターフェイスが数多くあります。 ただ「手軽にDB操作ができる」という印象が先行しているゆえ誤解を招くことがあるようです。 1. クラス名に対応したテーブルしか操作できない Modelのクラス名とテーブルを自動でマッピングするのはフレームワークのいわば便利機能です。デフォルトでそのような動作をするだけで、容易に変更することができます。 Model#$useTableにテーブル名を指定すれば任意のテーブルを操作できます。 <?php class Foo extends AppModel { public $useTable = 't_user'; // t_userテーブル } ?> 2. DBを使わな