🫕
Mac+Nginx+PHPでローカル環境を作ったメモ
nginxでphp使うには、php-fpmというものを使うらしいですが、phpをインストールすると自動的にフォルダに入っていました。
環境
- macOS:Sonoma 14.5
- nginx:1.27.0
- php:8.2.20
1. nginxのインストール
ターミナル
brew install nginx
2. phpのインストール
ターミナル
brew install php@8.2
2.1 phpのパスを通す
ターミナル
echo export PATH="/usr/local/Cellar/php@8.2/8.2.20/bin:$PATH" >> ~/.zshrc
echo export PATH="/usr/local/Cellar/php@8.2/8.2.20/sbin:$PATH" >> ~/.zshrc
2.2 設定を反映する
ターミナル
source ~/.zshrc
もし.zshrcがない場合は以下で.zshrcを作成して、2.1と2.2を実行する
ターミナル
touch .zshrc
3. nginxの設定と起動
3.1 rootディレクトリを作成し、index.phpを作成する
今回は/Users/shimotani/codes/html/test
をルートディレクトリとする。
index.php
を以下の内容で作成する
index.php
<?php phpinfo(); ?>
3.2 hostsファイルを編集する
/private/etc/hosts
を開いてドメイン名を追加する。
hosts
...
127.0.0.1 localhost
+127.0.0.1 test.dev
...
3.3 serversフォルダに設定ファイルを作成する
/usr/local/etc/nginx/servers
の中に適当にファイル(ここではドメイン名のtest.dev
とする)を作成して、中身を以下のようにする
test.dev
server {
listen 80;
root /Users/shimotani/codes/html/test; # ルートディレクトリを設定する
index index.php index.html index.htm # pathが/の時に、pathにファイル名を付与してリダイレクトする
server_name test.dev; # ドメイン名
# ここからphp-fpmの設定
location ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
3.4 nginxを起動する
ターミナル
nginx
すでに起動していた場合はリロードする
ターミナル
sudo nginx -s reload
4. php-fpmの設定と起動
4.1 php-fpmの設定
色々調べましたが結局特に変更する箇所はありませんでした。
一応、3.3で作成したtest.dev
のfastcgi_pass
のアドレスと/usr/local/etc/php/8.2/php-fpm.d/www.conf
の中身のlisten
のアドレスが一致していることを確認しました。
www.conf
...
; Note: This value is mandatory.
listen = 127.0.0.1:9000; 👈これ
...
4.2 php-fpmの起動
ターミナル
brew services start php@8.2
すでに起動してた場合はリロードする
ターミナル
brew services restart php@8.2
5. 127.0.0.1:80にアクセスする
127.0.0.1:80
にアクセスしてphpの情報が表示されていればOKです。
sslの設定をしていないので、ドメイン名ではアクセスできないかもしれません。
少し詰まったとこ(Mac初心者には難しかった)
-
nginxがうまく起動できなかったことがあり、PCを再起動したら起動できるようになった。おそらく、直前にMAMPをインストールしていて、nginxがすでに起動していたことが原因?
-
finderでの隠しファイルの表示・非表示切り替えはcommand + shift + .(コマンド + シフト + ピリオド)
-
finderで特定のパスに移動する方法は、finderのメニューバーの移動→フォルダーへ移動からパスを入力
Discussion