PHPの負荷測定「phptop」がとりあえず動いたのでメモしてみる

以下のサイトで、便利そうなスクリプトが紹介されていました。

おおおお!という感じで飛びついたのですが、なかなか動いてくれなかったので、正しいかわからないけどメモ。

まずはダウンロード

以下のサイトから、スクリプトをダウンロードする。

[root@centos ~] wget http://forge.bearstech.com/trac/raw-attachment/wiki/PhpTop/phptop-0.5.2.tar.gz
--2010-12-20 10:43:30--  http://forge.bearstech.com/trac/raw-attachment/wiki/PhpTop/phptop-0.5.2.tar.gz
forge.bearstech.com をDNSに問いあわせています... 78.40.125.45
forge.bearstech.com|78.40.125.45|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 22333 (22K) [application/x-tar]
`phptop-0.5.2.tar.gz' に保存中
2010-12-20 10:43:32 (434 KB/s) - `phptop-0.5.2.tar.gz' へ保存完了 [22333/22333]

“PHPの負荷測定「phptop」がとりあえず動いたのでメモしてみる” の続きを読む

[WP] 正しく404エラーステイタスを返す方法

WordPressの場合、訪問者が存在しないURLにアクセスした場合、404エラーページを表示します。

テンプレートにも通常、404.phpというファイルにエラー表示の画面を記述します。

ユーザーからは確かにこの404ページが表示されるのですが、よくよくhttpヘッダーステイタスを見ると、404ではなく、200が帰ってくるときがあります。

これは間違ったURLによって違ってくると思うのですが、画面表示は404.phpの内容が表示されているにもかかわらず、Webサーバとしては、200という「正常なページでしたよ」というレスポンスをしてしまうのです。

ちなみにステイタスコードとは、以下のURLを参照ください。

なぜこれがダメなのかというと、Googleなどの検索エンジンのクローラーがエラーページにもかかわらず200ステイタスで受け取ると、エラーページそのものを正常なコンテンツとしてインデックスしてしまうことです。

“[WP] 正しく404エラーステイタスを返す方法” の続きを読む

[PHP] iPadの検出とUser-Agent

PHPのちょっとしたTipsです。

わたくし、iPhoneもiPadも持っていませんが・・・・

iPadのUser-Agentは以下のようなものらしいです。

Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10

ということで、PHPでiPadを検出するには、以下の通り。

“[PHP] iPadの検出とUser-Agent” の続きを読む

[PHP]デバッグのためにPHPのエラーログをファイルに出力する方法(php.ini)

先日、WordPressが意味不明のエラーで表示できなくなってしまうことがあったので、サーバのほうでPHPのエラーログを出力するように設定してみたのでメモ。

php.iniを以下のように変更します。

;error_reporting = E_ALL & ~E_NOTICE
;
;   - Show all errors, except for notices
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
;   - Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
;
;   - Show all errors except for notices and coding standards warnings
;
error_reporting = E_ALL

“[PHP]デバッグのためにPHPのエラーログをファイルに出力する方法(php.ini)” の続きを読む

Eclipseプラグイン「JStyle」

eclipse

私の今のPHP開発環境は、Eclipse3.4 + PDTです。

元々EclipseやPDTは英語圏のものなのでしょうがないと言えばしょうがないのですが、全角スペースをきちんと?認識してくれません

ちょっと今日その部分で引っかかって、2時間も時間を取られてしまったので、メモします。

そもそも、プログラムの途中で、全角スペースが入ることなんてないんですよね。

echo “ ”;

とかいう場合は別ですが。

今回、以下の部分で全角スペースが入っていることに気が付かずにエラーを出して悩んでました。

“Eclipseプラグイン「JStyle」” の続きを読む

携帯の機種名を抽出するPHP

PHP

今会社で携帯サイトを作っているのですが、その際、携帯の機種毎に振り分ける必要が出てきて、その処理をPHPで作ったのでメモ。

というか、機種名を表示するまでの部分ですが(^^;)

最初に、PHPの、

$_SERVER['HTTP_USER_AGENT'];

で、携帯のUser-Agentが取得できるわけですが、

その文字列によって条件分けします。

ただし、auは機種名ではなく、デバイスIDという特殊な文字列が出てくるので、それを機種名に変更する必要があります。

auに関しては、適宜、デバイスIDを機種名に変換してください。

以下が参考になります。

“携帯の機種名を抽出するPHP” の続きを読む

好きな間隔でRSSをTwitterに投稿できる「feeds2tweet」

このスクリプトはTwitter APIの規約に沿っていない可能性がありますので、必ず最新のTwitter利用規約を参照ください。

RSSフィードをTwitterへ投稿するスクリプトです。

同様のサービスで、Twtterfeedがありますが、 このサービスは最大で30分に1回しかRSSを見てくれません。

Twitterはせっかくのリアルタイムなツールなので、ブックマークももっとリアルタイムにしたい!と(^^;)

はてブやその他のブックマークサービスではRSSで出力しているものも多いですし、ブログの更新RSSでも利用できます。

ファイル構成

  • post.php スクリプト本体
  • tmp.tsv 一時保存ファイル(666)
  • ReadMe.txt この記事と同様のことが書かれています。
また以下の外部ライブラリを必要とします。
  • twitteroauth.php
  • OAuth.php

http://github.com/abraham/twitteroauth/tree/master/twitteroauth/

上記URLからダウンロードし、上記本体と同一フォルダに入れてください。

※tmp.tsvはパーミッションを666等にして、書き込めるようにしてください。

基本的にcronで動かすことを前提としております。

以下が利用例です。

(例:5分に1回動かす)

*/5 * * * * /usr/bin/php /yourpath/post.php

“好きな間隔でRSSをTwitterに投稿できる「feeds2tweet」” の続きを読む