MacのWEB開発環境は、MAMPで一発で導入するか、もしくはOSXには標準でApacheとPHPが入っているので、追加でMySQLをインストールするかを選べます。
MAMPは確かにお手軽なのですが、私は日常的にサーバーにも触れていたいので、OS付属のApacheとPHPを使っています。MySQLはHomebrewで導入しています。
先日、Yosemite→El Capitanにアップグレードした際、ApacheやPHPも再インストールされてしまいました。当たり前といえば当たり前なんですが、OSのアップデート毎に再設定することになります。なので引き継ぎもMAMPのが楽だと思います。
Apache
標準で入ってるApacheのバージョンを見てみます。
$ httpd -v
Server version: Apache/2.4.16 (Unix)
Server built: Aug 22 2015 16:51:57
設定ファイルは、
/etc/apache2/httpd.conf
です。El Capitanにアップグレードする前のhttpd.confは、自動でhttpd.conf~previousにバックアップされていました。
変更箇所
私のhttpd.confの設定は、デフォルトからPHPを有効にしてドキュメントルートを設定します。あとWordPressを動かすために.htaccessとmod_rewriteを有効にしています。
- httpd.conf
#デーモン実行は自分自身で <IfModule unixd_module> User ユーザ名 Group www </IfModule> #モジュールを有効に LoadModule php5_module libexec/apache2/libphp5.so LoadModule rewrite_module libexec/apache2/mod_rewrite.so #お好きなところへ DocumentRoot "/Users/ユーザ名/www" <Directory "/Users/ユーザ名/www"> #.htaccessを有効に AllowOverride All </Directory>
httpd.confを保存してから、問題なく記述できているかテストした後、反映の為にApacheをリスタートします。
$ sudo apachectl configtest
$ sudo apachectl restart
Apache自動起動が必要な場合
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
PHP
インストールされているPHPのバージョンを確認。
$ php -v
PHP 5.5.27 (cli) (built: Aug 22 2015 18:20:44)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
設定ファイルphp.iniをデフォルトからコピー。
$ sudo cp -p /etc/php.ini.default /etc/php.ini
私の場合はとりあえずこの3つの値を変更。各自ご自由に。
- php.ini
post_max_size = 8M upload_max_filesize = 2M max_execution_time = 30
PEARインストール
PEARはgo-pear.pharスクリプトをダウンロードしてインストールするのですが、PEARのインストール先は/usr以下になります。Yosemiteまではそれで問題ありませんでしたが、El CapitanにはSystem Integrity Protection(SIP)というセキュリティシステムが導入され、/usr以下はroot権限ですら変更できません。
OS X 10.11 El CapitanのSystem Integrity Protection(SIP)についてちょっと詳しく
そのため一旦SIPを無効にして、PEARインストール後に再度有効にします。
- SIP無効化
- マック再起動してCmd+rを押してリカバリーモードに。
- ターミナルを起動してSIPを無効化。
# csrutil disable
- 再起動後に有効になります。
再起動後、一応SIPのステータスを確認。Filesystem Protections: disabledになっています。
$ csrutil status
System Integrity Protection status: enabled (Custom Configuration).
Configuration:
Apple Internal: disabled
Kext Signing: enabled
Filesystem Protections: disabled
Debugging Restrictions: disabled
DTrace Restrictions: disabled
NVRAM Protections: disabled
This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
ようやくPEARのインストール。
$ cd /tmp && mkdir pear && cd pear
$ curl -O http://pear.php.net/go-pear.phar
$ sudo php -d detect_unicode=0 go-pear.phar
好きなパッケージをインストール。
$ sudo pear install Cache_Lite
$ sudo pear install XML_RPC2
- SIP有効化
-
- 再び再起動してリカバリーモードでSIPを有効に。
# csrutil enable
- 再起動して確認。
$ csrutil status System Integrity Protection status: enabled.
- 再び再起動してリカバリーモードでSIPを有効に。
MySQL
私はMySQLをYosemite時代に既に入れていたので、そのまま使えました。MySQLはHomebrewを利用してインストールするのが便利ですが、Homebrewも先ほどのSIPが影響してEl Capitanでトラブルになる場合があるようです。しかし一手間かかる場合があるもののインストールはできます。
【Mac】OS X 10.11 El CapitanにHomebrewをインストールする方法 | HWD Blog
HWD Blogさんを参考にHomebrewさえ入れてしまえば、
MySQLインストール
$ brew install mysql
$ mysql.server start
MySQL rootユーザー作成
$ mysqladmin -u root password your_password
$ mysql -u root -p
でOKです。
MySQL自動起動が必要な場合
$ cp /usr/local/Cellar/mysql/5.6.21/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/