「ヘテムル」 × 「PHP7.0」 × 「Laravel5.2」 ~Out of memory 対処など ~

ども、dog-earsです。

前回、途中まですすめていた 「laravel開発日記 第2章」 なのですが、
Composerのuploadで、Out of memory が出る問題が発生し、
止まっていました。
で、いろいろ手を尽くすも解決できず、困り果てていたところに、ヘテムルのPHP7.0対応のニュースが!

■ヘテムル PHP7.0に対応
http://heteml.jp/info/detail/id/1590

php7.0ならば、メモリ消費量が少ないらしいので、いけるんじゃね・・・と、一縷の望みを託してやってみたたところ、無事いけそうな感じになったので、導入についてまとめたいと思います。
今回、ヘテムル使ってない人には、あまり意味ないかもね(汗)

(1)laravelのインストール
SSHでヘテムルに接続。
Composerは、以前、自前でインストール済みなので、
create-projectで、インストールするのですが、普通にcomposer(または、php composer.pharなど)では、php5.4で動いてしまいます。

そのため、以下のコマンドでphp7.0でComposerを実行します。

php7.0 /[composerのインストールパス]/composer create-project --prefer-dist laravel/laravel [プロジェクト名]

実行すると、インストールが進むのですが、最後にエラーが出ます。

これは、インストール後に呼び出されるコマンドがphp ~で書いてあるためなので、composer.jsonの中の記述を修正します。

■composer.json

    "scripts": {
        "post-root-package-install": [
            "php7.0 -r \"copy('.env.example', '.env');\""
        ],

以下、同じようにphp ~となっているところをphp7.0に書き換えます。

で、最後に、composer.update・・・もとい

php7.0 /[composerのインストールパス]/composer update --profile

これで、エラーもなく、無事終了しました。

うーん、いちいちパス付で呼び出すのがめんどくさいな・・・。
エイリアス作るか、それともヘテムルがデフォルト7.0になるのを待つか・・・。

(2)requireの追加
composer.jsonで、以下の記述を追加してます。

    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "laravelcollective/html": "5.*",
        "doctrine/dbal": "~2.3",
        "setasign/fpdi-tcpdf": "1.*"
    },

追加したのは、
・laravelcollective/html
⇒htmlヘルパー的なもの。

・doctrine/dbal
⇒migrateで、カラムを修正する際に必要。

・setasign/fpdi-tcpdf
⇒PDFの作成・出力に必要。

で、updateしてみたところ、無事インストール完了!

–profileオプションつけて、メモリ使用量を確認したところ、
php.5.4では、約250MBだったのですが、
php7.0では、約150MBでした!!

すごいぞ!PHP7.0!!

メモリ消費量が少ないとは聞いていましたが、
まさかここまでとは・・・!
(インストールしているlaravelのバージョンが違うとかもあるかもですが)

無事、laravel5.2がインストールされましたので、
改めてここに「laravel開発日記 第2章」のアプリを移植したいと思います。

移植がひと段落したら、また記事にまとめようと思います。
ということで、今回はここまで。

それでは、また次回。