タグ

PHPに関するshawのブックマーク (308)

  • Nginx+Fastcgi+PHPでサクサク快適サイト構築!

    こんにちは、井川です。連日、猛暑続きですね。熱中症には気を付けて、がんばりましょう。 今回は、軽量なWebサーバであるnginxPHPを組み合わせて使う方法を紹介します。 Webサイトにとって、軽さはとても重要なポイントです。PHPはライトウェイトな言語でありながらも、symfonyなど最近のフレームワーク次第ではWebサイトが重くなってしまいます。特に、Apacheで多くのリクエストを同時に受け付けると、レスポンスを返さなくなることがあります。こうした場合、キャッシュを使ったり、Key/ValueストアやMongoDBなどNoSQLにしたり、スケールアウトしたりと、様々な対応が考えられます。 しかし、もっと根的な解決方法はないでしょうか? WebサーバとしてApacheではなく、nginxとFastcgi-PHPを使ってみましょう(lighttpdなどもありますが…)。ベンチマークで

    Nginx+Fastcgi+PHPでサクサク快適サイト構築!
    shaw
    shaw 2011/07/19
  • チューニンガソンで優勝してきました : DSAS開発者の部屋

    7/9(土)にチューニンガソン というイベントに参加して優勝してきたので、その報告と、何を考えてどんなチューニングをしたのかを 記憶の範囲で公開したいと思います。 今回のチューニンガソンのお題は、WordPress(ja) + php + Apache + MySQL で、 ab を使って wp-comment.php 経由でコメントのポストをすることで計測が行われました。 MySQLとApacheを立ち上げたらWordPressが動く環境が渡され、そのWordPress自体は設定ファイルを含めて 改造が一切禁止、WordPressの実行をショートカットするチートも禁止です。 0. 試合前日 環境がAWSとAMI Linuxということは事前に公開されていたため、前日にAWSに登録して少しだけAMI Linuxを 触ってみました。yumベースだけどCentOSと違って結構新しいバージョンが用

    チューニンガソンで優勝してきました : DSAS開発者の部屋
    shaw
    shaw 2011/07/11
  • PHPの開発時になかなか使えるauto_prepend_file設定

    php_value auto_prepend_file /path/to/my_prepend.php これで、実際の処理のプログラムの実行前に上記で指定したファイルを読み込んでくれます。 私がよく使うのは以下のような感じになっていたりします。 ■my_prepend.php <?php // print_rのショートカット &pre追加 if (!function_exists('pr')) { function pr($var, $pre = true) { if ($pre) { echo "<pre>"; } print_r($var); } } // 以下必要に応じて書き換えています。 // 接続元IPアドレス偽装 #$_SERVER['REMOTE_ADDR'] = 'xxx.xxx.xxx.xxx'; #$_SERVER['HTTP_USER_AGENT'] = 'hogeh

    PHPの開発時になかなか使えるauto_prepend_file設定
    shaw
    shaw 2011/07/07
  • 現状の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

    shaw
    shaw 2011/06/30
  • 徳丸本のあれこれを実践してみて気付いたこと | 水無月ばけらのえび日記

    更新: 2011年7月9日23時0分頃 とあるシステムで徳丸のストレッチングを採用することにしたという話がありましたが、その実装が佳境に入ってきました。私は指示だけ出して、実装はお任せ……と思っていたのですが、基的な部分を作ってもらったところでバトンタッチされ、私が引き継ぐ形で実際にコードを書くことになりました。 基的には徳丸 (www.amazon.co.jp)のオススメどおりの実装にするという方針なのですが、実際にコードを書いてみると、いろいろと気になったり迷ったりした事も出てきました。そのあたりを簡単にメモしておきます。 ※ちなみに、このシステムはRuby1.9.2 + Ruby on Rails3での実装なので、PHPのコードサンプルをそのまま使っているわけではありません。 ストレッチ回数をどう決めるのか徳丸327ページにあるコード例を参考にして実装。アプリケーションごと

    shaw
    shaw 2011/06/27
  • PHPで作る面白コラージュ写真

    9月/10月社内Tech勉強会レポート – NodeJS/Privacy Sandbox API/3rdPartyCookie/NodeJS/PromiseAll/cascae/

    PHPで作る面白コラージュ写真
    shaw
    shaw 2011/06/25
  • PHPで画像からHTMLのカラーパレットを作るサンプルプログラム:phpspot開発日誌

    Generating a color palette from a image in php PHPで画像からHTMLのカラーパレットを作るサンプルプログラムがcode dieselにて公開されています。 画像を渡せば、GDを使って使われている色を分析し、頻度の多い順に配列で受け取ることができます。 なんらかのWEBサービスやツールに応用することができそうです。 クラスライブラリの形なので再利用も超簡単です。 元記事ではテーブルタグを使ったカラーパターンの出力用プログラムも公開されています。 関連エントリ PHPでWEBサイトのスクリーンショットを作成するチュートリアル PHPAmazon SESを使うチュートリアル

  • PHPでWEBサイトのスクリーンショットを作成するチュートリアル:phpspot開発日誌

    Taking screenshots of websites in PHP PHPでWEBサイトのスクリーンショットを作成するチュートリアルが紹介されています。 スクリーンショットの撮影には wkhtmltopdf というオープンソースソフトウェアを利用します。 このソフト自体がMac OS XやWindowsLinuxで動作するコマンドラインツールとなっているようなのでクロスプラットフォームで動作します。 このツールを使えば、「wkhtmltoimage --quality 50 //phpspot.org/blog/ snap.jpg」のようにコマンドを打つことでスナップショットが撮れます。 コマンドラインオプションが多数あるのでPHPerじゃない方も覚えておいて損はなさそうです。 例えば、 JavaScriptをオフにした状態でスクリーンショットを撮ったり、高さや幅の指定、切抜きの

    shaw
    shaw 2011/06/21
  • PHPでセキュリティを真面目に考える

    オープンソースカンファレンス2011 Hokkaido #osc11do 「PHPセキュリティを真面目に考える」 LOCAL PHP部 佐藤琢哉(@nazo) http://labs.nazone.info/Read less

    PHPでセキュリティを真面目に考える
  • 第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp

    第32回 PHPセキュリティ月間(Month of PHP Sercurity)で「PHPセキュリティ月間」(⁠MOPS - Month of PHP Security)について簡単に紹介しました。 今回はパスワードを安全に保存するツールの紹介です。今まで数回に渡ってMOPSの成果の一部を紹介してきましたが、今回で最後です。 MOPS Submission 10: How to manage a PHP application’s users and passwords http://www.php-security.org/2010/05/26/mops-submission-10-how-to-manage-a-php-applications-users-and-passwords/index.html この論文は1位を取得した論文です。Drupal 7でこのライブラリが利用されてい

    第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp
  • PHPのset_erorr_handlerとregister_shutdown_functionとob関数について ( エラーを整形出力したい ) ::ハブろぐ

    いきなり今回のまとめ 例によって地味なPHP記事です。最初に今回で分かったことのまとめ。 処理が続行可能なエラーはset_error_handlerで捕捉できる Fatal Errorはset_error_handlerでは捕捉できない Fatal Errorはregister_shutdown_functionで捕捉できる shutdown処理の中に、ob関数(output buffering)があると、Fatal Errorの出力より先にshutdown処理が実行される shutdown処理の中では、debug_backtraceは使えない 今回は、タイトルにもある通り、エラーを整形して最後に出力したいというのが当初のメインテーマです。それを実装する中で、上のようなことがわかりましたので、それらについて以下で書いていきます。 追記 ( 2011-04-06 ) こしあんさんがコードとし

    PHPのset_erorr_handlerとregister_shutdown_functionとob関数について ( エラーを整形出力したい ) ::ハブろぐ
    shaw
    shaw 2011/04/11
  • 過負荷に耐えるWEBサービス作成のための使えるPHPキャッシュテクニックまとめ:phpspot開発日誌

    過負荷に耐えるWEBサービス作成のための使えるPHPキャッシュテクニックまとめ。 サービス展開というとOSのチューニングや各種インフラソフトウェアのチューニング、更にはWEBアプリプログラム自体の効率化と、幅広い知識が必要になってきますが、PHPでWEBアプリを作る際によく効くキャッシュテクニックを用途・使いどころ別に説明します。 キャッシュをうまく効かせることで大幅に計算量を減らしてより多くのリクエストを少ないマシンで捌くことが出来、コストを下げたり、過負荷の悩みを減らせます。 個人レベルでのWEBサービス開発の場合、サーバ代がお財布を大きく圧迫しますが、最低のコストでサービスを賄うことに繋げられます、ということでPHPでサービス作ってやろうと思っている人は参考にしてみて下さい。 static変数でキャッシュ 特に何も入れなくてもそのまま使えるstatic変数。例えば、関数等で一定の計算

    shaw
    shaw 2011/03/10
  • ウェブル@soraiyさんのPHP で凄く簡単に GET/POST 送信ができる関数を勝手に改良した | zaru blog

    soraiyさんが「PHP で凄く簡単に GET/POST 送信ができる関数を作りました」という記事でGET/POSTを簡単にできるものを公開していたんですが、ちょっと気になった部分があったので、勝手に改良してみました。 と思ったら、いろいろな人が既に反応していた…。でももう書いちゃったし、公開するか…。 var_dump(wbsRequest('GET', 'http://httpstat.us/200',array('key' => 'value'))); var_dump(wbsRequest2('GET', 'http://httpstat.us/200',array('key' => 'value'))); var_dump(wbsRequest('GET', 'http://httpstat.us/404')); var_dump(wbsRequest2('GET', 'htt

    shaw
    shaw 2011/03/09
  • WEBサービスで使えるPEAR以外で有名なPHPモジュール総まとめ:phpspot開発日誌

    WEBサービスで使えるPEAR以外で有名なPHPモジュール総まとめ 「WEBサービスを作るなら最低限覚えておきたいPHPのPEARモジュールまとめ」というエントリで先日PEARの便利ライブラリについてまとめたのですが、今回はPEAR以外でも有名なライブラリをご紹介。 PEAR以外で挙げていくときりがありませんが、とりあえず有名どころや、私の知っている物、過去に当ブログで紹介したものをまとめてみます。 他にも便利な物や定番の物がありましたら、@phpspot_kj までTwitterなんかで教えてください。 グラフ描画 JpGraph ありとあらゆるグラフを描画してくれる有名なグラフライブラリ。 pChart グラフにデザイン性を求める場合に使えるクールなグラフ描画ライブラリ PHP/SWF Charts PHPでグラフをFlashで描画出来るライブラリ。グラフに動きを出してインタラクティブ

    shaw
    shaw 2011/02/22
  • Bit.lyのAPIバージョン3でPHPを使いURLを短縮するコード例:phpspot開発日誌

    Create Bit.ly Short URLs Using PHP: API Version 3 Bit.lyのAPIバージョン3でPHPを使いURLを短縮するコード例が紹介されています。 短縮だけでなく、元のURLに戻すAPIを使ったコード例もあります。 ライブラリも使わずにcurlだけでシンプルにやりたいという方は参考にしてみましょう。 関連エントリ PHPからbit.lyやtr.im等のURL短縮サービスをまとめて扱える「PEAR::Services_ShortURL」 amazonページ専用のURL短縮サービス「amz.ly」 bit.lyのAPIを使ってAjaxでURLを速攻で短くするサンプルプログラム

    shaw
    shaw 2011/02/21
  • WEBサービスを作るなら最低限覚えておきたいPHPのPEARモジュールまとめ:phpspot開発日誌

    (追記) 2/16 23時 いくつかのライブラリを追記しました。 WEBサービスを作るなら最低限覚えておきたいPHPのPEARモジュールまとめ。 家pearには560程のモジュールがあります(2011/2月現在)が、WEBサービスを作る上でよく使う物をまとめてみました。 これからPHPを使ってサービスを作ろうと思っている方は代替を使うことになると思うので参考にしてみて下さい。 php はインストール時点で既に多くの機能が備わっており、大体のことができてしまいますが、PEARを使うことで面倒なことがより簡単にできるようになります。 PEAR以外にも便利なライブラリはあるのですが、今回はあえて殆どをPEARサイトで公開されている物に絞ってご紹介します。 基的なパッケージ まず、汎用に使える便利なパッケージのご紹介です。 HTTP_Request2 url を渡してリモートのテキストを取って

    shaw
    shaw 2011/02/16
  • PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記

    PHPのstrtotime関数やDateTimeクラスは、様々なフォーマットの日付文字列を解釈し、時刻として取り扱うことができます。たとえば次のような文字列を解釈することができます。 "Wednesday July 23rd, 2008"(=2008年7月23日) "first Wednesday July 23rd, 2008"(=2008年7月30日、PHP5.1.0以降) "first Wednesday of July 23rd, 2008"(=2008年7月2日、PHP5.3.0以降) こうした日付の解釈はPHP独自の実装です*1。当初はGNUの日付記法に準拠していたようですが*2、今や別物といっていいでしょう。にもかかわらず、これまで解釈ルールの詳細を説明するドキュメントが存在しない状態が続いていました。 そのため、仕様を推測する根拠はstrtotime関数のサンプルコードとP

    PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記
    shaw
    shaw 2011/02/12
  • PHPフレームワークの「codeIgniter」がスゴすぎる | H2O Blog.

    新しいことを勉強して、久々に心底感動しました。 Facebookである方が「もうすぐCodeIgniterカンファレンスが開催される」といったつぶやきをしているのを拝見し、この時初めてその存在を知りました。。 PHPのフレームワークで、習得が早く、動作速度が爆速だということだったので、ちょっと触ってみるかとダウンロードしてドキュメントを読みながら Hello World!を作ってみる。すると・・・ こ・・これはすごい・・ なにがすごいって、これまで私は「CakePHP」を超愛用していました。CakePHPは、もちろんそのほとんどがすごくいいのですが、若干だけ不満があったのです。しかし、codeIgniterではCakePHPの好きなところはそのままに、不満が全部吹っ飛んでいたのです。 では、その全貌をご覧入れましょう。 モデル・ビューが不要 CakePHPもcodeIgniterも、MV

    shaw
    shaw 2011/02/05
  • ウェブル

    以下のように file_get_contents() で UA を指定すれば携帯サイトの内容を文字列で取得できます。 1 $data = file_get_contents("http://exampl 続きを読む »

    shaw
    shaw 2011/02/03
  • PHPのfile_get_contentsで404エラーを検知する - KEINOSの日記(旧ブログ)

    この記事は次のブログに引っ越しました。 https://blog.keinos.com/20100121_814PHPのfile_get_contents関数を使ってURL先のコンテンツを取得する際に、取得先にファイルがない(404エラーであった)場合の処理のサンプル・コードです。URLが存在するか調べるだけであれば、HTTPヘッダーを調べる方が軽いです。$sUrl = "http://your-url-to-check.com/"; //取得したいURL if( ( $sResponce = @file_get_contents($sUrl) ) == FALSE ){ // HTTPステータスコードを取得する list($version,$status_code,$msg) = explode(' ',$http_response_header[0], 3); // ステータスコードご

    PHPのfile_get_contentsで404エラーを検知する - KEINOSの日記(旧ブログ)
    shaw
    shaw 2011/02/03
    oh...こんな方法があったのか。