gracetory’s blog

東池袋にある合同会社グレストリのエンジニアブログです

【入門】HomebrewでカンタンにPHPの開発環境を構築してみるの巻

ご挨拶

こんにちは。プログラマのykiraと申します。
もうすぐ健康診断なので戦々恐々とした毎日を送っていますが、皆様いかがおすごしでしょうか。

弊社ではサーバサイドの開発にPHPを使うことが多いです。
私自身もSIer系SEからの転職組なので、最初は環境構築で悩まされました(Webサーバって何???)
業務では開発用サーバが用意されそこで開発できますが、プライベートなどでローカルで開発できるといいなーと思うこともあると思います。

そんなわけで、Web開発入門編として今回はMacにHomebrewを使って、カンタンにPHPの開発環境(いわゆるMAMP)を作ります。

ネットの繋がらないカフェとかでiMac(27インチ)でドヤれるよ。そう、Homebrewならね。

私はMacBook Proを使いますが。

実行環境

Mac mini (Late 2014)
MacOS Sierra (10.12.5)

弊社ではMac miniのほぼ最高スペック(仮想環境でWindows10pro入り)+デュアルディスプレイが基本環境です。 キーボードやマウスは各自好きなものを選んでますが、Appleのマウスとキーボードが多いようです。

キーボード変えたいな……

Homebrewって何?

パッケージマネージャです。Nodeのnpmとか、Linuxだとyumとかapt-getみたいなもの。
アプリのインストールをカンタンにしてくれるものくらいの認識でいいと思います。

ちなみに読み方はホームブルーらしいですよ、奥さん。

Homebrewのインストール

Homebrewのサイトに行って、インストールコマンドをターミナルに打ち込めばインストール完了です!

brew.sh

f:id:ykira:20170726193116p:plain

以前はSIPの問題とかありましたが、対応されたので今はカンタンですねー

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
…
Already up-to-date.
==> Installation successful!
…

こんな感じで無事インストールされました。途中でパスワードを求められるんで入力してください。
XcodeのCommand Line Toolsが入ってない場合は入れるか聞かれると思うので、言われるがままそれも入れときましょう。

$ xcode-select --install

もし聞かれなかったら、上記コマンドでインストールできます。

$ brew -v
Homebrew 1.2.5
Homebrew/homebrew-core (git revision 714c; last commit 2017-07-26)

brewコマンドでバージョンチェック。ちゃんとインストールされてますねー

MySQLのインストール

まずはMySQLをインストールしましょう。

最初に検索して〜

$ brew search mysql
automysqlbackup                  homebrew/php/php55-mysqlnd_ms    mysql++                          mysql-connector-c++              mysql-utilities                  mysqltuner
homebrew/php/php53-mysqlnd_ms    homebrew/php/php56-mysqlnd_ms    mysql-cluster                    mysql-sandbox                    mysql@5.5
homebrew/php/php54-mysqlnd_ms    mysql                            mysql-connector-c                mysql-search-replace             mysql@5.6
…

mysqlありました。

ただしバージョンがよくわかりません。
そんな時はミルミルメガネ〜事前にインストールされるバージョンチェックすることもできます。

$ brew info mysql
mysql: stable 5.7.19 (bottled)
Open source relational database management system
…

5.7系ですね〜。

んで、インストール。

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.7.19.sierra.bottle.tar.gz
…
==> Summary
🍺  /usr/local/Cellar/mysql/5.7.19: 322 files, 233MB

サクッと完了。

バージョンチェック。

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.19, for osx10.12 (x86_64) using  EditLine wrapper

インストールできてるみたいですね〜

セキュリティ設定をするので、MySQLを起動しましょう。

$ mysql.server start
Starting MySQL
. SUCCESS!

んで、セキュリティ設定(最低限の)

$ mysql_secure_installation
Securing the MySQL server deployment.
…
All done!

YES or NOの設問にはyで基本的に大丈夫です。
rootのパスワードは任意のものを設定してください。

パスワードを生成する時は、下記サイトとか便利ですよ〜

www.luft.co.jp

忘れないように注意しましょう!

ちなみに、MySQLの停止コマンドはコチラ。

$ mysql.server stop

使わない時は停止しておきましょう。

Apacheのインストール

次にApacheのインストールです。
nginxとか他のが良い方は、各自調べていただければ。

そのままだとインストールできないので、formulaを入れます。
formulaというのは料理のレシピみたいなもので、インストールする手順などが書かれているものだと思っていただければ。

追加するformulaはこれだょ↓。

github.com

見て分かる通り、Githubのリポジトリがフレンズなんだね!

$ brew tap homebrew/apache
==> Tapping homebrew/apache
…
Tapped 12 formulae (54 files, 90KB)

無事に追加出来ました。

では、検索してみましょう。

$ brew search httpd
darkhttpd                   homebrew/apache/httpd22     homebrew/apache/httpd24     httpdiff                    libmicrohttpd               
…

ありましたー。
ちなみに「apache」では無く「httpd」ですのでご注意を!

さあ、インストールしましょう。

$ brew install homebrew/apache/httpd24
==> Installing httpd24 from homebrew/apache
…
==> Summary
🍺  /usr/local/Cellar/httpd24/2.4.27: 1,624 files, 25.8MB

おっっけぇぇぇぇい!

お決まりのバージョンチェック。

$ apachectl -v
Server version: Apache/2.4.27 (Unix)
Server built:   Jul 22 2017 08:08:31

問題なさそうです。

PHPのインストール

PHPもそのままだとインストールできないのでformulaを入れます。

追加するformulaはコレ↓。

github.com

$ brew tap homebrew/homebrew-php
==> Tapping homebrew/php
…
Tapped 723 formulae (772 files, 1.4MB)

こんな感じで追加完了。

徐にphpを検索してみると〜

$ brew search php
homebrew/php/adminer                              homebrew/php/php54-ioncubeloader                  homebrew/php/php55-symfony-debug                  homebrew/php/php70-mecab
homebrew/php/arcanist                             homebrew/php/php54-jsmin                          homebrew/php/php55-thrift                         homebrew/php/php70-memcache
homebrew/php/behat                                homebrew/php/php54-kafka
…

なんかいっぱい出た。

PHP7.2系はまだAlphaっぽいので、7.1系を入れましょう。
「–with-httpd24」オプションを付けると、Apacheの設定ファイル(httpd.conf)にlibphp7.soを自動で追記してもらえるぞ!

$ brew install php71 --with-httpd24
==> Installing php71 from homebrew/php
…
==> Summary
🍺  /usr/local/Cellar/php71/7.1.7_19: 346 files, 50.5MB, built in 6 minutes 26 seconds

バージョンチェックしてみましょう。

$ php -v
PHP 7.1.7 (cli) (built: Jul 19 2017 15:58:29) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

無事インストールできたみたいです。

これでアプリケーションのインストールは完了です。

Apacheの設定

最低限の設定をして、動作を確認してみましょう。
Apacheの設定ファイルはhttpd.confというファイルになります。

たぶん、下記のディレクトリにあるかと思います。

/usr/local/etc/apache2/2.4/httpd.conf

最低限の変更は下記。

# 設定されている事を確認
LoadModule php7_module        /usr/local/Cellar/php71/7.1.7_19/libexec/apache2/libphp7.so

# コメントを外し変更
#ServerName www.example.com:8080
  ↓
ServerName localhost:8080

# <IfModule dir_module>の前辺りに追記(場所は任意で変えてください)
<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch>

# index.phpを追記
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

実際にはもっと変更した方が良いですが、今回はこれだけで。

設定したら、再起動を忘れないようにしましょう!

Apacheの起動と停止は下記コマンドです。

# 起動
apachectl start

# 停止
apachectl stop

動作確認

では、実際にphpファイルを作成して、動作を確認してみましょう。

ドキュメントルートは下記です。

/usr/local/var/www/htdocs

適当にindex.phpを作成して、下記コピペで。

<?php
    echo "Hello World!!";

作成したらlocalhost:8080にブラウザでアクセス!

こんなページが表示されればひとまず環境は完成です!

f:id:ykira:20170728153312p:plain

MySQLは?

アイヤ~ シャチョサン スケベネ〜

次回予告

これで最低限のMAMP環境が出来上がりました。
ただ、これだけだとアレなので、次回はカンタンな掲示板でも作ってみたいと思います。

んがっんぐっ