macOS に Apache / PHP / MariaDB(MySQL)の環境を構築
この情報を記述した際のバージョン情報:
macOS: 14.4.1
PHP: 8.2.20
Apache: 2.4.59
MariaDB(MySQL): 11.4.2
macOS で WebサーバーのApacheやPHPを利用できるようにインストールする方法は、コマンドラインベースのアプリを管理する Homebrewというパッケージマネージャーを利用して導入します。
Homebrewのインストール
Homebrewのインストールとコマンドを実行できるように設定します。シェルを実行するたびにコマンドを使えるように .zshrc(起動シェルがデフォルトの zsh の場合)にします。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" $ (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zshrc $ source ~/.zshrc
詳細は公式サイトを確認してね!
PHPのインストール
どんなバージョンがあるか検索し、自分に合ったバージョンをインストールします(特に指定がなければ、バージョンを指定ぜずに最新を入れると良い)。また、シェルを実行するたびにコマンドを使えるように .zshrc(起動シェルがデフォルトの zsh の場合)にします。
$ brew search php $ brew install php@8.2 $ echo 'export PATH="/opt/homebrew/opt/php@8.2/bin:$PATH"' >> ~/.zshrc $ source ~/.zshrc $ php -v PHP 8.2.20 (cli) (built: Jun 4 2024 13:22:51) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.20, Copyright (c) Zend Technologies with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies
もし、PHP関連のライブラリーを利用する開発(コンパイル)をするなら、以下を .zshrc に追加しておくとよい(ほとんどの人は不要だと思う)
export LDFLAGS="-L/opt/homebrew/opt/php@8.2/lib" export CPPFLAGS="-I/opt/homebrew/opt/php@8.2/include"
Apacheのインストール
パッケージを検索し、自分に合ったバージョンをインストールします。サーバーを立ち上げてブラウザーで動作確認をしてみます。
$ brew search httpd $ brew install httpd $ brew services start httpd $ open http://localhost:8080/
設定ファイルを編集し PHPを利用できるようにします(最低限必要そうな rewriteと PHPのモジュールを有効にする)。
$ vi /opt/homebrew/etc/httpd/httpd.conf
181行目付近の行頭の#を削除して rewrite_module を有効にし、ファイルの最終行に以下を追加して PHPモジュールを有効にします。
... 179: #LoadModule userdir_module lib/httpd/modules/mod_userdir.so 180: LoadModule alias_module lib/httpd/modules/mod_alias.so 181: LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so ... 532: </IfModule> 533: 534: # PHP settings 535: Include /opt/homebrew/etc/httpd/extra/httpd-php.conf
$ vi /opt/homebrew/etc/httpd/extra/httpd-php.conf
LoadModule php_module /opt/homebrew/opt/php@8.2/lib/httpd/modules/libphp.so <IfModule php_module> AddType application/x-httpd-php .php AddType application/x-httpd-php .html </IfModule>
Apacheを再起動して変更内容を有効にする
$ brew services restart httpd
インストール後のデフォルトの設定
- Apache設定ファイル (/opt/homebrew/etc/httpd/httpd.conf)
- Port (8080 - http://localhost:8080/)
- DocumentRoot (/opt/homebrew/var/www)
- PHP設定ファイル (/opt/homebrew/etc/php/8.2/php.ini)
よく変更する項目
- ポート 80 を利用したい場合 - 52行付近 Listen 8080の下にListen 80を追加
- サーバー名を変更したい場合 - 225行付近 #を削除し ServerNameを有効にして www.exsample.com:8080を書き換える
- DocumentRootを変更したい場合 - 248行付近 DocumentRoot および そのすぐ下の <Directory ...>のパスを書き換える
MariaDBのインストール
パッケージを検索し、自分に合ったバージョンをインストールします(バージョンを指定しなければ最新)。テスト用のアカウントがあるなど、セキュリティー設定が不十分なので mysql_secure_installation を必ず実行してください。
$ brew search mariadb $ brew install mariadb $ brew services start mariadb $ sudo /usr/local/bin/mysql_secure_installation
- 現在の root のパスワード(Enterのみ)
- unix_socket認証を有効にしますか?(n)
- rootはすでに保護されている?(n)
- root のパスワード変更しますか?(y)
- 新しいパスワード(パスワードを入力)
- 新しいパスワードの再入力(上記で入力したパスワードを入力)
- anonymous ユーザーを消しますか?(y)
- root によるリモートログインは許可しない?(y)
- test用のデータベースを削除しますか?(y)
- 特権テーブルを読み込みしなおしますか?(y)