2022/11/14 Updated by
Mac arm64
Apache httpd
[Up]
インストール状況の確認
- 最近の macOS では、Apache httpd が標準インストールされている。
- apache httpd がインストールされていることを確認する。
「ターミナル」上で青字部分を入力する。('%' はプロンプトを表している) |
% which httpd ← httdのパス表示
/usr/sbin/httpd
% which apachectl ← apachectlのパス表示
/usr/sbin/apachectl
% /usr/sbin/httpd -version ← httpdのバージョン表示
Server version: Apache/2.4.54 (Unix)
Server built: Sep 30 2022 02:51:01
|
- httpdの設定ファイルを調べてコンテンツを格納する場所を確認する。
「ターミナル」上で青字部分を入力する |
% ls -l /etc/apache2
total 88
drwxr-xr-x 14 root wheel 448 10 18 21:36 extra
-rw-r--r-- 1 root wheel 21648 10 18 21:36 httpd.conf
-rw-r--r-- 1 root wheel 13064 10 18 21:36 magic
-rw-r--r-- 1 root wheel 61118 10 18 21:36 mime.types
drwxr-xr-x 4 root wheel 128 10 18 21:36 original
drwxr-xr-x 4 root wheel 128 10 18 21:36 other
drwxr-xr-x 2 root wheel 64 10 18 21:36 users
% grep DocumentRoot /etc/apache2/httpd.conf
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/Library/WebServer/Documents"
# access content that does not live under the DocumentRoot.
|
httpd を起動・停止する
- 起動する
「ターミナル」上で青字部分を入力する(起動する) |
% sudo /usr/sbin/apachectl start ← httpd を管理者権限で起動する
Password: ← 自分のパスワードを入力する(エコーバックされない)
|
- ブラウザで http://localhost/ にアクセスする。
文書フォルダに index.html がない場合は、"It works!" とだけ表示される。
- 停止する。
「ターミナル」上で青字部分を入力する(停止する) |
% sudo /usr/sbin/apachectl stop ← httd を管理者権限で停止する
Password: ← 自分のパスワードを入力する(エコーバックされない)
|
設定を変更する
- Apache httpd の設定ファイルは /etc/apache2/ にある。
「ターミナル」上で青字部分を入力する(設定ファイルを確認する) |
% ls -l /etc/apache2
total 88
drwxr-xr-x 14 root wheel 448 12 2 20:37 extra
-rw-r--r-- 1 root wheel 21648 12 2 20:37 httpd.conf
-rw-r--r-- 1 root wheel 13064 12 2 20:37 magic
-rw-r--r-- 1 root wheel 61118 12 2 20:37 mime.types
drwxr-xr-x 4 root wheel 128 12 2 20:37 original
drwxr-xr-x 4 root wheel 128 12 2 20:37 other
drwxr-xr-x 2 root wheel 64 12 2 20:37 users
|
ちなみに、/etc/apache2 と /private/etc/apache2 は同一のディレクトリ(hard link)である。
inode番号が同じであることからわかる。
「ターミナル」上で青字部分を入力する(ディレクトリのinode番号を確認する) |
% ls -ldi /etc/apache2 /private/etc/apache2
36145961 drwxr-xr-x 9 root wheel 288 2 25 13:25 /etc/apache2 ← 36145961がinode番号
36145961 drwxr-xr-x 9 root wheel 288 2 25 13:25 /private/etc/apache2
|
- /etc/apache2/httpd.conf を編集する。
httpd.conf を編集するには root 権限が必要である。
一旦ファイルを手元にコピーして、慣れたエディタで変更したあと、root権限で上書きコピーするのが安全でしょう。
「ターミナル」上で青字部分を入力する(httpd.confの編集) |
% cp /etc/apache2/httpd.conf . ← 手元にコピーする
% ... ← 慣れたエディタで手元の httpd.conf を編集する
% sudo cp httpd.conf /etc/apache2/ ← root権限で上書きコピーする
|
以下の2行を変更する。コメントアウトをはずすことで「ユーザディレクトリが有効化」される。
httpd.conf の変更点 (diff -c の出力) |
*** /etc/apache2/original/httpd.conf Fri Dec 2 20:37:28 2022
--- /etc/apache2/httpd.conf Sat Feb 25 13:25:15 2023
***************
*** 183,185 ****
#LoadModule speling_module libexec/apache2/mod_speling.so
! #LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
--- 183,185 ----
#LoadModule speling_module libexec/apache2/mod_speling.so
! LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
***************
*** 520,522 ****
# User home directories
! #Include /private/etc/apache2/extra/httpd-userdir.conf
--- 520,522 ----
# User home directories
! Include /private/etc/apache2/extra/httpd-userdir.conf
|
httpd.conf は
/etc/apache2/original/httpd.conf
にオリジナルがあるので、いつでも初期状態に戻すことができる。(sudo を使って root 権限で上書きコピーすればよい。)
- /etc/apache2/extra/httpd-userdir.conf を編集する。
httpd-userdir.conf を編集するには root 権限が必要である。
一旦ファイルを手元にコピーして、慣れたエディタで変更したあと、root権限で上書きコピーするのが安全でしょう。
「ターミナル」上で青字部分を入力する(httpd-userdir.confを変更) |
% cp /etc/apache2/extra/httpd-userdir.conf . ← 手元にコピーする
% ... ← 慣れたエディタで手元の httpd-userdir.conf を編集する
% sudo cp httpd-userdir.conf /etc/apache2/extra/ ← root権限で上書きコピーする
|
以下の1行を変更する。
httpd-userdir.conf の変更点 (diff -c の出力) |
*** ../original/extra/httpd-userdir.conf Fri Dec 2 20:37:28 2022
--- httpd-userdir.conf Sat Feb 25 14:14:07 2023
***************
*** 14,18 ****
# for a site where these directories are restricted to read-only.
#
! #Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
--- 14,18 ----
# for a site where these directories are restricted to read-only.
#
! Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
|
httpd-userdir.conf は
/etc/apache2/original/extra/httpd-userdir.conf
にオリジナルがあるので、いつでも初期状態に戻すことができる。(sudo を使って root 権限で上書きコピーすればよい。)
- /etc/apache2/users/{自分のユーザ名}.conf を作成する。
/etc/apache2/users/ にファイルを作成するには root 権限が必要である。
慣れたエディタを利用して手元で作成したあと、root権限で上書きコピーするのが安全でしょう。
「ターミナル」上で青字部分を入力する(nitta.confの作成) |
% ... ← 慣れたエディタで手元で nitta.conf を作成する
% sudo cp nitta.conf /etc/apache2/users/ ← root権限でコピーする
|
{自分のユーザ名}.conf を作成する。以下は、ユーザ名が 'nitta' の場合である。
nitta.confの内容 |
<Directory "/Users/nitta/Sites">
Options Indexes FollowSymLinks Multiviews
AllowOverride all
Require all granted
</Directory>
|
- httpd を再起動する。
「ターミナル」上で青字部分を入力する(再起動) |
% sudo /usr/sbin/apachectl restart
Password: ← 自分のパスワードを入力する(エコーバックされない)
|
公開するファイルを置く
公開するファイルは ~/Sites/ におく。
URL は http://localhost/~nitta/ となる。
公開するファイルを置く(2)
公開するファイルは ~/Sites/ におく。
URL は http://localhost/~nitta/ となる。
公開するファイルを置く(3)
ユーザが公開するフォルダに index.html や index.php が存在しない場合は、
ディレクトリの一覧が表示される。
ファイル名が長くても正しく表示したい場合は ~/Sites/.htaccess に以下の記述を追加する。