No.4ベストアンサー
- 回答日時:
えと、File名の問題でautoindexモジュールを使う場合、SJIS文字などの2バイトファイル名やディレクトリ名のうち、2バイト目にアルファベット範囲にある文字がある場合、うまくファイル及びディレクトリインデックスが取得できません。
apacheは基本的にsingle byte圏向けの仕組みしか持っていないうえ、Win32用に作られたapacheでは内部関数ap_os_canonical_filename()によりアルファベットをすべて小文字に変換しようとします(UNIX系の場合、この関数は何もしない。WindowsのFileSystemが大文字小文字を同一視する事への対応だと思う)。
そのため「ス」など、SJIS表現で2バイト目にアルファベットを持つ名前で、大文字の場合、「ベ」のように変換されてしまい、正しいリクエストが発行できません。
現状では私はソースをいじって上記関数内のstrlwr()をコメントアウトしてmakeして使ってます(もしかしたら_mbslwr()とかを使えば通るかも。まだ試してないのでどうなるかは不明なんですが)。
別の回避策としてはCygwin環境下でmakeしたapacheを用いるという方法もあります(こっちの方が何かと楽。後々問題少ないし)。
回答ありがとうございます。
"ap_os_canonical_filename()" "Cygwin"が今回の回答のキーとなりそうですね。
他OSから移植されたアプリケーションは、信頼性を考えると二の足を踏んでしまう。
(Windows環境で動作するIISでさえ穴だらけ)
Cygwinをインストールし色々試したいと思います。
No.3
- 回答日時:
まず、Apache自体は日本語環境に完全対応しているかという問題。
Apache自体がファイル名やディレクトリ名操作でマルチバイト文字を問題なく取り扱えるかという点。機種依存文字や人名用漢字、外字登録されている文字の何が来ても大丈夫な作りになっているかという点を考慮します。
次にPHP。PHPの機能でファイル操作を問題なく行えるかという問題。include, require, fopen等の引数で特殊文字を指定しても正常動作出来るかという点を考慮することになります。
最後にOS。
OSがマルチバイト文字をサポートしていて、かつ、ファイルシステムもマルチバイト文字をサポートしていなければOSとしてファイル名を認識できないことになります。
UNIXでファイル名にマルチバイト文字を使用しないのは運用ポリシーとして「極力安定動作させるため、ちょっとでも不安要素があるようなものは導入しない使用しない。」という考えがあるためではないでしょうか?
fsckを実行したときに消されるのがオチでしょう。
結論としては「影響あるかもしれないし無いかもしれない」という消極的な言い方になります。
No.2
- 回答日時:
別にあなたの都合はどうでもよくて、「Webサイトなら誰でも見れるべきモノ」なはずです。
一般的に、WebサイトでURLとしてマルチバイト文字を使うのは嫌われます。きつい言い方をすれば「ご法度(使用禁止)」の域です。
つまり、閲覧しに来た人はいろんな種類のブラウザやOSを使っています。また、使っているOSに関してもUNIXやPDA等を使っているかもしれません。これらの人を無視すればあまり大きな問題はないでしょう。
まぁ、あるとすれば「\」の取り扱いくらいでしょう。
特定のファイル/ディレクトリにアクセスできなかったり、するくらいでしょう。
この回答への補足
言葉足らずで勘違いさせてしまいました。
今回の質問では、windows環境で、WEBサーバー構築する際のインストール先などのフォルダ名のことを指しております。”URL”ではありません。
UNIX環境では、フォルダ名に2バイト文字・スペースは許されませんよね。
apache設定ファイル(httpd.conf等)に記述し、Webサーバー動作に影響を及ぼすことはあるのかといった質問内容であります。
インストール先を変更ができるのは当然知っています。ただUNIX環境を触れたことがあるものにとっては、2バイト文字やスペースが含まれるフォルダ名には気持ちがいいものではありません。
今回の質問の回答が”影響はない”のであればそれはそれでかまいません。
”長くなっても・・”と書いたのは、詳しく知りたかったことと、この手の問題は回答文が長くなると感じ、回答者への配慮のつもりです。
No.1
- 回答日時:
あんね。
>長くなってもかまいません。
は、貴方の都合ですよね。書く方の都合ではありません。
って事で、以下の事を質問します。
Apacheのバージョンは?
PHPのバージョンは?
PHPの動作モードは?
Win32って何?
スペースが含まれる事による弊害、別になし。エンコードされる時の問題があるけど、それは設定で逃げられるので、問題だとは言えない。
2バイト文字は、不都合として捉えるには大きすぎるので、ApacheのサイトやPHPのサイトを、よく読めばのっています。長くとも良いのなら、まずはサポートしているサイトをよく読む事をお薦めします。
この回答への補足
インストール先をC:\apache等2バイト文字・スペースを使用しないフォルダ名にすれば済むことですが、デフォルトでは、C:\\Program files\・・・にインストールされるようになってますよね。
設定ファイルに2バイト文字・スペースを使用したパス名を記述した場合の動作への影響をお聞きしたく、
別にないのであればそれでよいのです。
過去にJavaのクラスパスの設定で上記のようなパス名を記述し、不具合があったもので。
win32としたのは失敗でしたね。
95以降とNT以降の環境で動作するアプリケーション(この場合はWEBサーバー)の意味で書いたのですが、うまく伝わらなかったようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- PHP バージョン情報の取得方法について 1 2023/03/15 11:56
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- Windows 10 ネットからファイルをデスクトップにダウンロードする際、既存のファイルの並びが崩れてしまう 4 2022/04/19 08:20
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- 電子書籍 ファイルピックについて 1 2022/08/07 00:07
- Windows 10 Windows10の回復環境 2 2023/02/03 19:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
ファイル・ディレクトリ削除を...
-
Subversionのリポジトリの削除
-
CFileDialogの最初のディレクト...
-
makefile でファイルをコピーす...
-
glob関数で日本語文字が取得で...
-
visualstudioでc#のdllができない
-
VB2008でFTPでのディ...
-
powershell で書いたプログラム...
-
Permission denied in
-
aspのページが表示できません
-
バッチを用いたフォルダの自動移動
-
絶対パス?絶対アドレス?意味...
-
ディレクトリ内のファイル名取得
-
unlink「許可がありません」と...
-
http://localhost/に.htaccess...
-
現在位置より2つ上のディレク...
-
コマンドプロンプトを指定のデ...
-
JAVA内で複数のファイルを削除...
-
/usr/local/lib/phpとはどうい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
CFileDialogの最初のディレクト...
-
visualstudioでc#のdllができない
-
ファイルアップロードに関して...
-
現在位置より2つ上のディレク...
-
makefile でファイルをコピーす...
-
fopenでファイルが開かない場合...
-
rmdirでフォルダが消せません
-
絶対パス?絶対アドレス?意味...
-
コマンドプロンプトを指定のデ...
-
VB.NET 最下位のディレクトリ名...
-
VB2008でFTPでのディ...
-
DLL のロードの順序
-
MkDir関数
-
ファイル選択ダイアログで選択...
-
図に示す階層構造で,現在のデ...
-
[ ディレクトリ '.' は書き込み...
-
JAVA内で複数のファイルを削除...
おすすめ情報