macOSでPHPローカルサーバを立ち上げる

Windows であれば XAMPP が一般的かと思いますが,macOS だとデフォルトで PHP 等の環境が用意されているらしいです.

動作環境

  • macOS Catalina (10.15.4)
  • PHP 7.3.11
  • Apache 2.4.11

バージョンの確認

terminal

mktia@mktias-MBP [18時26分37秒] [~] 
-> % httpd -v
Server version: Apache/2.4.41 (Unix)
Server built:   Feb 29 2020 02:40:57
mktia@mktias-MBP [18時26分40秒] [~] 
-> % php -v  
PHP 7.3.11 (cli) (built: Feb 29 2020 02:50:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies

macOS 上の Apache サーバ

一つ目は,Apache サーバを建てる方法です.

httpd.conf 編集

設定ファイル中で3箇所のコメントアウトを外します.

terminal

$ sudo vi /etc/apache2/httpd.conf

httpd.conf

# line 186
#LoadModule php7_module libexec/apache2/libphp7.so

# line 183
#LoadModule userdir_module libexec/apache2/mod_userdir.so

# line 520
#Include /private/etc/apache2/extra/httpd-userdir.conf

(イメージ)

  • PHP 有効化
  • ユーザディレクトリ有効化

httpd-userdir.conf 編集

ユーザ設定を作るのでコメントアウトを外します.

terminal

$ sudo vi /etc/apache2/extra/httpd-userdir.conf

httpd-userdir.conf

# line 16
#Include /private/etc/apache2/users/*.conf

ユーザ設定ファイル

username にはユーザ名が入ります.

terminal

$ sudo vi /etc/apache2/users/username.conf

username.conf

<Directory "/Users/username/Sites/">
  Options Indexes MultiViews FollowSymLinks 
  AllowOverride None
  Require host localhost
</Directory>

設定ファイルの記述が正しいかについては,以下のコマンドでテストできます.

terminal

$ sudo apachectl configtest

Apache 起動

terminal

$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

# これだけでいけるかもしれない
$ sudo apachectl start

Apache 停止

terminal

$ sudo apachectl stop

Apache 起動状態の確認

terminal

$ ps aux | grep httpd

grep そのもののコマンド以外で立ち上がっていれば起動しています.

ドキュメントルート

上記の設定でドキュメントルートを開放しています.

元のパスは /Library/WebServer/Documents ですが,/Users/<username>/Sites がドキュメントルートとして利用できます.

元のパスでは編集に root 権限が必要になるので,ユーザのホームディレクトリ下を使用した方がいいです.

PHP ローカルウェブサーバ

PHP はローカルで使えるウェブサーバを内包しているらしく,これを使った方が簡単にローカルサーバを立ち上げることができます.

単純に PHP の動作を見たいのであればこちらの方が楽そうです.

terminal

$ php -S 0.0.0.0:80
PHP 7.3.11 Development Server started at Fri May 22 18:10:14 2020
Listening on http://0.0.0.0:80
Document root is /Users/mktia
Press Ctrl-C to quit.

たったこれだけで動きます.

ポート番号は自由に設定できるようです.

ドキュメントルート

/Users/<username> の下に展開されます.

XAMPP

macOS でも XAMPP を使うことができます.

MySQL などと合わせて開発環境を整えるなら,こちらの方が便利かもしれません.

今回は省略します.

最後に

WordPress のテーマ開発とかでなければ,PHP ローカルサーバでいいんじゃないかーと思いました.