タグ

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

  • [書評] CakePHPで学ぶ継続的インテグレーション

    著者の @kaz_29 さんから「CakePHPで学ぶ継続的インテグレーション」を献して頂きました。日頃から関心のある分野なので、早速読ませて頂きました。 PHP で学ぶ継続的インテグレーション 書のタイトルは「CakePHPで学ぶ継続的インテグレーション」です。実際、書の中では、CakePHPアプリケーションを題材に継続的インテグレーションを行う手法が解説されています。 ただ、ここで紹介されている継続的インテグレーションの手法は、CakePHP 固有のものではなく、他のフレームワークでも転用可能なものです。 勝手なお世話ですが、書籍のタイトルとしては、「PHPで学ぶ継続的インテグレーション」の方が、良かったかもしれませんね:D 分散された情報がこの一冊に 継続的インテグレーション(CI)を行うには、あるツールさえ入れておけばできるというものではなく、多くのツールを組み合わせる必要が

  • vagrant-serverspec で TDD ライクにサーバ構築を行う

    Shin x blog Advent Calendar 2013 の 24 日目です。 先日リリースされた vagrant-serverspec を使って、テストドリブンなサーバ構築を行ってみました。 vagrant-serverspec は、サーバ、インフラの状態をテストするツール serverspec を Vagrant のプロビジョナとして実行できるプラグインです。これを使うことで、vagrant コマンドから、serverspec のテストを実行することができます。 詳しくは、@ryuzee さんの下記エントリを参照して下さい。 vagrant-serverspecを使ってプロビジョニング結果をテストする | Ryuzee.com 仕様 今回構築するサーバの仕様は下記です。PHP 5.5.x をインストールして、ビルトインサーバを起動するというものです。(※ちなみにビルトインサーバ

  • とある CMS を使ったサイトに Varnish を導入した話

    Shin x blog Advent Calendar 2013 の 6 日目です。 とあるサイトに、Varnish をリバースプロキシとして導入して、半年が経過しました。 導入した経緯やその効果など書いてみたいと思います。 Varnish とは Varnish は、HTTP アクセラレータです。Web サーバのリバースプロキシとして動作し、キャッシュを生かして高いパフォーマンスを発揮するのが特徴です。また、VCL という独自の設定言語を持ち、これにより状況に応じた設定を柔軟に行うことができます。 導入の経緯 このサイトでは LAMP 構成の CMS を利用しており、インフラには AWS を利用しています。基、閲覧が中心なのですが、イベント時に多数のアクセスがあります。S3 や CloudFront も検討したのですが、コンテンツを数分おきに更新する必要があるので今回は採用しませんでした

  • PHP開発環境のサンプルVagrantfile

    PHPカンファレンス2013でPHP開発環境をVagrantで作る発表を行ったのですが、具体的なVagrantfileが欲しいという声を頂いたので、GitHubに公開しました。 ご自身で構築するベースになれば良いと思うので、どう作れば良いの?と言う方は参考にしてみて下さい。 なお、このリポジトリの Vagrantfile は、開発PC内の VirtualBox 上で開発環境として動かすことを想定しています。セキュリティについては考慮されていないのでご注意下さい。 vagrant-lapp-sample https://github.com/shin1x1/vagrant-lapp-sample このリポジトリは、PHPアプリケーション(CakePHP)をイメージしています。構成は以下です。 CentOS 6.4 Apache 2.2 PHP 5.4 PostgreSQL 9.3 phpPg

  • Vagrantで作るPHP開発環境[実践編]をPHPカンファレンス2013で発表してきた

    (2013/10/09追記) PHP開発環境を構築するサンプル Vagrantfile をアップしました。 PHP開発環境のサンプルVagrantfile 第7回関西PHP勉強会で発表した下記の内容をベースに、より実践的な内容を追加しました。 PHPシステムの開発環境をVagrantで作ることを題材に、基的な流れをお話しました。 ポイントは、プロビジョニングにシェルを使う部分と、やはり synced_folder ですね。AWS上にも同じ環境を構築できる部分ももう少し深くお話したかったのですが、時間が足りませんでした>< また、Vagrantfile があるディレクトリ(vagrant upしたカレントディレクトリ)も synced_folder となっていて、仮想マシンでは /vagrant としてアクセスできるということも知っておくと便利です。これを利用するとChefのtemplat

  • PHP E_STRICTで表示されるエラーメッセージを調べてみた

    年内のPHP4サポート終了に向けて、PHP5への移行が進む昨今です。 PHP5で推奨されていないスクリプトをチェックするのがE_STRICTです。E_STRICTが有効なのは分かっていたのですが、実際にどんなスクリプトがE_STRICTに引っかかるのかが、あやふやでした。 そこでE_STRICTで出力されるメッセージをPHPのソースから抜き出してみました。どのようなスクリプトがE_STRICTに引っかかるのか(引っかからないか)のヒントになればと思います。 ちなみにE_STRICTの活用方法としてマニュアルには[-l]オプションによるチェックが書かれていますが、スクリプトを実行しないと発生しないE_STRICTもあるので、実際には実行して確認する方が良いです。 1. Accessing static property %s::$%s as non static インスタンス変数をクラス変数

  • CakePHP 1.2.x, 1.3.x, 2.x の Paginate / PaginatorComponent に SQL インジェクション可能な脆弱性

    CakePHP 1.2.x, 1.3.x, 2.x の Paginate / PaginatorComponent に SQL インジェクション可能な脆弱性 CakePHP(1.2.x 以降全て)の Paginate / PaginatorComponent にて SQL インジェクション可能な脆弱性が見つかりました。 すでに cakephper さんの blog でも注意勧告されていますが、 連休中にリリースされた情報ということで見落としている人もいると思うので、こちらでも。 内容 この脆弱性を悪用すると Paginate / PaginatorComponent にて SQL インジェクションが可能となります。 現在は影響の大きさを考慮して、公式サイトでは脆弱性の詳細は明らかにされていませんが(一定期間、ユーザのアップグレードを待って公開するようです。)、私が開発環境で試したところ、S

  • PHPer が「JUnit実践入門」を読んだ

    「JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)」を献して頂いたので読んでみました。 普段は PHPUnit でテストを書いているので、その家とも言える JUnitは興味津津でした。 実は、今でこそ PHP 三昧の日々ですが、数年前(JDK1.3 とか 1.4 の時代ですが)は Java で開発していたこともあったので、いまどきの Java、JUnit がどうなっているか知りたくもあり、興味深く読み進めることができました。 読んでみて感じた点を挙げてみます。 1. 圧倒的なボリューム まず目次をざっと見た時に感じたのがカバーしている範囲の広さです。正直よく一冊に収まってるなあと:D JUnit の解説からはじまり、JUnit を使ったテストの書き方、ソフトウェアテスト・テスト技法、ユニットテストのパターン、そして JUnit のより

  • AWS SDK for PHP 2 をインストールして AutoScaling の設定を行う

    PHP から AWS を操作するためのライブラリ「AWS SDK for PHP」の新バージョン「AWS SDK for PHP 2」を触ってみました。 AWS SDK for PHP 2 リリース直後は対応サービスが少なかったのですが、現在は主要なサービスは網羅しているようです。 AWS SDK for PHP 2 の主な特徴 https://github.com/aws/aws-sdk-php PHP5.3.3以降 PSR-0, PSR-1, PSR-2対応 Composer, PEAR でのインストール、phar ファイルの配布 Guzzleベース namespace, Iterators, Waiters, Enums, レスポンスモデル, 例外など、いまどきの実装に対応 AWS SDK for PHP 2 のインストール AWS SWK for PHP 2 は、phar ファイル

  • PHP5.3 のサポート終了(EOL)は、PHP5.5をリリースして1年後

    最近、話題のPHP5.3のサポート終了(End Of Life=EOL)について。 当初は2013/03末でEOL を迎えるという話だったのですが、これを延長する案が php-internals で流れていました。 PHP: rfc:php53eol [PHP Wiki]で投票が行われるくらいまでは追いかけていたのですが、結局どうなったのかなと気になってたところで @kenji_s さんの tweet から辿って以下のリンクを見つけました。 php.internals: [RFC][result] Define PHP 5.3 end of life 投票の結果、以下のことが決まったようです。 PHP5.3のEOLはPHP5.5.0をリリースして1年後 EOLの正確な日付はPHP5.5.0リリース時にアナウンス 当初よりは少し余裕は出来ましたが、PHP5.5はすでにbeta2まで来ているの

    jetta_swingin
    jetta_swingin 2013/04/02
    PHP5.3 のサポート終了(EOL)は、PHP5.5をリリースして1年後 Sent from Pocket.
  • 殺伐とした黒い画面にカラフルなキャラがお出迎え

    一部では「黒い画面」と恐れられているターミナルですが、こんなキャラがお出迎えしてくれると気分も変わるのでは。 via: vallog: ターミナルに黒魔道士 via: PHPでターミナルに黒魔道士を出す – id:anatooのブログ ターミナルを開いたり、SSH でログインした時にキャラを表示させる方法です。 /etc/motd にメッセージを書くとログインした時に記述したメッセージを表示することができます。レンタルサーバやクラウドサービスのサーバにログインすると表示されるメッセージも /etc/motd に記載されています。 例えば、さくらの VPS であれば、下記のように記載されています。 % cat /etc/motd SAKURA Internet [Virtual Private Server SERVICE] AmazonLinux では以下のようになっています。 $ cat

  • FireMobileSimulator でタブ毎に端末選択を有効にする

    FireMobileSimulator でタブ毎に端末選択を有効にする方法です。 単にチェック入れるだけです。Facebook で教えて頂いたのですが、こんな機能あったんですね。。。 調べてみると2011年には対応していたようです。 これまで全然気づかず、携帯サイトのテストは Firefox、スマートフォンのテストは Chrome 、と別ブラウザでやったり、別タブで開いていた Gmail や Facebook がいつの間にかおかしくなったりしてました。 こりゃ便利。

  • AWS ELB に SSL 証明書を Management Console で設定する

    Management Console で AWS ELB に SSL 証明書を 設定する方法です。 ここではすでに作成されている ELB(HTTP のみを Listen)に HTTPS します。新規で ELB を作成して、そのまま HTTPS を設定する場合も似た手順で設定できます。 対象の ELB の Listeners に HTTPS を追加 対象の ELB の Listeners に HTTPS を追加します。ここでは SSL Terminaion を利用するので、Instance 側は HTTP としています。 Load Balancer Protocol を選択すると SSL Certificate に「Select」というリンクができるのでこれをクリックします。 SSL 証明書を登録 SSL 証明書を登録する画面がポップアップで表示されるので、ここに発行された証明書を登録します

  • Vagrant で自分の PC に「作って、壊して、元に戻せる」サーバを作る

    Vagrant 便利ですね。Web システム構築ではサーバ構築、設定を何度となく繰り返すので、こういった「作って、壊して、元に戻せる」環境が自分の PC にあるというのはとても重宝します。 ここでは Vagrant1.0 を使って、Mac OS X 上に CentOS サーバを構築します。また触ってみて便利だった機能もいくつかご紹介します。 1. VirtualBox のインストール 2. Vagrant1.0 のインストール 3. box ファイルのインストール 4. Vagrantfile の作成 5. 仮想サーバを起動 6. 仮想サーバを停止 7. 仮想サーバを削除 8. 仮想サーバでhttpdサーバを構築 9. sahara プラグインで、作って、壊して、元に戻せる環境を構築 10. 複数の仮想サーバを起動 11. 仮想サーバのエクスポート Q. OS X, ruby, gem

  • PHPを使う理由

    今年もやって参りました年末を彩る PHP Advent Calendar 2012 です。3年目ということですっかり恒例行事となってきましたね。今年も完走目指してみんなで頑張りましょう! 参加枠があとわずかですが残っていますので、いっちょやってみようという方は参加表明をお願いします。 PHP Advent Calendar さて、初日は前から書いてみたかったテーマです。 PHPをWebシステム開発言語として使い出してかれこれ12年が経ちました。これだけ長い間使い続けているとうことは何か理由があるわけです。そこで、あらためてその理由を考えてみました。 1. 安定して動作する まず、なんと言っても大きいのが安定して動作し続けているということです。 規模の大小に関わらず数多くのWebサイトがPHPで動作しているのは周知のとおりです。私がこれまでPHPで構築してきたWebシステムが現在でも動作して

  • 5分でわかる最近のPHP - 2011夏

    ここ最近のPHP界隈では、興味深いニュースが続いています。最近PHPを追っかけていない人へ少しづつご紹介。 近頃、PHP界隈でホットなニュースを5つ、つまみぐいして見てみましょう。 1. PHP5.4.0-alphaリリース! PHPの次期バージョン、5.4.0-alphaがリリースされました。 まだ alpha1 ですが、すでに Traits や Array dereferencing support など様々な機能追加が行われています。 特に Traits は面白い機能で、いずれはこれを利用したフレームワークの登場が考えられます。ぜひ使ってみたい機能ですね。 今後、正式リリースに向けてさらなる新機能が追加されていくようなので、目が離せません。 PHP 5.4 alpha1 released 現状のPHP環境はそのままで、PHP 5.4 を試す PHP5.4 alpha1リリース! PH

  • iPhone ユーザが INFOBAR A01 を買って、2週間使ってみた

    INFOBAR A01 を買って、2 週間使ってみたのでレビューなど。 これまで持っていた au 携帯(SH005)を機種変更して、INFOBAR A01(以下、INFOBAR) にしました。自身初の Android 機なのですが、スマートフォンは iPhone 4(以下、iPhone) を持っているので、INFOBAR の印象やインストールアプリなどを iPhone との比較を交えて書いてみます。 このエントリでは、スペックではなく、実際に使った印象を書いていきます。各製品のスペックは以下のページにあるので、ご参考まで。 INFOBAR A01 iPhone 4 見た目に一目惚れ ここ 2 年、au 携帯と iPhone の 2台持ちだったので、正直、Android 機にはあまり興味が湧きませんでした。しかし、ここ最近の Android の普及っぷりを見るに、これはそろそろ買おうかなと思

  • Google+ 非公式 API で情報を取得するPHPライブラリを使ってみた

    まだ登場していない Google+ の API ですが、非公式な API を利用して情報を取得するライブラリがあったので使ってみました。 Google+のストリーム で教えて頂いた php-googleplusapi というライブラリで github で公開されています。 はじめは README に従って、MySQL の設定などしたのですが、Google+ から情報を取得するだけなら、DB の設定は不要です。 付属のサンプルソースだと色々な処理が入っているので、直近10件の投稿を取得する単純なサンプルを書いてみました。 実行すると以下のように投稿を取得できます。 $ php gplus_fetch_posts.php 他にはプロフィール情報が取得できました。(そもそも、↑のサンプルソースはプロフィール情報に含まれている投稿を出力しています。)全部は見ていないので興味ある人は他に何が取れるか

  • 現状のPHP環境はそのままで、PHP 5.4 を試す

    現状のPHPはそのままで、新しい(別の)バージョンをPHP試す方法です。 PHP 5.4.0 alpha がリリースされました。Traits や Array dereferencing support など試してみたいですけど、さすがにメインのPHP環境を変えるのは早いですね。 そこで新しいPHPをビルドして、インストールはしない方法で試してみました。 PHP 5.4.0 alpha をビルド qa.php.netから、PHPのソースをダウンロードします。 $ wget http://downloads.php.net/stas/php-5.4.0alpha1.tar.bz2 展開して、configureして、makeします。とりあえずコンパイルオプションはナシで。 $ tar jxvf php-5.4.0alpha1.tar.bz2 $ cd php-5.4.0alpha1 $ ./co

  • SeleniumでAWS課金情報を取得する - JAWS-UG Osaka勉強会 第3回

    Japan AWS User Group (JAWS-UG) – Osaka勉強会 第3回に参加してきました。 すっかり恒例になってきたJAWS-UG Osaka勉強会に参加してきました。今回も濃いセッション満載で楽しかったです。会場提供頂いたテレビ大阪さんありがとうございました。 せっかく参加するならということで、今回は Selenium を使って AWS の課金情報を取得して、Twitter で投稿するという内容でLTをやってきました。 SeleniumでAWSへの愛を叫ぶ 当日は真面目なものとそうでないものの2つ発表ネタを持って行っていたのですが、発表前にこちらにしました。 スライドを用意していましたが、このタイトルの解説を延々と書いているだけなので表紙だけアップしておきます:D やっていることは単純で、Selenium で AWSサイトにログインして、Account Actibit