Macにnginx+php+mysqlをインストールする
- 2016/11/10
- システム
- この記事は約4分で読めます。
Macにnginx+php+mysqlをインストールする
MacでLNMP環境(Linux+nginx+php+mysql)を
構築する際の導入方法です。
最近は、apacheではなく、nginxを使うことも
増えてきてご紹介いたします!
Homebrewを使ってインストールしていくので、
あらかじめインストールしといてください。
PHP-FPM
デフォルトだと公式のリポジトリにPHP-FPMがないので、
まずは、tapで公式以外のリポジトリからインストールできるようにします。
1 2 |
brew tap homebrew/dupes brew tap homebrew/php |
これからPHPとPHP-FPMをインストールしていきます。
apache用のモジュールは不要なのとmysqlにつなぐためのモジュールも添えます。
1 |
brew install --without-apache --with-fpm --with-mysql php56 |
インストールが完了したら、
コマンドラインからphpを使いやすくするために$PATHに追加しときます。
1 |
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile && . ~/.bash_profile |
PHP-FPMの自動起動設定
自動起動の設定もしておきます。
LaunchAgentsフォルダを作成して、シンボリックリンクをはります。
1 2 |
mkdir -p ~/Library/LaunchAgents ln -sfv /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/ |
とりあえず、PHP-FPMを起動してみます。
1 |
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist |
起動を確認してみます。
1 |
lsof -Pni4 | grep LISTEN | grep php |
このような感じで表示されればオッケー。
1 2 3 4 |
php-fpm 69659 frdmn 6u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 69660 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 69661 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) php-fpm 69662 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN) |
MySQL
続いて、MySQLのインストールです。
1 |
brew install mysql |
自動起動の設定をしておきます。
1 |
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents |
手動で起動してみます。
1 |
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist |
mysqlの初期設定は、別途行ってください。
Nginx
Nginxのインストールです。
1 |
brew install nginx |
自動起動の設定をします。
80番ポートを使用するためには、root権限で起動しないといけないみたいです。
(正確には、1024番ポート以下の使用)
1 2 |
sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/ sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist |
起動の確認
Nginxを起動します。
1 |
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist |
デフォルトの設定で、8080番ポートを使用するようになっていますが、
あとで設定するので、気にせず以下のコマンドを叩いてください。
1 |
curl -IL http://127.0.0.1:8080 |
こんな感じで出ればちゃんと起動しています。
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 200 OK Server: nginx/1.6.2 Date: Mon, 19 Oct 2014 19:07:47 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Mon, 19 Oct 2014 19:01:32 GMT Connection: keep-alive ETag: "5444dea7-264" Accept-Ranges: bytes |
これから設定していくので、nginxをとめておきます。
1 |
sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist |
nginxの設定
nginx.conf
とりあえず、フォルダを用意します。
1 2 3 4 5 6 7 8 |
mkdir -p /usr/local/etc/nginx/logs mkdir -p /usr/local/etc/nginx/sites-available mkdir -p /usr/local/etc/nginx/sites-enabled mkdir -p /usr/local/etc/nginx/conf.d mkdir -p /usr/local/etc/nginx/ssl sudo mkdir -p /var/www sudo chown :staff /var/www sudo chmod 775 /var/www |
デフォルトのnginx.confをGitHubで提供されているものに置き換えます。
1 2 |
rm /usr/local/etc/nginx/nginx.conf curl -L https://gist.github.com/frdmn/7853158/raw/nginx.conf -o /usr/local/etc/nginx/nginx.conf |
PHP-FPMの読み込み
1 |
curl -L https://gist.github.com/frdmn/7853158/raw/php-fpm -o /usr/local/etc/nginx/conf.d/php-fpm |
バーチャルホストの設定
1 2 |
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default -o /usr/local/etc/nginx/sites-available/default curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default-ssl -o /usr/local/etc/nginx/sites-available/default-ssl |
シンボリックリンクをはります
1 2 |
ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default ln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-ssl |
アクセスの確認用ページ(ウェルカム、404、phpinfoページ)のダウンロード
1 2 |
git clone http://git.frd.mn/frdmn/nginx-virtual-host.git /var/www rm -rf /var/www/.git |
SSLの設定
キーを入れる用のフォルダを作成
1 |
mkdir -p /usr/local/etc/nginx/ssl |
キーの生成
1 |
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=localhost" -keyout /usr/local/etc/nginx/ssl/localhost.key -out /usr/local/etc/nginx/ssl/localhost.crt |
実際にアクセスしてみる
nginxの起動
1 |
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist |
1 2 3 4 5 6 |
http://localhost → ウェルカムページ http://localhost/info → phpinfoページ http://localhost/nope → 404ページ https://localhost:443 → ウェルカムページ(SSL) https://localhost:443/info → phpinfoページ(SSL) https://localhost:443/nope → 404ページ(SSL) |
最後に
いかかでしたでしょうか?
ひとまず、これでお使いのMacでLNMP環境が整ったと思います。
ただ、開発に合わせて、都度、ローカル環境を整えていくのは大変です。
やっぱり、VagrantとかDockerがいるかも。。。
以上です!
デミ
最新記事 by デミ (全て見る)
- 【20分で完了】MacにDocker for Macのインストール - 2017/02/02
- 【2017年版】Web接客ツール9社を比較してみた - 2017/01/26
- 【昼休み中に完了!】Macで最新Ruby、Railsのインストールから画面表示まで - 2017/01/19