Top過去ログ目次掲示板

作成日:2007年12月23日 作成:おやじ
掲示板で過去に質問された内容です。

No.7390 mod_encodingについて


No.7390 投稿時間:2007年12月23日(Sun) 20:19 投稿者名:seeker URL:
タイトル:mod_encodingについて

こんばんは.
http://www.aconus.com/~oyaji/faq/apache_encoding.htm
このページを参考にさせて頂いている最中なのですが,最後のところだけエラーがでてしまいました.

# gcc -shared -o mod_encoding.so mod_encoding.o \
-Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
OSはCentOS5なのでRH系に置き換えてここまでやってきたのですが,どうも最後のこのひとつだけうまくいきません.

ファイルはこのようになっております.

# cd /usr
# ls
X11R6 etc include lib local share tmp
bin games kerberos libexec sbin src
# local
bash: local: can only be used in a function
# cd local
# ls
bin etc games include lib libexec sbin share src
# cd lib
# ls
libiconv_hook.a libiconv_hook.so libiconv_hook.so.1.0.0
libiconv_hook.la libiconv_hook.so.1


↓エラーが出たときのコマンド

# gcc -shared -o mod_encoding.so mod_encoding.o \
> -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
gcc: mod_encoding.o: そのようなファイルやディレクトリはありません


この際,どのようなファイルに置き換えたら良いのか分かりません.
よろしくお願いいたします.


No.7395 投稿時間:2007年12月23日(Sun) 22:03 投稿者名:おやじ URL:
タイトル:makeを忘れてません?

> ↓エラーが出たときのコマンド
>
> # gcc -shared -o mod_encoding.so mod_encoding.o \
> > -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
> gcc: mod_encoding.o: そのようなファイルやディレクトリはありません

mod_encoding.oがないといってますので、単純な話ですが、makeを忘れてません?

# ./configure --with-apxs=/usr/sbin/apxs2-prefork \
--with-iconv-hook=/usr/local/include
# make <=== これ!!
# gcc -shared -o mod_encoding.so mod_encoding.o \
-Wc,-Wall -L/usr/local/lib -Llib -liconv_hook


No.7396 投稿時間:2007年12月23日(Sun) 22:30 投稿者名:seeker URL:
タイトル:Re: makeを忘れてません?

失礼致しました。どうも先に戻ったところでうまくいってなかったようです。
# cd ../
# wget http://www.aconus.com/~oyaji/faq/ mod_encoding.c-apache2.2-20060520.patch
--22:23:29-- http://www.aconus.com/~oyaji/faq/ mod_encoding.c-apache2.2-20060520.patch
www.aconus.com をDNSに問いあわせています... 124.25.221.221
www.aconus.com|124.25.221.221|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2876 (2.8K) [text/plain]
Saving to: ` mod_encoding.c-apache2.2-20060520.patch'

100%[=======================================>] 2,876 --.-K/s in 0.03s

22:23:29 (86.7 KB/s) - ` mod_encoding.c-apache2.2-20060520.patch' を保存しました [2876/2876]

# patch -p0 < mod_encoding.c-apache2.2-20060520.patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- mod_encoding.c.orig 2006-05-20 17:10:58.000000000 +0900
|+++ mod_encoding.c 2006-05-20 17:18:06.000000000 +0900
--------------------------
File to patch:

このようになってしまいます。
この際はどのようにしたらよいのでしょうか・・・


No.7397 投稿時間:2007年12月24日(Mon) 00:28 投稿者名:瀬戸っぷ URL:
タイトル:カレントディレクトリは?

> # patch -p0 < mod_encoding.c-apache2.2-20060520.patch
> can't find file to patch at input line 3
> Perhaps you used the wrong -p or --strip option?
> The text leading up to this was:
> --------------------------
> |--- mod_encoding.c.orig 2006-05-20 17:10:58.000000000 +0900
> |+++ mod_encoding.c 2006-05-20 17:18:06.000000000 +0900
> --------------------------
> File to patch:
>
> このようになってしまいます。
> この際はどのようにしたらよいのでしょうか・・・

このコマンド、どこで実行していますか?
mod_encoding-20021209の直下でやる必要がありますが…。


「下記は、SuSEでApache2.0系の例である。」の下に記述されているコマンド群は
「mod_encoding のインストール前に iconv_hook ライブラリのコンパイルとインストールを行う。」の下のコマンド群を実行した直後からのもののようです。
> File to patch:
と聞いてくるのは、patchフアイルに記述されたファイルが見つからなかった場合になります。
patchコマンドには-p0が指定され、patchファイルには
--- mod_encoding.c.orig 2006-05-20 18:04:44.000000000 +0900
+++ mod_encoding.c 2006-05-20 18:03:31.000000000 +0900
と指定されているので、カレントディレクトリにmod_encoding.cが必要です。


No.7409 投稿時間:2008年01月05日(Sat) 16:22 投稿者名:seeker URL:
タイトル:Re: AddDefaultCharset

すみません。できたようです。
これは変換するだけでなく、WebDAV側で使用する文字コードをUTF-8で扱うということになってるようになった?みたいです。

これらを行う根本的な目的は、
FFFTPで転送したファイルをwebブラウザ上(index of)で見るとShift-JISで表示されるので、○○○○.pdfと言ったファイルをダウンロードする際に、文字化けしてしまう。

そこで、WebDAVの文字化けということで、mod_encodingを導入したのですが、これらは解決されませんでした。(設定が悪いのかな)

現在では
ファイルをUTF-8で置くと、ブラウザ上で見るとShift-JISで表示するため文字化けしてしまいます。
ブラウザの表示で文字コードを指定して、文字化けを解消してからダウンロードすると、きちんと文字化けせずにダウンロードできました。

しかしわざわざ表示→文字コードで指定するのも手間がかかるため、
今はAddDefaultCharset UTF-8にして、ファイル名もUFT-8で置くと、
index ofの部分は問題ないのですが、他のページが文字化けしてしまいます。

このような説明しづらい現状ですが、根本的な目的は下記のことですが、これが可能な設定手段はないでしょうか?どうかよろしくお願いいたします。



サーバ側は(AddDefaultCharset Off)

FFFTPでShift-JISのファイルをサーバ側に転送する

WebDAVを利用して、ブラウザ上にアクセスし、ダウンロードする

文字化けせずにダウンロードできる

アップロードしたファイルを「てすと.pdf」とすると
サーバ側のディレクトリは

/var/www/html/テスト/てすと.pdf

このてすと.pdfを文字化けせずにブラウザ上でダウンロードできる手段を探しております…


No.7410 投稿時間:2008年01月06日(Sun) 11:17 投稿者名:おやじ URL:
タイトル:使い方の整理をされないと無理です。

> すみません。できたようです。

コンテンツのほう、若干説明不足ですね。

> これは変換するだけでなく、WebDAV側で使用する文字コードをUTF-8で扱うということになってるようになった?みたいです。
>
> これらを行う根本的な目的は、
> FFFTPで転送したファイルをwebブラウザ上(index of)で見るとShift-JISで表示されるので、○○○○.pdfと言ったファイルをダウンロードする際に、文字化けしてしまう。
>
> そこで、WebDAVの文字化けということで、mod_encodingを導入したのですが、これらは解決されませんでした。(設定が悪いのかな)
>
> 現在では
> ファイルをUTF-8で置くと、ブラウザ上で見るとShift-JISで表示するため文字化けしてしまいます。
> ブラウザの表示で文字コードを指定して、文字化けを解消してからダウンロードすると、きちんと文字化けせずにダウンロードできました。
>
> しかしわざわざ表示→文字コードで指定するのも手間がかかるため、
> 今はAddDefaultCharset UTF-8にして、ファイル名もUFT-8で置くと、
> index ofの部分は問題ないのですが、他のページが文字化けしてしまいます。
>
> このような説明しづらい現状ですが、根本的な目的は下記のことですが、これが可能な設定手段はないでしょうか?どうかよろしくお願いいたします。
>
>
>
> サーバ側は(AddDefaultCharset Off)
>
> FFFTPでShift-JISのファイルをサーバ側に転送する
> ↓
> WebDAVを利用して、ブラウザ上にアクセスし、ダウンロードする
> ↓
> 文字化けせずにダウンロードできる
>
> アップロードしたファイルを「てすと.pdf」とすると
> サーバ側のディレクトリは
>
> /var/www/html/テスト/てすと.pdf
>
> このてすと.pdfを文字化けせずにブラウザ上でダウンロードできる手段を探しております…

まず、真にやりたいことが何か? がはっきりしないのでコメントしづらいのですが、書かれている内容の全てを満足できるソリューションは、各ツールのファイルへのアクセス手段の文字コードの扱いの仕様が整合が取れないため論理的にありません。
従って、何かを犠牲にするか、書かれていない条件(おやじが思いつくのは、WebDVAアクセスするディレクトリには、一般的なWebコンテンツを置かずに単なるファイル置き場に徹する方法)を許容しなければ対策がありません。要は、サーバ上のファイル名を「Shift-JIS」にするか?「UTF-8」にするかを決め、いくつかの対策をしても駄目なものはあきらめるしかありません。

まず、仕様上、どうにもならないのは以下の件です。

1. WebDAVでファイルを作成したりアップロードするときの文字コードは、Shift-JISである。
2. WebDAVでファイルにアクセスする場合にサーバから送られる文字コードは、UTF-8である。

これが、WebDAVで日本語ファイルを扱うと文字化けする原因である。これを解決するのが、mod_encodingであり、mod_encodingが1項のファイル名送信時のShift_JISコードをUTF-8に変換して保存してくれるので、2項で読み出しても文字化けしなくなるわけでである。

従って、mod_encodingを使用してWebDAVで文字化け対策すると、サーバ上のファイル名はUTF-8となる。
この時点で、「FFFTPでShift-JISのファイルをサーバ側に転送する」というのが、矛盾するのは明らかである。FTPサーバをUTF-8対応し、クライアントもUTF-8対応にしないと駄目である。(UTF-8対応FFFTPを使用し、Shift_JISのwebコンテンツを扱う場合は、「拡張」タブの中にある「接続時にホストに送るコマンド」で「OPTS UTF8 OFF」と設定してあげればよい。)
但し、このままでは単にブラウザでアクセス(WebDAVではなく何でブラウザアクセスが必要?)すると、ブラウザにもよるが、ほぼ文字化けしてしまう。従って、webコンテンツはshift_JISのままにしたいなら、このフォルダだけ、.htaccessやDirectoryディレクティブを使用して「AddDefaultCharset UTF-8」を設定する。

後、サーバへのアクセス手段がFTPであったり、WebDAVであったり、単なるブラウザであったりしますが、使い方を整理できないのでしょうか?
特にWebDAVとブラウザアクセスは、どちらか一方にできないのですか?



掲示板▲頁先頭