現役プログラマのプログラミング教室@岡崎市康生, Android/iOS(Swift/Kotlin)のアプリ開発、デジタル漫画制作を主軸事業としています。

さくらレンタルサーバー(スタンダード)にCakePHP3を入れてみる

アプリは結構作成していますが、サーバーサイドはたまにしか作業しないためつい忘れてしまい、、、
あらためてメモすることにしました。
今の主流としてはcomposerを利用して管理するようです。

1.インストールディレクトリの作成

 
$ cd ~/
$ mkdir local
$ mkdir local/src

2.icuライブラリのインストール

icuが必要なようですが、入れないインストール方法もあるようです。

 
$ cd ~/local/src
$ wget http://download.icu-project.org/files/icu4c/58.2/icu4c-58_2-src.tgz
$ tar zxvf icu4c-58_2-src.tgz
$ cd icu/source
$ ./configure --prefix=$HOME/local
$ gmake
$ gmake install

3.intlのインストール

defaultの部分はさくらのphpのバージョンで大丈夫です。

 
$ cd ~/local/src
$ wget http://pecl.php.net/get/intl-3.0.0.tgz
$ tar zxvf intl-3.0.0.tgz
$ cd intl-3.0.0
$ phpize
$ ./configure --prefix=$HOME/local --with-icu-dir=$HOME/local --with-php-config=/usr/local/php/default/bin/php-config
$ make

4.modulesのコピー

 
$ cd ~/
$ mkdir modules
$ mkdir modules/php
$ mkdir modules/php/extensions
$ cd modules/php/extensions
$ cp ~/local/src/intl-3.0.0/modules/intl.so .

5.php.ini設定

直接でもよいし、さくらの管理画面でphp.iniの設定を記載します。

 
extension_dir = /home/USERNAME/modules/php/extensions
extension = intl.so

6.phpのオプションをエイリアスに設定

オプションを記載するのは面倒なのでaliasに設定します。編集したらsourceでアプデ。

 
$ cd ~/
$ vi .cshrc
 
alias php php -c /home/USERNAME/www/php.ini

7.composerのインストール

ハッシュはバージョンによって?違いそうなので、https://getcomposer.org/download/でコピペしましょう。

 
$ cd ~/
$ mkdir composer
$ cd composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

8.プロジェクト作成

プロジェクトフォルダを作成して、プロジェクトを作成します。このときcakephpもインストールされます。

 
$ cd ~/
$ mkdir project
$ cd project
$ cp ~/composer/composer.phar .
$ php composer.phar create-project --prefer-dist cakephp/app PROJECT_NAME

9.公開されるwebrootは別の場所に

公開されているwwwの下にプロジェクトのwebrootのリンクをはります。
ln -s で問題なさそうです。パーミッションはいろいろ後から考えます。