-
最近の投稿
最近のコメント
- mscorsvw.exe がCPUを100%占拠する に takasan より
- USBデバイスサーバ BUFFALO LDV-2UH に つばめのしっぽ より
- USBデバイスサーバ BUFFALO LDV-2UH に wp_rutake より
- USBデバイスサーバ BUFFALO LDV-2UH に つばめのしっぽ より
- CPU100%で張り付きがちなmscorsvw.exe とは何か調べてみた に wp_rutake より
アーカイブ
- 2012年5月
- 2012年4月
- 2012年3月
- 2012年2月
- 2012年1月
- 2011年12月
- 2011年11月
- 2011年10月
- 2011年9月
- 2011年8月
- 2011年7月
- 2011年6月
- 2011年5月
- 2011年4月
- 2011年3月
- 2011年2月
- 2011年1月
- 2010年12月
- 2010年9月
- 2010年8月
- 2010年7月
- 2010年6月
- 2010年5月
- 2010年4月
- 2009年10月
- 2009年9月
- 2009年8月
- 2009年7月
- 2009年6月
- 2009年5月
- 2009年4月
- 2009年3月
- 2009年2月
- 2009年1月
- 2008年12月
- 2008年11月
- 2008年10月
- 2008年9月
- 2008年8月
- 2008年7月
- 2008年6月
- 2008年5月
- 2008年2月
- 2007年11月
- 2007年10月
- 2007年9月
- 2007年8月
- 2007年7月
- 2007年6月
- 2007年5月
- 2006年11月
- 2006年10月
- 2006年9月
- 2006年4月
- 2006年2月
- 2006年1月
- 2005年12月
- 2005年11月
- 2005年10月
カテゴリー
- Android
- Apache
- AppServer
- CakePHP
- CentOS
- CF-R3
- Database
- DiscWizard
- eclipse
- English
- English Post
- freesoft
- Hardware
- IdeaPad Tablet A1
- Java
- JavaScript
- Linux
- Mac
- Mobile
- MySQL
- Office
- Oracle
- Oracle
- OS
- perl
- PHP
- plugin
- Programming
- pukiwiki
- R40e
- SA76G2V2
- Scientific Linux
- Seasar2
- SELinux
- SEO
- soft
- ThinkPad
- Tomcat
- Ubuntu
- Ubuntu
- VBA
- VMWare
- VNC
- WebApp
- Windows
- WordPress
- X40
- XAMPP
- XS35
- さくらのVPS
- つぶやき
- コマンド
- コマンド
- サーバ管理
- ハードウェア
- マルチブート
- 人気記事
- 仮想化
- 便利なコマンド
- 小技
- 書籍
- 未分類
- 注目キーワード
- 統計情報
- 自作PC
- Struts
メタ情報
カテゴリー別アーカイブ: PHP
CakePHPでMissing Controllerメッセージを出さない方法 debugを0にせよ
CakePHPでコントローラーやモデルがないときに出るデバッグメッセージ。どのようにコードを書くべきかまで表示してくれてとっても親切なのだが、いかんせんCakePHPを利用していることがバレバレのメッセージなので本番運用環境では、出すべきではない。単にデバッグレベルの問題なんだけど、app/config/core.phpのDebug Levelを0にすれば良い 該当箇所のソース抜粋 /** * CakePHP Debug Level: * * Production Mode: * 0: No error messages, errors, or warnings shown. Flash messages redirect. * * Development Mode: * 1: Errors and warnings shown, model caches refreshed, flash messages halted. … 続きを読む
PHP5 .htaccessによるBASIC認証のときのユーザ名取得には$_SERVER['REMOTE_USER']を使う
うーんサーバ移行ではまった。 以前のプログラムではBASIC認証が行われていないと、認証ダイアログを出してサイドアクセスを要求するつくりになっていた。サーバが変わってもこんな単純なものすぐ動くだろうと思ったが、何度やっても認証にパスしない。 if (!isset($_SERVER['PHP_AUTH_USER'])) { header(“WWW-Authenticate: Basic realm=\”INPUT ID AND PASSWORD\”"); header(“HTTP/1.0 401 Unauthorized”); exit; } 調べてみるとPHP_AUTH_USERが空白となり取得できていない。 なんで!!と調べてみたところこのサーバ移行先では諸所の事情により.htaccessによる認証をかけていた。その場合はREMOTE_USERというもので取得できるそうな。 echo $_SERVER['PHP_AUTH_USER']; echo $_SERVER['REMOTE_USER']; このコードで試してみたら、確かに下段の記述でユーザ名を取得可能なのであった!細かい違いにびっくり
CakePHP ~を使わないシリーズ modelをつかわない
CakePHPのように暗黙の規約があるとそれからそれるときに困ってしまうのか、「~を使わないシリーズが」好評である。 これまでviewを使わない。layoutを使わないシリーズを取り上げてきたが、今度はModelを使わない。これはDBを使わない単なるTOPページに利用する場合につかうテクニック。 $uses = null; これだけ
CakePHP An Internal Error Has Occurred
CakePHPでDBにテーブルを新しく追加して、ModelとControllterを作成してアクセスしたときに遭遇したエラー。 通常Modelは自動生成されるのだが、本番モードだとどうもキャッシュがきくのか自動生成されないようだ。というわけでapp/config/core.phpのデバッグモードを一瞬だけ有効にする。 Configure::write(‘debug’, 1); たぶんこの回避策がベストではないけど、取り急ぎ回避できるので困っている人のためにあげてみた。
CakePHP ~を使わないシリーズ Layoutを使わない
標準のlayoutを使わない場合は以下のように記述する。 $this->layout = ”;
CakePHP ~を使わないシリーズ viewをつかわない
自宅待機を命じられたので久々にCakePHPでアプリを作成中。 せっかくなのでCakePHPのTIPSでもあげておくか。 まずテストで実施したり、CSVダウンロードなどViewを使わない場合にどうするか。 Actionのメソッドの中で以下の記述をすればよい $this->autoRender = false;
var_dump と print_rの違い
どっちも同じようなものだと思ってたら、var_dumpは変数の型名まで含めて表示する点でprint_rよりも詳細な情報が出る。 デバッグ用途で型まで必要であればvar_dump それ以外ならprint_rと使い分けるとよいだろう。
PHPでshort_open_tagをOnにする場合の注意
通常PHPのコードブロックは <?php ~ ?> だと思う。しかし <? ~ ?> という書き方もできる。この書き方はASPなどを意識したものと思われるが 思わぬ不具合を生む可能性があるので使わないほうがよい。 具体的にはXML宣言とかぶってしまうため、Offにしておくべきだろう。 <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?> ぶっちゃけ一回も<?タグ使ったことないんだけどね。
CentOSのPHPにはマルチバイト対応入ってませんのであとから入れましょう
実はサーバ移行以来Pukiwikiのshowrssプラグインが文字化けしていた。 文字コードがUTF-8になったのが原因かなと思って、内部エンコード調べようとしたらmb_internal_encodingの関数がないとエラーがでていた(画面には出力されないので/var/log/httpd/error… 続きを読む
PHPで画面が真っ白になる時はエラーを疑え!
PHPで画面にまったく何も表示されずソースを見てもほとんど何も出力されていない時がある。 実はこれ複数原因があるが、以下見ていこう。 まずは出力の文字コードが違う場合IE6だと画面が真っ白になる。この場合はソースの表示をさせると本来出力される内容が出てくるのでその場合はエンコーディングの自動選択を選ぶ(もしくはわかっていればそのエンコードを指定する) 次にソースを見ても手がかりとなるような出力がない場合だが、コレは単純でphp.iniでエラーがApacheのエラーログに出力されるようになっているだけだ。エラー情報は開発中は画面に出たほうがうれしいのだが、運用時に出してしまうとPHPのバージョンがわかってしまったりして思わぬ攻撃の手がかりを与えることになりかねない。ほとんどのディストリビューションのデフォルトではPHPのエラーはApacheのエラーログに出力されるようになっている。 もし出力するようにしたければphp.iniの以下の場所を変えて、Apacheを再起動すればよい。 display_errors = Off←On RedHat系のディストリビューション(Fedora,CentOS)であればエラーログの場所は下記にあるはず。 /var/log/httpd/error.log VineLinuxではApacheのバージョンが1か2によるが /var/log/apache/error.log /var/log/apache2/error.log 開発サーバーであれば画面に表示するように変更してもいいだろう(というか変更すべき!)