タグ

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

  • 「Ansibleではじめるサーバ作業の自動化」を発表してきました

    2014/10/11 に開催された PHPカンファレンス にて、「Ansibleではじめるサーバ作業の自動化」という発表を行ってきました。 午前中のセッションだったのですが、多くの方にご参加頂き、ありがとうございました。 発表資料 発表資料をslideshareに公開しました。 今回は、これからAnsibleを使ってみようという方を対象として、Ansibleの基的な内容をメインにしました。また、実際に私自身がPHPプロジェクトで採用した際のユースケースを紹介しています。 発表後、「Ansibleをやってみます!」という意見を頂けたので、このセッションの目的は達成することができました:D このセッションのフィードバックは、joind.in にて受けて付けています。すでにいくつか好評価を頂いていて安心していますが、もし良かったらお願いします。 https://joind.in/talk/vi

  • Ansible で、複数サーバの RPM を一括で更新する

    Bash 脆弱性が出ましたね。対策がまだの方はお早めに。 修正 RPM が提供されているとはいえ、複数サーバにログインして、yum update していくのは、骨が折れる作業です。元から構成管理ツールを導入していて、一括更新出来る場合は良いのですが、なかなか導入できていないところも多いでしょう。 このエントリでは、Ansible を使って、複数サーバに対して、一括で RPM 更新を行う方法を見ていきます。 Ansible インストール Ansible の操作を行う PC or サーバにインストールします。これは ansible コマンドを実行する環境にのみインストールします。例えば、サーバ管理者の PC などです。チームで行う場合は、操作用のサーバにインストールして、SSH で操作サーバにログインして、実行すると良いでしょう。 OSX なら、Homebrew で入れるのが簡単です。 $ b

  • phpenv + php-build 環境を Vagrant で構築する

    PHP5.5 リリースにより、再び盛り上がってきた phpenv + php-build 環境を Vagrant で作ってみました。 CentOS6.4 + phpenv + php-build + nginx という構成になっています。 nginx + phpenv + php-build の環境構築については hnw さんの下記エントリがとても参考になりました。 php-buildで複数バージョンのPHP-FPMを用意する – hnwの日記 インストール https://github.com/shin1x1/vagrant-phpenv-phpbuild github へ Vagrantfile + Chef レシピファイルをアップしています。こちらの README に書いたとおりですが、手順としては以下になります。 VirtualBox インストール Vagrant インストール g

    red_snow
    red_snow 2013/12/21
    phpenvを試したいし、いい機会だから使ってみようかな
  • とある CMS を使ったサイトに Varnish を導入した話

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

    red_snow
    red_snow 2013/12/06
    リバースプロキシ
  • 6分でわかる最近のPHP 2013年冬

    Shin x blog Advent Calendar 2013 の4日目です。 6分で分かるべく最近のPHP事情をざざざっとご紹介します。 過去のエントリはこちら。 6分でわかる最近のPHP ― 2012夏 5分でわかる最近のPHP – 2011夏 1. PHP 5.5 リリース PHP5系の新しいバージョンとして、PHP 5.5 が 2013年6 月にリリースされました。 新しい機能としては、ジェネレータや finally 句の、パスワードハッシュ関数、OPCache などが追加されています。 2013/12/04 現在では、5.5.6 が最新版となっています。 PHP5.5 のコードキャッシュは APC から Zend OPcache へ PHP: PHP 5.4.x から PHP 5.5.x への移行 – Manual PHP 5.5の新機能:さっくり理解するPHP 5.5の言語仕

    red_snow
    red_snow 2013/12/05
  • PHP5.4 で Zend OPcache をインストールしてベンチマークを取ってみた

    PHP5.5 から標準バンドルされる Zend OPcache を PHP5.4 にインストールしてみました。 インストールする環境は Vagrant 上の CentOS6.4 です。PHP は remi リポジトリからインストールしています。 $ php -v PHP 5.4.14 (cli) (built: Apr 11 2013 11:04:32) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies Zend OPcache のインストール remi リポジトリには Zend OPcache は存在しないようなので、github からソースをダウンロードしてビルドしました。 手順は Zend OPcache の github ページに記載

  • 殺伐とした黒い画面にカラフルなキャラがお出迎え

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

  • PHPソースをコーディング規約に合わせて修正してくれるPHP Coding Standard Fixer

    PHPソースをコーディング規約に合わせて修正してくれるツール「PHP Coding Standard Fixer」を試してみました。 PHPでコーディング規約チェックツールとしては PHP_CodeSniffer が有名です。PHP_CodeSniffer はソースをチェックして、問題点を指摘してくれるのですが、ソースの修正は自分で行う必要があります。 PHP Coding Standard Fixerは、コーディング規約チェックだけではなく、規約に従っていないソースを修正してくれるツールです。 PHP Coding Standard Fixerを使う インストール インストールは簡単で、githubで公開されている php-cs-fixer.phar ファイル をダウンロードしてくるだけです。 実行する ダウンロードしたphp-cs-fixer.pharファイルをphpコマンドで実行しま

  • PHP4なスクリプトをPHP5へ移行する際に発生する7つの問題 | Shin x blog

    2007/11/13: 3.と4.が同じ内容となっていましたので、4.の内容を変更しました。 ここ最近PHP4.1.2で稼働していたシステムをPHP5.1.6へ移行しています。 移行の際に発生した問題とその対応をメモしておきます。 ちなみに全ての内容がPHP4->PHP5で必要なものではないです。PHP4も4.1/4.2/4.3/4.4の間でちょこちょこ変わっているので、一部の内容はPHP4間の移行でも修正が必要になります。またPHP4.4に適応しているスクリプトをPHP5へ移行するなら修正内容は少なくなります。 1.Notice: Only variable references should be returned by reference 「function &method()」と定義しているメソッドでスカラー値を返すと発生します。 <?php class Hoge { functi

  • PHP5.4 ビルトインサーバで CakePHP を試食する(CakePHP Advent Calendar 2011 4日目)

    Home > CakePHP | PHP > PHP5.4 ビルトインサーバで CakePHP を試する(CakePHP Advent Calendar 2011 4日目) PHP5.4のビルトインサーバで CakePHP を動かしてみました。 CakePHP Advent Calendar 2011 の 4 日目です。 いよいよ PHP5.4 の正式リリースが近づいてきました。5.3 からのマイナーバージョンアップとはいえ、Trait や Short syntax for arrays、Array Dereferencing など興味深い機能が追加されています。 そんな新機能の中から注目のビルトインサーバを使って、CakePHP を動かしてみました。今回は CakePHP1系と2系の両方を試しています。 PHP5.4RC2をインストール まずは現時点での最新版 PHP5.4RC2 が動

    red_snow
    red_snow 2011/12/04
    ビルトインサーバ早く試してみないとな~
  • PHPerの悩みを解決する arry を作ってみた(PHP Advent Calendar jp 2011 Day 2)

    Home > PHP > PHPerの悩みを解決する arry を作ってみた(PHP Advent Calendar jp 2011 Day 2) PHP Advent Calendar jp 2011 2日目です。 はい、PHPer王子です。 前日の @cakephper さんになんだか妙な名前を付けられました が、今年も PHP Advent Calendar を実施することになりました。管理人がなぜか 2 日目という変わったスタートとなりましたが、なんとか12/25の最後日まで駆け抜けたいと思います。参加されたみなさんよろしくお願いします! ちなみにまだ数日空きがあるので、いっちょ書いてみよーという方の参加お待ちしてます:D PHPerにおける連想配列の悩み 王子らしくPHPerの悩みを解決したい!ということで、連想配列にまつわるお悩みを。 普段PHPを書いていて何とも悩ましいのが、

    PHPerの悩みを解決する arry を作ってみた(PHP Advent Calendar jp 2011 Day 2)
  • PHPでsleep sort

    コロンブスの卵的なソートアルゴリズム「sleep sort」をPHPで実装してみました。 via . 常識を覆すソートアルゴリズム!その名も”sleep sort”! – Islands in the byte stream fork使うので、pcntlを有効にします。 sudo port install php5-pcntl さくっと実装。 実行 % php sleepsort.php % 12345678910 トラックバック:2 このエントリーのトラックバックURL /blog/2011/05/sleep_sort_php.html/trackback Listed below are links to weblogs that reference PHPでsleep sort from Shin x blog pingback from Sleep sortの各言語での実装まとめ

  • 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

    red_snow
    red_snow 2011/07/29
  • 現状の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

  • さあ、AWSをはじめよう! for PHPer

    春ということで、Amazon Web Services(AWS)をはじめてみませんか。 AWS盛り上がっていますね。2011年3月に東京リージョンができたことで、そろそろ触ってみようかなというPHPユーザの方も多いかと思います。 そんなあなたへ、AWSをはじめる際に役立つ情報をご紹介です。 1. AWSアカウントを新規作成して、EC2の利用申し込みを行う まずAWSのアカウントを作成して、EC2の利用申し込みを行います。 手順については、AWSエバンジェリストの @KenTamagawa さんが書かれた以下の資料が参考になります。このとおりに進めていけば、おおよそ問題無いと思います。 進める中で自分が詰まった点は以下。 郵便番号、電話番号にはハイフンを 郵便番号、電話番号はハイフンが必要なので入力するようにして下さい。 書式は日国内のもの、郵便番号8ケタ(ハイフン入り)、電話番号は12〜

  • PHP unserialize()が__destruct()を実行する?

    CakePHPセキュリティホール(まだの方はご対応を!)から、unserialize()が話題になっています。 このセキュリティホールは、外部から送信された値をチェックせずにunserialize()したことが引き金になっており、安全でない値をunserialize()することの危険性が指摘されています。 下記エントリでは、コードを交えてunserialize()から__destruct()が実行される過程が解説されています。 PHP5 __destruct() and unserialize() function – TokuLog 改メ tokuhirom’s blog 念のための補足なのですが、unserialize()から__destruct()が呼ばれるわけではありません。 下記コードは、PHP5.3.3で実行しています。 unserialize()から実行される関数 unse

    red_snow
    red_snow 2010/11/19
    自分でやってみないといまいち動きがわからないな
  • PHPで認証して、mod_xsendfileでファイルを出力する

    ApacheでX-Sendfileが利用できるmod_xsendfileをPHPと連携して使ってみました。 PHPで認証してから、許可したユーザのみにファイルを出力する、という処理を実装する場合、ファイルはdocument_root外に配置しておいて、readfile()やfpassthru()でファイルを出力するという手法を良く使います。 この方法でも問題無い場合が多いのですが、容量の大きいファイルを出力する際は思ったようなスピードが出ない時があります。 そのような時はmod_xsendfileを使って、ファイル出力の部分をApacheに任せてしまう方法が有効です。 ここでは2010/11/12時点の最新版であるmod_xsendfile 0.12を対象としています。またインストール環境はRHEL、CentOSを想定しています。 mod_xsendfileのインストール mod_xsen

  • Lithiumのフィルタシステム

    次世代CakePHPとも言うべきフレームワークLithiumのフィルタシステムを見てみました。 Lithiumは対象がPHP5.3以上ということで、5.3ならではの機能を活用したアーキテクチャになっています。中でも特徴的なのがフィルタシステムです。 全体のアーキテクチャとしては、CakePHPの流れを汲んで標準的なMVCフレームワークになっています。ただそれを実現する手段としてフィルタシステムを多用しています。これまでのフレームワークとは異なる点があり、いざフレームワークの動きを掴もうとすると戸惑います。 そこでLithiumのフィルタシステムをざっくりと見てみましょう。 サンプルソース サンプルとして、SampleControllerとそのビューテンプレートを用意します。 フィルタの動きを見るだけなので、indexアクションでは、ログに__METHOD__を記録するだけです。 [app/

  • 1