Apacheとphpとmysqlを使ってwebシステムを作っているのですが、作っているシステムがどうしても動かなくて悩んでいました。
ふつーは、そのシステムがそもそも動かないんじゃないの?って話になるんですが、違う環境でやると動くのでプログラム的には問題ありません。
環境を軽く書くと以下のとおりです。
最初に動いていた環境
- OS:Windows7
- Webサーバー:IIS
動かなくなっていた環境
- OS:Windows7
- Webサーバー:Apache
動かなくなった環境で実行するとPHPのソースがそのまま表示されたり、「Fatal error: Unknown: Failed opening required…」と表示されたりいろんなことが発生しました。
この原因でエラーになっているというのに気づくまですごく時間がかかってしまいました。
さらに、時間を喰った原因としてWindowsには、シンボリック・リンクという機能があって、フォルダの別名(ショートカットとは違う)を付ける機能があるのですがそれを使えば解決できるのではないかと考えてその設定をしてしまったことです。
いくらシンボリック・リンクを使っても日本語が含まれるとダメなんですよね(内部的には実際のフォルダ名を使っているんでしょうね。)
なので、apacheで日本語を含むディレクトリでの開発はしないようにしましょう。
なぜこうなったかというとこんな経緯があります。
ごく当たり前の対応だと思います。
- プロジェクトのフォルダは日本語名を付けてわかりやすくしたい
- ソースはそのフォルダ内に入れておきたい
ですが、これをするとapacheで使えなくなるので方式を考えました。
旧フォルダ構成
140001_日本語のプロジェクト名develop
src (←ここにソースを入れている)
新フォルダ構成
140001_developsrc (←ここにソースを入れている)
140001_日本語のプロジェクト名
develop (140001_developフォルダをシンボリックリンクでリンク)
src
これでプロジェクトフォルダ一つでまとめて管理ができるようになります。
そもそも2つに分けたんだったらそのままえいんじゃ無いの?ってのもありますが…。
教訓
システム開発時のソースファイルは必ずアルファベットと数字だけのフォルダにすることっ!
0 件のコメント:
コメントを投稿