1
1

More than 3 years have passed since last update.

apacheを使ってみる2(apacheの文字化けの修正)

Posted at

この前の続き

apacheを使ってみるの続き

本題

Macに入ってるApacheでローカルWebサーバを起動する
を参考にDesktop/page/index.htmlを作りVScodeを用いてindex.htmlを編集し、Sites/index.htmlsudo cp -rf Desktop/page /Users/ユーザ名/Sitesと更新しようとしたら次のエラーが
(index.htmlファイルのみをコピーするならこう。
cp -rf Desktop/page/index.html /Users/[ユーザ名]/Sites)


cp: /Sites: Read-only file system
cp: Desktop/page: unable to copy extended attributes to /Sites: Read-only file system
cp: /Sites/index.html: No such file or directory

Sitesが読み取り専用になっているらしい。
パーミッションを755に変更して再度実行。

無事にコピーはできたが文字化けの問題が続く

スクリーンショット 2020-03-25 16.19.06.png

文字コードが原因だと考えた。
Webブラウザが文字コードを判定する基準は?
によると、HTTPのContent-Typeの情報のcharsetパラメータがないことが原因であることが多いらしく、実際自分もそこだった。
HTTPヘッダの確認
(chromeだと、Google Chrome でHTTPヘッダー情報を確認する方法に記載されてる方法で確認できる。
または、curlコマンドでHTTPヘッダを扱うレシピに記載されている方法でターミナルでも確認できる。)

.htaccessによる文字化け対策を参考に、.htaccess にAddTypeで宣言をかく、AddType "text/html;charset=UTF-8" htmlと今回は書いた。
httpd.confファイルに書いてもいいんだけど、httpd.confはapache全体の設定で.htaccessは各ディレクトリごとの設定(あってる?)だから、全般の設定をいじらない方が良いと考え.htaccessにしました。

そしたら無事に文字化けが直った。

スクリーンショット 2020-03-25 16.22.07.png

メモ

・apacheは表示内容を自動で更新しないため、更新するためにはsudo apachectl restart
を打つ
・パーミッションの設定はchmodコマンドで行い、大体のパーミッションの問題はchmod 755 [ディレクトリorファイル名]で解決しそう
.soは共有ファイル、.confはunix系で慣例的に使われる設定ファイルのこと
・エラーログはhttpd.confファイルでErrorLogで検索すると位置が書いてある。
自分の場合は/private/var/log/apache2/error_logだった。

感想

文字化け以外にもいろいろハマった、、、
こういう完全に初めてやるようなことは本を読んでからやろうと考えました。

参照

Macに入ってるApacheでローカルWebサーバを起動する
パーミッションについて
so[拡張子]とは
confファイルとは
Webブラウザが文字コードを判定する基準は?
MIMEタイプの追加(AddType)
Google Chrome でHTTPヘッダー情報を確認する方法
Apache Web サーバーの設定メモ
curlコマンドでHTTPヘッダを扱うレシピ
.htaccessとは?設定できることや書き方と設定場所について
【touch】Linuxで新規ファイル作成をするコマンド
.htaccessによる文字化け対策

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1