Apache+PHP+PEAR使用時にエラー非表示にする

PEARを使うと将来のバージョンで動作しなくなるコードが含まれていたりで
PHPのエラーレベル次第で、こんなエラーがでたりする

環境は、Apache2.2 + PHP 5.3 です

PHP全体のエラーレベルをさげてもいいけど
一部だけ下げたいので、.htaccessにて設定する
(.htaccessが効くようにしておく)

こう書きたいけどだめみたい

php_value error_reporting E_ALL|E_STRICT & ~E_NOTICE & ~E_DEPRECATED

エラーレベルの定数で指定してやればいいので

E_ALL(32767) – E_NOTICE(8) – E_DEPRECATED(8192) – E_STRICT(2048)= 22519

php_value error_reporting 22519

この.htaccessをフォルダにほりこめば、エラーなくなった

PHPべた書きなら、PHPファイルの一番上に

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

と書けばいいです

cygwin インストール

WindowsXPにcygwinを入れてみる

cygwinのsetup.exeを公式ページよりダウンロード
実行

次へ

次へ

フォルダ選んで

インストーラー用フォルダ選んで

デフォルトのまま次へ

ドメインが.jpのものを選んで(近そうなもの)
だめだったら再度選び直して

初回インストール時は、そのままO.K.

インストールしたいものを選んで(Skipでなくす)
apt-cygを使うために
svn Devel/svn
wget WEB/wget
tar Base/tar
gawk Base/gawk
bzip2 Utils/bzip2
がいるらしいので、いれる
(入れるときに気づく)
入れ忘れたものは、再度setup.exe実行で入れられます

次へ

しばし待って

できた

apt-cygを使いたいのでいれる

svn –force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/
chmod +x /bin/apt-cyg

apt-cyg install vim
でVimがインストールできます

sshが使いたかったから
apt-cyg install openssh

これでWindowsでもUnixなことができます

Apache mod_rewriteを使って階層を飛ばす

開発環境が下記になってて、そのままApache公開フォルダにつっこみたい…
てことでmod_rewriteで飛ばす

開発環境は、
WindowsXP
Apache
バージョン管理ソフトにsubversion

<subversion上のtrunc>
trunc
| – htdocs
| – sql
| – docs
etc ..

Apache公開フォルダにcheckout

<開発環境>
公開フォルダ内
maindev
| – htdocs
| – sql
| – docs
etc ..

mod_rewriteを有効にするためApache/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
をコメントアウト外す

.htaccessが使えるように公開フォルダの
AllowOverride All
に変更

.htaccessを作成
RewriteEngine On
RewriteBase /
RewriteRule maindev/$ maindev/htdocs/$1 [R=301]

ブラウザでアクセスして確認、できた

ログを残したかったらhttpd.confに

RewriteLog logs/rewrite.log
RewriteLogLevel 5

を記載

RewriteRule ^/maindev/$ maindev/htdocs/$1 [R=301]
にすると動かないのはなぜだろう。。
ちゃんとリファレンス読まないと(リファレンスややこしい)