mod_rewriteネタその2

2007/01/05 | mojavi2

mojaviで使うmod_rewriteだけど、少しだけ進展させてみた。
こんな内容。

RewriteEngine On

# 実在ファイルへのアクセスはそのまま流す
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* – [L]

#モジュールだけ指定されていた場合はactionはindexを指定
RewriteRule ^([^/]+)/?$ – [C]
RewriteRule !^rulebase/? – [C]
RewriteRule ^([^/]+)/?$ /index.php?module=$1&action=index [L]

#モジュールとアクションだけが指定されていたら(スラッシュの
#有無にかかわらず)
RewriteRule ^([^/]+)/([^/]+)/?$ – [C]
RewriteRule !^rulebase/? – [C]
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?module=$1&action=$2 [L]

#後ろにスラッシュがあって、さらにパラメータが指定されたら
#とりあえずモジュールとアクションだけ書き換え
RewriteRule !^rulebase/? – [C]
RewriteRule ^([^/]+)/([^/]+)/(.*) /rulebase/$3?module=$1&action=$2

#次にパラメータを書き換えて、パラメータの数だけ繰り返す
RewriteRule ^rulebase/([^/]+)/([^/]+)(.*)$ /rulebase$3?$1=$2 [QSA,N]
RewriteRule ^rulebase/?$ /index.php [QSA,L]

いちおう動いている模様。
これで進めることにする。

ファイルアップロードの上限

2007/01/04 | apache

PHPでファイルをアップロードする場合は、いくつか設定で気をつけておくべき箇所がある。それは以下の4つの設定だ。

file_uploads(PHPでファイルアップロードできるようにするかどうか)
memory_limit(PHPが使用することのできるメモリの上限)
post_max_size(PHPがpostによって受け取ることのできる容量の上限)
upload_max_filesize(PHPが処理できるアップロードファイルの上限)

まずファイルのアップロードがまったくできない場合は1つ目のfile_uploadsが正しく設定されているかどうかチェック。Offとかだともちろんアップロードできない。
次にファイルサイズが大きいとアップできない場合は残りの3つの設定をチェックする。上記の設定はそれぞれ以下の関係を守る必要がある。

memory_limit > post_max_size > upload_max_filesize

しかし、これらを正しく設定してもまだアップロードができない場合がある。それはapacheの設定だ。apacheの設定で以下のようなディレクティブがある。

LimitRequestBody

ここでアップロードで使用できる(純粋にはファイルだけではないが)ファイルの容量の上限が記述されていることがある。もちろんPHPでいくら設定しても、apacheではじかれてしまっては元も子もない。
この設定もチェックしよう。

なおそれぞれのチェックはphp.iniやhttpd.confを見ればだいたいいいのだが、PHPの場合は/etc/php.d/の中のファイル、/etc/httpd/conf.d/の中のファイルなどもチェックしておく必要がある可能性がある(設定ファイルを分散して設置することができるから)。
ファイル名やファイルへのパスは各自の環境に合わせる必要があることは言うまでもない。

QuickFormもか・・・PEAR管理ツールのバグ

2007/01/03 | その他PEAR全般

DatabaseだけじゃなくてHTML系も結局だめ。
QuickFormがインストールできないよ(これも検索してインストール)。

他にもあるかもしれない。
これは今後サポートしないということか?。理由がわからん。
どうなってるよ、PEAR・・・。とほほ。

ウェブ管理ツールのバグ?(Databaseが表示されない)

2007/01/02 | その他PEAR全般

今日、新しくサイトを構築するのに、PEARのインストールを実行した。
最近はもっぱら、サイトごとにPEAR用ディレクトリを作って、そちらでパッケージの管理をしている。手順は以下のとおり。

○ウェブからアクセスできるとことにディレクトリを作成(パーミッション777)
○http://go-pear.orgにアクセスして、表示された内容をコピペしてファイルを作成(go-pear.php)。
○作成したファイルを作ったディレクトリにアップして、ウェブからアクセス。
○画面にしたがってPEARインストール完了。

こういう手順でいいのだが、ウェブ管理ツールからデータベースのインストールができない。というかカテゴリ「Database」が見つからない。これが見つからないと、必要なものがインストールできないのに・・・。
いろいろ探し回ったけど、結局検索で「mdb2」とするしかなかった(これで必要なパッケージは表示されたのでインストール完了)。
これは絶対バグなような気がする。早くなおることを祈る。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net