この前の続き
apacheを使ってみるの続き
本題
Macに入ってるApacheでローカルWebサーバを起動する
を参考にDesktop/page/index.html
を作りVScodeを用いてindex.htmlを編集し、Sites/index.html
をsudo 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に変更して再度実行。
無事にコピーはできたが文字化けの問題が続く
文字コードが原因だと考えた。
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にしました。
そしたら無事に文字化けが直った。
メモ
・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による文字化け対策