下記のサイトを参考にさくらレンタルサーバーのスタンダードプランにCakePHP3をインストールしてみました。うまくいったので処理画面のキャプチャー画像つきで手順をまとめておきます。
まず、さくらのサーバーのPHPバージョンを確認
管理画面で確認するとこんな感じです。PHP5.6になってます。
TeraTermでSSH接続した場合は、「php -v」で確認。こっちもPHP5.6になってますね。
phoinfoにintl が入ってないことを確認
phpinfo();
と書いたファイルをアップロードしてブラウザからアクセス。表示された設定情報から「intl」を検索して、何もヒットしないことを確認します。入っていればそのままCakePHP3インストールできるんですが、入ってないのでライブラリインストールに移ります。
インストールディレクトリの作成
インストールするためのディレクトリを作ります。
icuライブラリのインストール
インストールするディレクトリに移動し、icuライブラリのソースファイルをwget でゲットします。
icu4c-58_2-src.tgz というファイルのダウンロード完了です。
icu4c-58_2-src.tgz をtar コマンドで解凍します。.zipファイルをunzipするのと、似たような作業です。
解凍完了しました。
icu/source/ ディレクトリに移動して、./configure コマンド実行します。
「ICU for C/C++ 58.2 is ready to be built.」のメッセージも出てますし、いつでもビルドOKだよって感じになってます。
ls コマンドでどんなファイルができてるのか眺めてみて、gmakeコマンドします。
gmakeが終わりました。
ls コマンドでどんなファイルができてるのか眺めてみます。binディレクトリとlibディレクトリが増えたみたいです。
そして、gmake installコマンド実行。これでICUライブラリのインストールは終了です。
intlモジュールのインストール
~/local/src ディレクトリに移動して、intlの元ファイルをwget でゲットします。
tarコマンドで intl-3.0.0.tgz を展開。
後で使うためのPHPの設定ファイルの場所を確認します。
intl-3.0.0 ディレクトリに移動してphpizeコマンドを実行。
そして ./configureコマンドを実行します。
オプションの「–with-php-config=/usr/local/php/5.6/bin/php-config」の5.6の部分は、一番初めに確認したPHPバージョンに合わせます。
ビルドの準備ができました。
満を持してmakeコマンド実行。
これでintl.soが出来上がります。
intlモジュールのコピー
ホームディレクトリに戻り、intl.so を置くディレクトリを作ります。先ほどビルドしたintl.soを作ったディレクトリにコピーします。
php.iniの設定
さくらのサーバー管理画面の「PHP設定の編集」からphp.iniに追記します。追記したのはintl.soを参照してちょうだいね、という内容です。
phoinfoの情報をブラウザで確認すると、intlが追加されていることがわかります。
ただ、SSHシェルの方で、「php -i | grep intl」とチェックしてもintlが出てきません。シェルの方php実行した時は、さきほど編集した/home/USERNAME/www/php.ini を読み込んでいないのが原因です。
「php -c オプション」で「/home/USERNAME/www/php.ini」を読み込むように明示してやると、intlが出てきます。
cshrcの設定
シェルでもオプション無しでPHP実行時に「/home/USERNAME/www/php.ini」を読み込むように .cshrcに追記します。
.cshrc の最後の行に「alias php php -c /home/USERNAME/www/php.ini」を追記しました。
シェルを再起動して、「php -i | grep intl」を実行するとintlが読み込めていることがわかります。
Composerのインストール
コンポーザーをインストールします。
インストールする前に、composer-setup.phpファイルが正しいかどうかをチェックしています。
基本的には下記URLの
「Command-line installation」っていうところに書いてある通りに実行します。
hash_file(‘SHA384’, ‘composer-setup.php’) === ’55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30′
↑
この部分は、composerのバージョンによって変わるので、上記サイトに書いてあるコマンドをコピペするのが無難かも。
CakePHPプロジェクトを作成
composerを使って、cakephp3のプロジェクトを作成します。
インストールが始まりました。
無事、CakePHP3のインストールが完了です。
CakePHP3本体を公開用ディレクトリ(www)配下に置かずに表示というのが、うまくいってないので時間のあるときにまたチャレンジしてみようと思います。
【2017/03/04 追記】
CakePHP3本体を公開用ディレクトリ(www)配下に置かずに表示、意外と簡単にできましたー。
[kanren postid=”2726″]
【2017/09/15追記】さくら鯖のPHPバージョンを7.1にしたときのintlどうするか?
昨日、CakePHP3を動かしているさくらレンタルサーバーのPHPバージョンを7.1に変更したら、「intlが動いてません」みたいなエラーでCakePHP3のWEBアプリが表示できなくなりました。
ま、intlを入れた時にPHPバージョンを5.6対象にしていたので、「–with-php-config=/usr/local/php/5.6/bin/php-config」の「5.6」を「7.1」に変更してmakeしなおせば大丈夫だろうとやってみたもののエラー。
色々調べた結果、「intl-3.0.0」ではダメで「php-7.1.7に同梱されているintl」を使えば良さそう。で、やったらできました。
参考にさせていただいたのは、コチラ↓
さくらのレンタルサーバPHP7環境でintlモジュール有効化
ありがとうございます。
% wget https://github.com/php/php-src/archive/php-7.1.7.zip
↑このURLからwgetしてくればOKです。
これで、さくらインターネットのレンタルサーバー(PHP7.1)でもCakePHP3が使えますね。
では、ステキなCakePHP3ライフを!!
コメント
[…] さくらのレンタルサーバにCakePHP3をインストール | かみおか日記 […]
[…] 前の記事でさくらのレンタルサーバースタンダードプランにCakePHP3をインストール成功しましたが、/home/USERNAME/www にCakePHP3本体を置くのはセキュリティ的にあまりよろしくないですよね […]