• ベストアンサー

Apache設定ファイルhttpd.confの修正で不明な点があります

お世話になります。これからPHPを勉強しようとしている初心者です。 Apache、PHPをインストールし、Apache設定ファイル[httpd.conf]のAddDefaultCharsetについての記述を以下のように修正しようとしています。 AddDefaultCharset ISO-8859-1 ↓ # AddDefaultCharset ISO-8859-1 PHPについての本や参考サイトを見ると、どれもこのように修正するように書いてあるのですが、どうしてもファイル中に「AddDefaultCharset ISO-8859-1」という部分の記述が見つかりません。 文字コードについての記述は #AddCharset ISO-8859-1 .iso8859-1 .latin1 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset ISO-8859-3 .iso8859-3 .latin3 AddCharset ISO-8859-4 .iso8859-4 .latin4 AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset ISO-2022-JP .iso2022-jp .jis AddCharset ISO-2022-KR .iso2022-kr .kis AddCharset ISO-2022-CN .iso2022-cn .cis AddCharset Big5 .Big5 .big5 # For russian, more than one charset is used (depends on client, mostly): AddCharset WINDOWS-1251 .cp-1251 .win-1251 AddCharset CP866 .cp866 AddCharset KOI8-r .koi8-r .koi8-ru AddCharset KOI8-ru .koi8-uk .ua AddCharset ISO-10646-UCS-2 .ucs2 AddCharset ISO-10646-UCS-4 .ucs4 AddCharset UTF-8 .utf8 という部分しか見当たらないのです。 インストールしたApacheのバージョンは 2.0.55 です。初歩的質問で恐縮ですが、この場合どう修正すれば良いかご教授いただけないでしょうか。

noname#40842
noname#40842
  • PHP
  • 回答数4
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.3

最近のバージョンになって、不評だったせいか標準添付されている httpd.conf ファイルから AddDefaultCharset ISO-8859-1 という設定は外されました。なので、見つからなくて当たり前です。 ただし、HTTP/1.1 プロトコルの仕様書 (RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1, 参考 URL を参照) には、Content-Type ヘッダフィールドにcharset パラメータが存在しない場合のデフォルト値を ISO-8859-1 とする旨の記述があります。なので、AddDefaultCharset を設定しなくても結果は変わらないはずなのです。にもかかわらず、この設定を外すことでクライアント側で日本語が正しく表示されるようになるのは、クライアント側の実装バグであってサーバ側の設定としては望ましくありません。(逆に設定がないのであれば追加して下さい) 仮に、Windows を相手に Shift-JIS (Windows-31J) を使うのであれば、 AddDefaultCharset Windows-31J と設定すべきでしょう。これにより、Windows-31J 以外の文字コードを使いたい場合を除いて、プログラム側 (PHP) で文字コードを指定する必要がなくなります。

その他の回答 (3)

  • entree
  • ベストアンサー率55% (405/735)
回答No.4

すみません、参考 URL を貼り付けるのを忘れていました。^^;; 場所は p.37 の 「3.7.1 Canonicalization and Text Defaults」 というセクションです。 [ 原文の抜粋 ] When no explicit charset parameter is provided by the sender, media subtypes of the "text" type are defined to have a default charset value of "ISO-8859-1" when received via HTTP. Data in character sets other than "ISO-8859-1" or its subsets MUST be labeled with an appropriate charset value. [ 以下、翻訳 ] charset が送信者側 (サーバ) から明示的に供給されないとき、"text" タイプのメディアサブタイプは HTTP 経由で受信する場合 ISO-8859-1 の charset 値を持つものと定義される。ISO-8859-1 もしくはそのサブセット (US-ASCII などが該当) 以外の charset を持つデータは 適切な charset 値でラベル付けされなければならない。

参考URL:
http://www.ietf.org/rfc/rfc2616.txt
noname#40842
質問者

お礼

お礼が遅くなり申し訳ありません。大変参考になりました。どうもありがとうございました。

回答No.2

変えるなら以下の部分ですね。 #AddDefaultCharset ISO-8859-1 ↓ AddDefaultCharset EUC-JP  など。 「AddDefaultCharset」で文字列検索されれば良いかと思います。

noname#40842
質問者

お礼

「AddDefaultCharset」を検索しても見つからなかったのですが、最新バージョンでは記述がもともとなかったようです。ご回答ありがとうございました。

  • jijitau
  • ベストアンサー率41% (24/58)
回答No.1

特に気にする必要はないと思います。 AddDefaultCharset の定義が無ければ、問題ないと思います。

noname#40842
質問者

お礼

そうでしたか!特に気にしなくても良いのですね。ご親切にありがとうございます。これからどんどん勉強していこうと思います。

関連するQ&A

  • ホームページの文字化け

    お世話になっています。 検索しましたが、引っかからなかったので投稿します。よろしくお願いいたします。 環境はRedhat9.0、apache2.054を使用しています。 自宅でホームページを運用しようと考えているのですが、作成したindex.htmlを開くと文字化けが発生します。以前は問題なかったのですが、1ヶ月ほど前にcgiを導入してからこのような現象になったと思います。 ページのデフォルトエンコードが西ヨーロッパ言語(ISO)になっている様子で、エンコードを変更すれば文字化けは直るのですがページの更新をかけると現象が再現します。 自分で調べては設定を見ましたが、現象が改善しませんので御教授お願いいたします。 現在の設定環境は以下の通りになります。 /var/www/html/index.htmlに下記追加 <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> httpd.confを編集 #AddCharset ISO-8859-1 .iso8859-1 .latin1 #AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen #AddCharset ISO-8859-3 .iso8859-3 .latin3 #AddCharset ISO-8859-4 .iso8859-4 .latin4 #AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru #AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb #AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk #AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb #AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk 上記をコメントアウト AddDefaultCharset off  追加 LanguagePriority ja  のjaを先頭に変更 /var/www/.htaccess  を追加し、下記記入 AddType "text/html; charset=ISO-2022-JP" html /etc/sysconfig/i18n LANG="ja_JP.eucJP" SUPPORTED="ja_JP.eucJP:ja_JP:ja" SYSFONT="lat0-sun16" SYSFONTACM="8859-15" 長文になりましたが、上記より改善方法がわかる方御教授お願いいたします。

  • PHPとApacheの連携

    Apacheのインストールはできたのですが、PHPでApacheとPHPを関連づけるのに必要なhttpd.confの設定でつまづいてしまいました。 参考書に書いてある事とは違っていたのでどうすればいいのかわからなくなってしまいました。どなたかよろしくお願いいたします。 参考書では 173行目にLoadModule php5_module c:php/php5apache2.dll 699行目にAddDefaultCharset none 794行目にAddType application/x-httpd-php .php となっているのですが、 たとえば699行目にAddDefaultCharset noneとなっているので 参考書に載ってる 700行目のAddCharset ISO-8859-1 .iso8859-1 .latin1 を検索しようとしたのですが引っかからず自力で探したのですが、みつかりませんでした。 ですので 699行目のAddDefaultCharset none をどこに記入すればいいのかわからなくなってしまいました。 ちなみに 794行目AddType application/x-httpd-php .php もどこに打ったらいいのかわかりません。 よろしくお願いいたします!

    • ベストアンサー
    • PHP
  • PHP Install後におけるhttpd.confの書換が完了できない

    ローカルマシンのWin2000上にPHPとMySQLを動作させようとしていますが、Apache_2.0.45のインストール後にPHP-4.3.2をインストールしてからの、Apacheのソフトウェア内の「httpd.conf」ファイルの書換が何度確認してもうまくいきません。 [1]503行目付近 ScriptAlias /cgi-bin/ "D:/Softwares/Apache_2.0.45/Apache2/cgi-bin/" の行の後に ScriptAlias /php/ "D:/Softwares/Apache_2.0.45/Apache2/htdocs/" と続けて入れた(もちろんパスは合致)。 書籍には「ScriptAlias /php/ "C:/PHP/"」と入れるようにあったが、それではうまくいかなかったので、上記のようにした。 [2]755行目付近 AddType image/x-icon .ico とあるところに続けて、 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps と入れた(書籍通り) [3]797行目付近 # Format: Action handler-name /cgi-script/location # とあるところの次に Action application/x-httpd-php /php/php.exe と入れた(書籍通り)。ちなみに、 Action application/x-httpd-php /PHP-4.3.2/php.exe ともやってみたがダメだった。 [4]314行目付近(任意とあった) DirectoryIndex index.html index.html.var とある次に続けて、 DirectoryIndex index.htm DirectoryIndex index.php と入れた(書籍通り)。 [5]679行目付近 #LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw とあるところを日本語を先頭にということで、jaを先頭に差し替えた(書籍通り)。 LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw [6]695行目付近 AddDefaultCharset ISO-8859-1 のところを以下にした(書籍通り)。 #AddDefaultCharset ISO-8859-1 AddDefaultCharset none 長くなって恐縮ですが、ご教授願えたら嬉しいです。宜しくお願いします。

  • HTTPヘッダーがどうしてもISO-8859になる

    Apache2.2.4(ソースからインストール)を使っています。 以下の問題は,IEなら問題ありません。すべてFirefoxで見る場合のみです。 HTTPヘッダーに 「Content-Type: text/html; charset=ISO-8859-1」が 入ってしまい,metaヘッダーにどんなcharsetを指定しても FirefoxがISO-8859と解釈して,文字化けを起こします。 httpd.confには, AddDefaultCharset ISO-8859の行はありません。 しかし, AddDefaultCharset UTF-8や AddDefaultCharset none と指定しても,ヘッダーにcharset=ISO-8859-1が表示されることには 変わりなく,問題解決しません。 .htaccessファイルは一切使っていません。 この問題はCGIに関係なく,任意のファイルで発生します。 一体,なぜISO-8859がヘッダーに現れるのでしょうか。

  • MYSQL4.0.27でLIKE検索ができない

    初心者です。 過去ログを漁ったりしたのですが、どうしてもわからなかった為 質問させていただきました。 XSERVER http://www.xserver.ne.jp/ で携帯用サイトを開発しているのですが、 ユーザー投稿型のサイトを作っています。 そこで、投稿された情報の中で 日本語、英語のまじったLIKE検索を 他ユーザーができるようにしたいのですが 検索結果がまったく一致しません。 文字コードについては、以下の通りです。 ------------ character set ujis character sets latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ujis dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5 ------------ OSはLinux系です。 文字コードがujis で設定されているため PHP側の構文の問題なのかな。。。。 という状態なのですが、全く解決方法がわかりません。 #クエリー記述 $query1 = "SELECT s_num,s_name,s_url,s_txt FROM site_data WHERE s_name LIKE '%{$keyword}%'"; ※s_nameはサイト名が記載されている。 検索窓で、このサイト名についてLIKE検索させ 該当結果を出したいのですが。。。。 $keywordをあらかじめエンコードするなどの PHP側で処理が必要なのでしょうか。 こんなレベルで大変恐縮なのですが どなたかご教授いただけませんでしょうか。 何卒、どうぞ、よろしくお願い申し上げます。 4.0.27

  • XAMPP、MySQLのテーブルの漢字が??になってしまいます。

    XAMPP Lite 1.5.0をインストールしました。 インストール後、変更を加えた点は下の1点だけです。 Apache2/Conf/httpd.conf の AddDefaultCharset ISO-8859-1を AddDefaultCharset Shift_JIS に変更しました。 phpMyAdminで簡単なMySQLのテーブルとそのテーブルを呼び出すphpファイルを作りました。ブラウザ上でそのphpファイルを呼び出すと、データの呼び出しは出来ているのですが、漢字が正しく表示されず??になってしまいます。文字コードを修正すればいけるのではないかと思っていますが・・ 初心者同然ではじめました。どなたかぜひ教えてください。よろしくお願いします。

  • PHPの文字コードの変更

     php.iniの設定で、Apacheに対する文字コードの変更ができません。  買った本には 「AddDefaultCharset ISO-8859-1」 の部分を、 「AddDefaultCharset none」 と変えるよう指示されていましたが、バージョンが変わったためか、(その本は5.01についての解説でした)その場所が見つかりません。  どこを設定すれば良いのか、どなたか教えて下さい。

    • ベストアンサー
    • PHP
  • WinXP PHP5 Apache2 初期設定で、phpinfo()が表示されない

    【現象】 ApacheとPHP5をインストールした後、各種設定ファイルの 必要なことを修正した後、index.phpというファイルに <? phpinfo(); ?> を記述して保存、Apacheを再起動した後、ブラウザで、http://localhost/ と入力しましたが、何も表示されませんでした。(空白の画面のみ表示) ApacheとPHP5のインストールは成功し、それぞれの動作確認は とれています。 ApacheとPHP5の連携がうまく出来ていないようなのですが、 どこをどういじればいいかわからず困り果てています。 最新のPHP関連書籍と、ネット上のサイトを見て、書かれていることを 試してみたのですが、うまく行きませんでした。 【質問内容】  上記の現象の場合、各種設定ファイルの内容などについて、  どの部分をチェックすればよいか教えていただきたいです。 【環境】  OS:WindowsXP  PHP:PHP5 5.1.4  Apache:Apache 2.0.58(Win32)  ブラウザ:Firefox 1.5.04 および MSIE 6

    • 締切済み
    • PHP
  • apache httpd.confの設定

    お世話になります。 ホームページリニューアルの運用の仕方に関して、 質問します。 現在、URLドメイン名をブラウザに入力すると 現れるページ以下を全面リニューアルするのですが 現Index.Htmを残したまま、 新opnening.htmlもしくはindex.phpが現れるようにしたいのです。 よろしくお願いします。

  • apacheのhttpd.confについて

    useraddでtestという新しいユーザーを作成しました。 自動的に/home/test/というフォルダが出来ますが、 このtestフォルダをDocumentRootにするにはどうしたらいいのでしょうか? /etc/httpd/conf/httpd.conf の下記部分を変更しただけでは表示されませんでした。Fedora Core Test Pageが表示されてしまいます。 DocumentRoot "/var/www/html" ↓ DocumentRoot "/home/test" 他にどこを設定すればいいのでしょうか?

専門家に質問してみよう