ComposerでCakePHP3をMacのMAMP環境へインストールする

CakePHP3




MacにMAMPを導入した。そしてCakePHP3の解凍ファイルをルートディレクトリに直接放り込むこともできた。これでCakePHP3はとりあえず動いた。

ただCakePHP3のインストールはComposer経由でのインストールが推奨されているようです。解凍ファイルをFTPなどでアップロードするやり方はレガシーな方法だというがこのご時世の評価です。

なので、今回はComposerを使ってCakePHP3をMAMPでの開発環境にインストールしてみます。

ComposerをMacにインストールする方法

CakePHP3のインストールの前に、Composerをイントールするところから始めます。

ComposerとはPHPのライブラリの依存関係を管理するツール。みたいなことがネットに書かれています。初心者にはわかりにくいものですが、あれを使うにはこれが必要って感じの状況をあちこち触らなくても管理してくれる便利なものってところでしょうか。細かいところは私は知りませんよ。先へ進みましょう。

まずはこのComposerをMacへインストールします。初心者レベルではターミナル画面を使うのは妙に壁が高く感じますが、いつか通る道。やってみましょう。

Composerがインストールされてない場合、ターミナルでバーションを確認してみるとこう表示されるはずです。

$ composer -V
-bash: composer: command not found

私のMacもこうなってました。

ということで、Composerをターミナルからインストールしてみます。

Composerのインストール

まずはComposerを任意のディレクトリにダウンロードします。私は特に指定しませんでした。ターミナルにこう入力します。

$ curl -sS https://getcomposer.org/installer | php

するとこんな感じに表示されてインストールが完了します。

#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /Users/ユーザー名/composer.phar
Use it: php composer.phar

このままだといちいちパスを指定して起動しなくてはいけないので、どこからでも起動できるように通常パスの通っているディレクトリーに移動させます(グローバルインストール)。

$ mv composer.phar /usr/local/bin/composer
mv: rename composer.phar to /usr/local/bin/composer: Permission denied

ルート権限が無い状態で実行するとこうなってしまいましたので、sudoを利用します。

$ sudo mv composer.phar /usr/local/bin/composer
Password:

パスワードを聞いてくるので、ルート権限のパスワードを入力してComposerのインストールが完了です。

インストールできていれば、composer -V コマンドで確認するとバージョンが表示されるはずです。

CakePHP3をMAMP環境にインストールする準備

MacにはデフォルトでPHPが入ってるのでそのままそちらの環境を使ってもいいのですが、今回はMAMP環境を利用するのでMAMPに入っているPHPを使います。ですから、Macで使うPHPを、デフォルトのものからMAMPのものへ変更する必要があります。

MacのデフォルトのPHPを確認

念のため、ターミナルでデフォルトのPHPを確認してみます。

$ which php
/usr/bin/php

MacがデフォルトのPHPを使っているとこうなります。

これをMAMP環境のPHPに変更します。

vimでMAMPのPHPを利用するように変更

デフォルトのPHPをMAMPのものへ変更するするにはvimを使いますが、ここは初心者は敷居が高いはず。使い方がわかりませんからね。あらかじめドットインストールの「vim入門」などを見ておくと良いかもしれません。

まず、vimで~/.bash_profileを開きます。ターミナルにこう入力して実行します。

$ vim ~/.bash_profile

vimの世界へようこそ!ここからは初心者は落ち着いて行きましょう(笑)

私も慣れてないのでビビります。

「a」キーを押すと「–INSERT–」と表示されて書き込みモードになります。

この状態で下記のように入力します。(コピペでOK)

export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH

php5.6.10のところは利用しているMAMPの環境によります。MAMPの場所もインストールした場所にもよりますので、それに合わせて変更しましょう。現在の私の環境では上記のようになっています。(ちなみにCakePHP3はPHP 5.4.16以上で動きます)

入力が済んだら、「esc」キーを押して、「:wq」(書き込みを保存するコマンド)と入力し、「return」キーを押してvimを終了させます。

ターミナルに次のコマンドを入力します。(あるいはターミナルを再起動します)

$ source ~/.bash_profile

変更はこれで完了です。

Macが使っているPHPを確認してみます。

$ which php
/Applications/MAMP/bin/php/php5.6.10/bin/php

MAMPでインストールしたPHPに変わっているのがわかります。

CakePHP3をMAMPにインストール

ようやくMAMPにCakePHP3をComposerを使ってインストールする準備ができました。

Composer経由でCakePHP3をインストール

CakePHP3をComposer経由でMAMPにインストールします。

まず、ターミナルでCakePHP3をインストールするディレクトリに移動します。

MAMPはhtdocsがwebサーバーのルートになるので、ここにCakePHP3をインストールします。(あるいは、デスクトップにアプリフォルダを作ってCakePHP3をインストールし、それを後からMAMPのhtdocsフォルダにコピペしてもいいです)

以下のように入力してディレクトリを移動します。

$ cd /Applications/MAMP/htdocs/

Composerを使ってCakePHP3を以下のコマンドを入力します。

$ composer create-project --prefer-dist cakephp/app 任意のアプリ名

「任意のアプリ名」のところはお好みの文字列で設定します。

インストールが始まると以下のように表示が進みます。

Installing cakephp/app (3.1.1)
  - Installing cakephp/app (3.1.1)
    Downloading: 100%         

(以下略)

インストールには数分かかります。

しばらくすると以下のように聞いてきます。

Set Folder Permissions ? (Default to Y) [Y,n]?

「Y」を入力して先に進みます。

Updated Security.salt value in config/app.php

最後にこのように表示されてCakePHPのインストールが完了です。

CakePHP3の動作確認

CakePHP3がインストールできたので、実際に動くのか確認をしてみます。

MAMPを起動してブラウザで http://localhost:8888/任意のアプリ名/ にアクセスします。

無事インストール出来ていれば、この画面が表示されるはずです。

MAMPでのCakePHP3を起動

無事にインストールが完了しました。

画面下側に、

CakePHP is NOT able to connect to the database.

と表示されていますが、インストールしたCakePHP3内にあるconfigフォルダの中のapp.phpファイルを開いてデータベースの接続設定を行えばOKです。

    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            /**
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'nonstandard_port_number',
            'username' => 'my_app',
            'password' => 'secret',
            'database' => 'my_app',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
            'log' => false,
とりあえず、’username’、‘password’、‘database’ あたりの項目をMAMPの設定に合わせれば動くはずです。

最後に

あとはアプリケーションを作るだけ!(ここからがもっと問題か?)

では、いつものように…

間違ってたら勘弁な!