サーバの知識もあると便利
gusagiです。
明けましておめでとうございます。本年もよろしくお願いいたします。
ウェブサイトを長く運営していると、アップロードしたファイルなどにより特定のディレクトリの容量が大きくなりすぎることがあると思います。
そのディレクトリに対してブラウザからアクセスさせていなければ問題ないのですが、画像やPDFファイルなどの場合、そのまま移動させるのが難しい場合が出てきます。
たとえば、/home/www/example.com/htdocs/photo というディレクトリに画像をアップロードしていたところ、/homeを含むパーテーションの使用率が100%になってしまいました。
使用量のほとんどは、上記のディレクトリにアップロードした画像が占めています。
/home/www/example.com/htdocs/photo/xxx.png へは、現在のところhttp://example.com/photo/xxx.png でアクセス出来ています。
画像のアップロードは今後も行う予定なので、example.com配下を別のディレクトリに移動に移動したいのですが、プログラム側の修正が発生するため、example.com配下の全てを移動させる訳には行きません。
こんな場合、一番工数を少なくして解決する方法は、apacheの設定ファイルで解決することだと思います。
前述のように、/home/www/example.com/htdocs/photo が使用量の殆どを占めているので、photoだけを別のパーテーションに移します。
仮に、/home2というパーテーションに移動させるとしましょう。
イメージとしては、
/home/www/example.com/htdocs/photo
↓
/home2/example.com/photo
に移動させると思って下さい。
この場合、http://example.com/index.php へのアクセスは、/home/www/example.com/htdocs/index.php が処理を行い、http://example.com/photo/xxx.png へのアクセスは、/home2/example.com/photo/xxx.png を表示させるようにすれば良いことになります。
設定方法は、
AliasMatch ^/photo/(.*) /home2/example.com/photo/$1
apacheやMySQLなどのサーバに手を加えることで、プログラムを延々と修正する手間が省けるということは結構あります。
プログラムに加えてサーバのことまで覚えるのは確かに困難ですが、やってみる価値は十分にあるのではないでしょうか?
RSS feed for comments on this post.
Ȥ
ʤߥȤդ뤳ȤϽޤ
ln -s でシンボリックリンク作った方が楽じゃないですか?lnってマウントポイントを越えられないんでしたっけ?
Comment by itoh — 2008年1月16日(水曜日) @ 20時23分40秒
itohさんのコメントを見て、思わず「あっ」と声を上げてしまいました・・・^^;
確かに、シンボリックリンクの方が楽ですよね。
うーん、失敗失敗(汗
Comment by gusagi — 2008年1月17日(木曜日) @ 18時18分25秒
httpd の conf で
Alias /photo/ “/home2/example.com/photo/”
とやることもできますね。こちらの方が match しない分、速度的にも有利なはずです。
symlink も良いですが、symlink だと、Options +FollowSymLinks しなければいけませんね。
Comment by =nat — 2008年2月24日(日曜日) @ 18時32分02秒
> Alias /photo/ “/home2/example.com/photo/”
> とやることもできますね。こちらの方が match しない分、速度的にも有利なはずです。
Aliasって、その配下の全てのファイル、なんてパターンでも利用出来るんですかっ!?
知りませんでした^^;
さっそく、テスト環境でも使って試してみますね。
> symlink も良いですが、symlink だと、Options +FollowSymLinks しなければいけませんね。
確かに、FollowSymLinksが不可の環境もありそうですし、ここらへんも注意しないと駄目ですね^^;
Comment by gusagi — 2008年2月27日(水曜日) @ 18時00分08秒