参考url
http://book.cakephp.org/3.0/ja/installation.html http://book.cakephp.org/3.0/en/installation.html
openssl 1.0.2
opensslが、shared libraries 付でなかった為、再make.
$ wget https://www.openssl.org/source/openssl-1.0.2g.tar.gz $ tar -zxvf openssl-1.0.2g.tar.gz $ cd openssl-1.0.2g $ less INSTALL $ ./config --prefix=/usr/local/openssl_1.0.2 shared $ make $ make test $ su # make install
ICU - International Components for Unicode
cakephpが必要とする phpのintlモジュールが、更に icuを必要する為
$ wget http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz $ tar -zxvf icu4c-57_1-src.tgz $ cd icu/source $ ./configure $ make $ make check $ su # make install
php 5.6.21
http://end0tknr.hateblo.jp/entry/20140501/1398939088
- ※ configureのoptionは、以前行った php 5.5.11に対して、cakephp3が必要とする " --enable-intl "を追加します
- ※ make test で、14個の Tests failedがありましたが、無視して make installしました
$ wget http://jp2.php.net/get/php-5.6.21.tar.gz/from/this/mirror $ mv mirror php-5.6.21.tar.gz $ tar -zxvf php-5.6.21.tar.gz $ cd php-5.6.21.tar.gz $ ./configure \ --with-apxs2=/home/endo/local/apache22/bin/apxs \ --enable-mbstring \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=/usr/local/mysql \ --with-openssl=/usr/local/openssl_1.0.2 \ --enable-intl $ make $ make test : ===================================================================== TEST RESULT SUMMARY --------------------------------------------------------------------- Exts skipped : 46 Exts tested : 33 --------------------------------------------------------------------- Number of tests : 13815 10408 Tests skipped : 3407 ( 24.7%) -------- Tests warned : 9 ( 0.1%) ( 0.1%) Tests failed : 14 ( 0.1%) ( 0.1%) Expected fail : 39 ( 0.3%) ( 0.4%) Tests passed : 10346 ( 74.9%) ( 99.4%) --------------------------------------------------------------------- Time taken : 597 seconds ===================================================================== : ===================================================================== FAILED TEST SUMMARY --------------------------------------------------------------------- Bug #62046 mysqli@mysqlnd can't iterate over stored sets after call to mysqli_stmt_reset() [ext/mysqli/tests/bug62046.phpt] Bug #66043 (Segfault calling bind_param() on mysqli) [ext/mysqli/tests/bug66043.phpt] API vs. SQL LAST_INSERT_ID() [ext/mysqli/tests/mysqli_last_insert_id.phpt] Persistent connections and mysqli.max_links [ext/mysqli/tests/mysqli_pconn_max_links.phpt] mysqli iterators [ext/mysqli/tests/mysqli_query_iterators.phpt] mysqli_release_savepoint() [ext/mysqli/tests/mysqli_release_savepoint.phpt] mysqli_store_result() [ext/mysqli/tests/mysqli_store_result_buffered_c.phpt] Bug #65538: SSL context "cafile" disallows URL stream wrappers [ext/openssl/tests/bug65538_002.phpt] Bug #70389 (PDO constructor changes unrelated variables) [ext/pdo_mysql/tests/bug70389.phpt] Bug #61411 (PDO Segfaults with PERSISTENT == TRUE && EMULATE_PREPARES == FALSE) [ext/pdo_mysql/tests/bug_61411.phpt] MySQL PDO->__construct(), PDO::MYSQL_ATTR_MAX_BUFFER_SIZE [ext/pdo_mysql/tests/pdo_mysql_attr_max_buffer_size.phpt] PDO::ATTR_ORACLE_NULLS [ext/pdo_mysql/tests/pdo_mysql_attr_oracle_nulls.phpt] MySQL PDO->exec(), affected rows [ext/pdo_mysql/tests/pdo_mysql_exec.phpt] file_get_contents() test using offset parameter out of range [ext/standard/tests/file/file_get_contents_error001.phpt] ===================================================================== : $ su # make install # cp php.ini-development /usr/local/lib/php.ini
パッケージ管理 Composer
phpではdefaultのpearがありますが、最近では、Composer もあるそうです。 cakephp3のdocumentによれば、Composer が cakephp3を管理するそうです。
$ cd /home/endo/dev $ curl -s https://getcomposer.org/installer | /usr/local/bin/php All settings correct for using Composer Downloading 1.0.3... Composer successfully installed to: /home/endo/dev/composer.phar Use it: php composer.phar
cakephp3 プロジェクト作成
$ cd /home/endo/dev $ /usr/local/bin/php composer.phar create-project --prefer-dist cakephp/app test_cake
ただし、intlモジュールのないphpで、cakephp3 のプロジェクトを作成しようとすると、次のようなエラーが表示されます
$ /usr/local/bin/php composer.phar create-project --prefer-dist cakephp/app my_app_name Installing cakephp/app (3.2.6) - Installing cakephp/app (3.2.6) Downloading: 100% Created project in my_app_name Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - cakephp/cakephp 3.2.8 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.7 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.6 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.5 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.4 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.3 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.2 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.1 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.0 requires ext-intl * -> the requested PHP extension intl is missing from your system. - Installation request for cakephp/cakephp ~3.2 -> satisfiable by cakephp/cakephp[3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8]. To enable extensions, verify that they are enabled in those .ini files: - /usr/local/lib/php.ini You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode. : $
cakephp3 の起動
$ cd /home/endo/dev $ test_cake/bin/cake server -H cent6.a5.jp -p 5673 ACCESS TO http://cent6.a5.jp:5673
この後、ルーティングから読み進めるのであれば、$APP_ROOT/config/routes.php を参照