この前の続き
apacheを使ってみるの続き
本題
[Macに入ってるApacheでローカルWebサーバを起動する]
(https://qiita.com/takenobi/items/83068ab79ed95cbc84c8)
を参考に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ブラウザが文字コードを判定する基準は?]
(https://www.atmarkit.co.jp/ait/articles/0412/25/news006.html)
によると、HTTPのContent-Typeの情報のcharsetパラメータがないことが原因であることが多いらしく、実際自分もそこだった。
HTTPヘッダの確認
(chromeだと、[Google Chrome でHTTPヘッダー情報を確認する方法]
(https://smakoma.com/http-header-chrome.html)に記載されてる方法で確認できる。
または、[curlコマンドでHTTPヘッダを扱うレシピ]
(https://qiita.com/youcune/items/45271a32dccb7498033f)に記載されている方法でターミナルでも確認できる。)
[.htaccessによる文字化け対策]
(http://www.koikikukan.com/archives/2004/11/23-142537.php)を参考に、.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サーバを起動する]
(https://qiita.com/takenobi/items/83068ab79ed95cbc84c8)
・[パーミッションについて]
(http://web.tku.ac.jp/~densan/local/permission/permission.htm)
・[so[拡張子]とは]
(https://wa3.i-3-i.info/word13856.html)
・[confファイルとは]
(https://wa3.i-3-i.info/word11392.html)
・[Webブラウザが文字コードを判定する基準は?]
(https://www.atmarkit.co.jp/ait/articles/0412/25/news006.html)
・[MIMEタイプの追加(AddType)]
(https://www.adminweb.jp/apache/docroot/index4.html)
・[Google Chrome でHTTPヘッダー情報を確認する方法]
(https://smakoma.com/http-header-chrome.html)
・[Apache Web サーバーの設定メモ]
(http://www.nminoru.jp/~nminoru/unix/apache.html)
・[curlコマンドでHTTPヘッダを扱うレシピ]
(https://qiita.com/youcune/items/45271a32dccb7498033f)
・[.htaccessとは?設定できることや書き方と設定場所について]
(https://digital-marketing.jp/creative/what-is-htaccess/)
・[【touch】Linuxで新規ファイル作成をするコマンド]
(https://uxmilk.jp/8395)
・[.htaccessによる文字化け対策]
(http://www.koikikukan.com/archives/2004/11/23-142537.php)

