“PHP” カテゴリのアーカイブ

スポンサードリンク

実行中のPHP バージョンを確認して処理分岐する。

バージョン定数ってのも追加されたっぽいけど、それ自体がバージョン依存のようだ。

このエントリの続きを読む »

Comments コメントなし »

ファイル関係が面倒なので事あるごとにメールで送ってしまう。それ以外だとデータベースに接続してしまったほうが面倒がなくていいけど、それが面倒だったりする。

どのモードで動作しているかをサクっと返してくれるものがないらしい。

一般的にはテンポラリファイルを作って書き込み出来るかをチェックしたりするようだ。これはperl でも同じだけどエラー処理とか例外処理とかが面倒だ…。

PHP マニュアルによれば、CLI から実行していればcli を返すらしいが・・?

このエントリの続きを読む »

Comments コメントなし »

以前作成した「pc.casey.jp » [PHP] 404レポート(PHP版)」を幾つかのサイトで改良していると、やっぱり設定ファイルが別になっていないと面倒。ということで、「pc.casey.jp » [PHP] さくらインターネット リソース情報自動報告プログラム(PHP 版)」で使ったコードを流用したバージョンを作った。

主な変更点

  • Ver.0.06 設定を外部ファイルに保存するようにした。これにより複数サイトに設置している場合でも本体の差し替えが簡単になった・・ハズ。
  • Ver0.07 動作しているサーバーをわかりやすくするため、メール本文内にホスト名を追加した
  • Ver.0.08 動作しているサーバーをわかりやすくするため、メールタイトルにホスト名を追加した

動作例

開発中のデバッグモード時の例(Ver.0.08)

実稼動の例(Ver.0.08)

このエントリの続きを読む »

Comments コメントなし »

さくらインターネットのベースOS はFreeBSD。 また、とてもリソース管理が厳しく、 だからこそ快適に利用できる(と思い込んでいる)。

そんなさくらインターネットの唯一の欠点と言えなくもないのがデータベースの作成制限。しかし、先日の発表資料を読んだ時は思わすその日一日、いやいまでも喜びの余り走り出しす勢いだ。

さて、筆者はCORESERVER も利用しているが、こちらは全体的な順位やどれくらい負荷をかけているかがコントロールパネルで確認できる。

しかし、さくらインターネットは転送量とCPU 使用時間がわかるくらいで順位やドメインごとのデータは不明。さらに、そのCPU 使用時間や短期間でのアクセス増加を検知すると、優先度を下げたり503 エラーを発生させる。このような処理によってさらに安定した運用とリソース配分が行われている(たぶん)。

そうすると気になるのがCPU への負荷や転送量がどれくらいの時に制限を受けるかということだが、これは明示されていない。情報を集めるとある程度の予測は可能だが、急激な増加(特にクローラの集中砲火を浴びたとき)を知らずに受けたことなどで制限を受けることもある。これらの情報を集める過程で多かったのが、503 の頻発などを受けてサポートに問い合わせたり、コントロールパネルを確認したらリソースの消費に驚いたというものだ。

筆者は最近さくらインターネットに引っ越してきたこともあって、どれくらいの負荷がかかっているのかなどをこまめに確認している。さらに、ある程度情報が集まったり、”何か”が起きたときには記事にしようと普段から情報を集めている。が、面倒だ(何が面倒っていちいちID/パスワードでログインしなければならないし、複数アカウントあったらさらに面倒だし、グラフ作ったりするときのデータの整形や取りこぼしも・・)。そういうものこそ自動的にやってほしいもの。

標準機能としても特に見当たらず、また、随分探しまわったが、どういうわけか筆者のような人間が他に居ないのか、そういうツールが見当たらなかった。まぁ皆様Geek な人が多いからちょちょっと自作しているのかもしれない。

ということで、テキトーに作りました。

このエントリの続きを読む »

Comments コメントなし »

逐次処理では時間がかかり kill されてしまうので、マルチスレッドで非同期通信をすれば制限時間内で完了できそう。しかし、調べていてわかったのは、PHP にはマルチスレッド処理がないらしい。いくつか対応策が見つかって、fork して子プロセスを作るとか、exec 関数を使ってバックグラウンドで処理させるとか。

いくつかサンプルが見つかったものの、上手く動作するものがみつからなかった。動作させるために問題を見つけて対処するべきなのだが、他に動作するサンプルがあるならそちらを優先したいと思っていくつか試した。決して面倒だとか・・。

このエントリの続きを読む »

Comments コメントなし »


すべての企業名および製品名は、関連するそれぞれの企業の商標である場合があります。