- macOS で Apache/PHP 開発環境を設定する 2 部構成の第 1 部
- Get the Latest OS Updates
- Install Xcode
- Install Homebrew
- Create Apache Log File Directories
- Install and Configure Apache
- Change the Listening Port
- Enable Useful Apache Modules
- Change Apache User and Group Settings
- Set Apache Server Admin and Server Name
- ドキュメント ルート、ディレクトリ、オーバーライドの変更
- Set Apache Error Log Location
- Create a Sites Folder
- Restart Apache
macOS で Apache/PHP 開発環境を設定する 2 部構成の第 1 部
この記事の対象者は、Mac で開発環境設定の一部として Apache Web サーバーをインストールしたいウェブ開発者です。
PHP 開発者であれば、この記事は Homebrew と PECL を使用して PHP をインストールする手順を説明する次の記事への前提条件となります。 その記事へのリンクはこのページの下にあります。
開発者として、私は以前、MacBook Pro の OS にプリロードされているバージョンの Apache に依存していました。 macOS のセキュリティ ルールが常に変化しているため、私はアプローチ全体を変更し、代わりに Apache の配布バージョンを無効にして、完全に Homebrew からのセットアップを使用することを決定しました。 この新しいアプローチにより、バージョン管理により柔軟性が増し、すべての macOS バージョンで動作し続けることができます。
これらの手順は、macOS 10.13 High Sierra および 10.14 Mojave で同じように動作します。 それ以前のバージョンの macOS ではテストしていませんが、同様に動作するはずです。 また、この記事を使用するために OS をフレッシュ インストールから始める必要はありませんが、Mojave へのアップグレードとフレッシュ インストールを比較すると、奇妙なことが起こっています (たとえば、アップグレード後に mod_deflate.so モジュール拡張ファイルが完全に欠落しているなど)。 フレッシュ インストールをお勧めしますが、アップグレードに挑戦する場合は、いくつかのファイルとパスを追跡する覚悟が必要です。
始めましょう!
Get the Latest OS Updates
新しい OS をインストールしたばかりの場合は、おそらくこれを行う必要はないでしょう。
Install Xcode
もし、Xcode アプリケーション全体をインストールしたくない場合は、Homebrew install コマンドで必要な基本的な Xcode Command Line Tools をインストールすることができるので問題ありません。 しかし、特に Mojave を実行している場合は、フルインストールすることをお勧めします。
xcode-select --install
Install Homebrew
The following command will install Homebrew.
(Please note the following command is a single line that have wrapped due to page width constraint in Medium.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Create Apache Log File Directories
Apache には独自のログ ディレクトリがあらかじめ設定されていますが、必要なときに簡単に見つけられるよう、独自の “/usr/local/log/” フォルダを作成します。 次の記事に移って PHP をインストールする場合、PHP ログもこの同じログファイルの場所を使用し、すべてのログを一箇所に集めることになります。
以下の手順に従って、適切なディレクトリを作成し、そのパーミッションを設定します。
$ sudo mkdir /usr/local/log$ sudo mkdir /usr/local/log/httpd$ sudo chgrp -R staff /usr/local/log/httpd$ sudo chmod -R ug+w /usr/local/log/httpd/
Install and Configure Apache
macOS 10.13 High Sierra および 10.14 Mojave には、Apache がプレインストールされています。 しかし、配布されているバージョンを使用するのではなく、Homebrew を介して Apache をインストールし、ポート 80 で実行するように設定します。
すでにプリインストールされた Apache を実行している場合、最初にそれをシャットダウンし、自動ロード スクリプトを削除する必要があります。
(2番目のコマンドは、Medium のページ幅の制約のために折り返された1行であることに注意してください)。
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
次に、Homebrew が提供する新しいバージョンの Apache をインストールします。
$ brew install httpd
それが完了したら、以下のコマンドを実行して Apache サービスを開始し、ログイン時に自動的に再起動するようにします。 すでに起動しているはずですので、ブラウザで http://localhost:8080 をポイントすると、 “It works!” というシンプルなヘッダーが表示されるはずです。
注意:現在、ポート 8080 を指定しています。 次のステップでそれを変更するつもりです。 これで Web サーバーが動作するようになったので、いくつかの設定を変更して、より好みに合うように……いや、本当に私の好みだけですが……動作するようにしたいと思います。)
Apache 設定ファイルを開いてみましょう。
$ open -e /usr/local/etc/httpd/httpd.conf
Change the Listening Port
下にスクロールして “Listen 8080” という行を探し、次のように変更します;
Listen 80
Enable Useful Apache Modules
次に、次の 2 つの便利な Apache モジュールを有効にすることができます。 次の 2 行を検索し、最初のハッシュタグ “#” を削除してコメントを解除できます。
ヒント: deflate 行は LoadModule セクションの中央にあり、rewrite 行は LoadModule セクションの一番下にあります。
LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Change Apache User and Group Settings
デフォルトでは Apache をユーザー _www およびグループ _www として実行します。 このユーザーとグループの設定は、ホーム ディレクトリのファイルにアクセスしようとするときに、パーミッションの問題を引き起こします。
httpd.conf ファイルを約 1/3 ほどスクロールすると、Apache を実行するユーザーとグループを設定する 2 行が見つかります。 これらをあなたのユーザアカウントに合うように変更します。 your_username は MacBook のユーザ名で置き換え、staff というグループ名を使います。
User your_username
Group staff
Set Apache Server Admin and Server Name
Find the “ServerAdmin” line and enabling it by removing the leading hashtag “#” (if necessary) and then change the email to your own:
ServerAdmin [email protected]
最初のハッシュタグ “#” を削除して、Apache サーバー名を localhost に変更し、設定内で有効にします:
ServerName localhost
ドキュメント ルート、ディレクトリ、オーバーライドの変更
次に、Apache 用ドキュメント ルートを変更するつもりです。 これは、Apache がファイルを提供するために探すフォルダです。 デフォルトでは、ドキュメントルートは /usr/local/var/www として設定されています。 開発環境を作成しており、できるだけ多くのフォルダパーミッションの問題を避けたいので、ドキュメントルートをホームディレクトリ (これはまもなく作成します) のフォルダに変更します。
DocumentRoot "/Users/your_username/Sites"
次に、DocumentRoot 行のすぐ下にあるタグの参照も変更する必要があります。 これは、新しいドキュメント ルートを指すように変更する必要があります:
<Directory "/Users/your_username/Sites">;
同じブロックに、AllowOverride 設定があります。
AllowOverride All
Set Apache Error Log Location
最後に、Apache エラーログの場所を、以前に作成したフォルダに設定します。 少し下にスクロールして、「ErrorLog」の行を見つけ、次のように変更します:
ErrorLog "/usr/local/log/httpd/error_log"
保存してテキストエディタを終了します。
Create a Sites Folder
次の2行を使って、「サイト」フォルダを作成し、インデックスファイルを追加してください。html ファイルを追加します。
(2番目のコマンドは、Medium のページ幅の制約のために折り返された1行であることに注意してください。
$ mkdir ~/Sites
$ echo "<h1>It Works in my Sites Folder</h1>;" > ~/Sites/index.html
Restart Apache
ここで、構成設定が正しいことを確認するために、再起動します:
$ sudo apachectl -k restart
新しい場所のローカルホストにアクセスしてみてください。 http://localhost
これがうまくいって、「サイト フォルダで動作しています」というメッセージが表示されたら、おめでとうございます。
エラーが発生した場合、原因は httpd.conf ファイル内のディレクトリ エントリで使用されるダブルクォートである可能性があります。 テキストエディタがラテン文字タイプの引用符に変換してしまうことがあります。 この引用符はオプションで、削除することができます。 ダブルクォートを削除して Apache を再起動してみてください
.