Logicky Blog

Logickyの開発ブログです

mac - El CapitanでcakePHP3を使う

Macの状態

  • macは、El Capitan 11.10.5です。
  • すでに、PHP7、MySQL、Nginxが入っています。composerもインストール済みです。
  • Nginxのドキュメントルートは、/usr/local/var/wwwです。

cakephp3のプロジェクトを作成する

ドキュメントルートに移動して、hogeプロジェクトを作成します。

$ cd /usr/local/var/www
$ composer self-update && composer create-project --prefer-dist cakephp/app hoge

php-fpmが変だったので直した

cakePHP3は、php5.5.9以上が必要で、php7もOKということで、php7をインストールしました。しかしphp-fpmのバージョンを確認すると、以前インストールされていたphp5.3のものでした。

php7のインストールは、 mac – phpを7.0にバージョンアップに記載の方法でやりました。php7のパスは、/usr/local/php5/binです。これに対応するphp-fpmは、/usr/local/php5/sbin/php-fpmです。なので、/usr/local/php5/sbinもパスに加えたらOKになりました。

.bash_profileを開く

$ vim ~/.bash_profile

下記を最後に追加する

#php7
PATH=/usr/local/php5/bin:$PATH
PATH=/usr/local/php5/sbin:$PATH

.bash_profileを読み込む

$ source ~/.bash_profile

php-fpmを起動

$ php-fpm

php-fpmのバージョン確認

$ php-fpm -v
PHP 7.0.6 (fpm-fcgi) (built: May 24 2016 23:07:56)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.0RC3, Copyright (c) 2002-2015, by Derick Rethans

Nginxの設定をcakephpに合わせて変更する

nginx.confを修正する

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen   8080;
        server_name www.localhost;
        rewrite ^(.*) http://localhost$1 permanent;
    }

    server {
        listen   8080;
        server_name localhost;

        # root directive should be global
        root   /usr/local/var/www/hoge/webroot/;
        index  index.php;

        access_log /usr/local/var/log/access.log;
        error_log /usr/local/var/log/error.log;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            try_files $uri =404;
            include /usr/local/etc/nginx/fastcgi_params;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
}

Nginxを再起動する

$ nginx -s reload