概要
CakePHPを勉強することになりました。便利な世の中になったので他所様が書かれたDockerfileをぺいっとするだけで環境が完成するみたいなことができるそうですが、初回ぐらいは自分で導入してみようと頑張ろうとしました。結果、要らぬ苦労を背負うことになりましたので備忘録として詰んだポイントだけ書き残そうと思います。
環境
macOS High Sierra(10.13.1)です。この前アップデートしましたが悪影響が出たっぽいです。mysqlが動かなくなったりなど。
PHPのバージョンは7.1.7 … だったはずですが後述の問題により7.1.11に。
詰みポイント1(cakephp/cakephp x.y.z requires ext-intl )
導入します。参考記事様 -> Mac OS XでのCakePHPインストール
$ php composer.phar create-project --prefer-dist cakephp/app cms
時にエラーがでます。以下一部抜粋。
cakephp/cakephp 3.4.5 requires ext-intl * -> the requested PHP extension intl is missing from your system.
ので導入します。
$ brew install homebrew/php/php71-intl
これでプロジェクトを作れるようになります。
詰みポイント2(久しぶりにmysql触ったら死んでるんですけど)
ダミーのDBを建てるためにmysqlの起動を試みたところ、
$ sudo mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
と出ました。
$ touch /tmp/mysql.sock
するもエラーの内容が(2)から(38)になるだけ。
調べて見るとサーバがそもそもスタートしてないとそうなるので、ただのうっかりかと思いmysql.server startすると
$ sudo mysql.server start
ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxxxxx-MacBook-Pro.local.pid).
がでました。これは
$ sudo chown -R xxxxxxx:_mysql /usr/local/var/mysql
することで解決できました。xxxxxxxの部分は各自の環境で変わります。chownコマンドはファイルやディレクトリの所有者を変更するコマンドで、上記コマンドの意味は、「/usr/local/var/mysqlディレクトリとその中身の所有者を再帰的に(-Rオプション)xxxxxxxにし、同様にグループを_mysqlにする」です。
$ mysql.server start
Starting MySQL
SUCCESS!
めでたしめでたし。
詰みポイントex(なんかいじくりまわしてたらPHPがダウングレードしてたので戻す)
おまけです。ここに書いてある以外の方法も色々試しましたが、その副作用としてterminalで叩いた時のphpのバージョンが5.6系になりました。困るので戻します。
$ brew unlink php56
$ brew install homebrew/php/php71
$ brew install homebrew/php/php71-inil
結論
既存の環境に色々突っ込もうとすると面倒なことになるのでやっぱりVMたてますね。