スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    WindowsのPCで開発するphperがxhprofを使う方法

    0

      xhprofはfacebookが開発した超・強力なプロファイリングツールです。コールグラフというどこがボトルネックになっているかを綺麗に画像にして見せてくれる機能が有名です。
      しかし、残念なことに、phpのライブラリではなくphpの拡張なので、Windowsでは使うことができません(自分でビルドすればいいんですが、それが難しい…)
      「そろそろmacにしたら…?」というお馴染みの声が聞こえてくる中、家庭の事情でWindowsのPCしか使えない私が色々試行錯誤して、xhprof使える方法を見付けたのでご紹介します。

      結論:Vagrant使え!

      え?ここで終わっちゃ、だめ?w

      Vagrantって最近よく聞くけど何?という方も多いでしょう。
      Vagrantは仮想OSを開発者にとって嬉しい状態にセットしてくれるありがたいソフトです。ぜんぶ無料で使えます(お金払うと快適な速度のほうが使えるらしいですが)。ま、私も2か月前に初めて知ったんですけどね!

      さっそくやり方を書きます。

      1. VirtualBoxをインストールします。(無料)
      2. Vagrantをインストールします。
      3. コマンドプロンプトを開き、適当なフォルダでvagrant initを実行します。
      4. フォルダを見るとVagrantfileというファイルができています。お好きなエディタで開いて下さい。編集する箇所は4か所です。
        config.vm.box = "base"
        を
        config.vm.box = "precise64"
        に変更
        
        # config.vm.box_url = "http://domain.com/path/to/above.box"
        を
        config.vm.box_url = "http://files.vagrantup.com/precise64.box"
        に変更
        
        # config.vm.network :private_network, ip: "192.168.33.10"
        を
        config.vm.network :private_network, ip: "192.168.33.10"
        に変更
        
        # config.vm.synced_folder "../data", "/vagrant_data"
        を
        config.vm.synced_folder "./data", "/var/www/vagrant_data"
        に変更
        
      5. ここでVagrantfileがあるフォルダ内にdataというフォルダを作っておきます。
      6. コマンドプロンプトでvagrant upを実行して、仮想マシンを作らせます。だーっと実行結果が流れるので待ちましょう。特に最初は時間がかかります。
      7. 実行が終わったらコマンドプロンプトでvagrant sshを実行しましょう。お馴染みの(?)SSHで仮想マシンに接続できます。precise64にしたのでOSはUbuntuの64bitです。 sudoが効くので、いつもサーバー構築する時のように、phpやapacheをインストールできます。
        特にバージョン等にこだわりが無ければ
        sudo apt-get update
        sudo apt-get install php5
        
        でOKです。今日(2013/07/25)の時点では、PHP5.3.10が入りました。
      8. そしていよいよxhprofをインストールします。
        sudo apt-get install php-pear make
        sudo pecl install xhprof-beta
        
        extension=xhprof.soをphp.iniに追記したらインストール完了です!Vagrant万歳!

      後は、Vagrantfileのあるフォルダの下に作ったdataフォルダの中にxhprofを試したいPHPアプリ(wordpressとかOpenPNEとか自作の何かとか)のソースを入れて、Ubuntu側に何かhttpサーバーを入れて、/var/www/vagrant_data(アプリによっては/var/www/vagrant_data/webとかになりますが)をドキュメントルートに設定するだけで、Windowsでも好きなようにxhprofでのプロファイリング結果を出して見ることができます。
      xhprofの設定方法やプロファイル結果の見方については検索するとたくさん記事が出て来るのでググってみてください。

      これだけなら単にVirtualBoxかVmwarePlayerを使えば従来でもできたことですが、Vagrantのすごいところは、dataフォルダに入れたPHPのソースをプロファイル結果に従ってその場で、しかもWindowsのPC側の使い慣れたエディタやIDEで編集できるところ(synced_folderのすごいところ、というべきか)。

      色々と開発中の不便に悩むたびに「YOU macにしちゃいなYO!」と言われることが多いWindowsですが、Vagrantという強力な武器をゲットした今では、もうmacの誘惑も怖くないですね!



      スポンサーサイト

      0

        • 2014.12.23 Tuesday
        • -
        • 21:21
        • -
        • -
        • -
        • -
        • by スポンサードリンク

        コメント
        こんにちは
        OpenPNEについて勉強している学生です。
        内部ネットワークで構築練習をしているのですが、バージョンが新し目のOpenPNEはカスタマイズの方法がネットに少なくて困っています。
        もしお手数でなければ色々と勉強させてもらいたいのですが、宜しいですか?
        ご返信お待ちしています。
        • 川本
        • 2013/10/14 8:22 PM
        >川本さん

        コメントありがとうございます。
        PNEのカスタマイズについては、私を含めて何人かの開発者が公式SNS(http://sns.openpne.jp)で質問に答えたりアドバイスしたりしていますので、差支えなければ公式SNSに登録してトピックを立ててみてください。(最近忙しくて滞り気味ですが…)
        また、公開するのが憚られる質問内容でしたら、twitterで@77webをフォローして話しかけてもらえれば、少しならDMでのアドバイス等もできるかと思います^^
        • ななうぇぶ
        • 2013/10/17 7:49 PM
        コメントする








           

        PR

        calendar

        S M T W T F S
              1
        2345678
        9101112131415
        16171819202122
        23242526272829
        3031     
        << July 2017 >>

        twitter

        selected entries

        categories

        archives

        recent comment

        • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
          プログラマー
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          ななうぇぶ
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • WindowsのPCで開発するphperがxhprofを使う方法
          ななうぇぶ
        • WindowsのPCで開発するphperがxhprofを使う方法
          川本
        • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
          よし
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          77web
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          ktz

        recent trackback

        • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
          常山日記
        • django対symfony 日本語メール送信(その1 symfony編)
          CPA-LABテクニカル
        • CodeIgniterでユーザー認証
          されどLAMPな日々
        • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
          常山日記
        • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
          サーバー用語集
        • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
          常山日記
        • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
          mitszoの日記
        • python多次元リストをsort(並べ替え)する方法?
          mitszoの日記
        • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
          Humming Via Kitchen
        • 日本語テキストをtruncate@django(Python全般にも??)
          常山日記

        recommend

        links

        profile

        search this site.

        others

        mobile

        qrcode

        powered

        無料ブログ作成サービス JUGEM