質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Q&A

1回答

4279閲覧

メモリ不足により、LaravelでPKGをcomposer requestできない

naoki_m

総合スコア29

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

0グッド

2クリップ

投稿2019/04/24 12:45

編集2019/04/25 04:54

前提・実現したいこと

Laravelにて、spatie/laravel-analyticsをcomposer requestしたいのですが、メモリ不足とのことでダウンロードできません。
ロリポップを使っていますが、php.iniの設定画面から「php_value, php_flagを利用可能にする」をオンにして(オンの場合htaccessが優先される)、htaccessにて下記のソースコードにあるように書きました。
さらに、-dで直接メモリ容量も指定しましたが、解決しませんでした(エラーメッセージに記載)
ですが、問題は解決しません。

このままhtaccessをどうにかするか、もしくは、FTPなどで手動でパッケージをインストールするか(?)などあるとお思いますが、Google Analyticsをlaravel上で使うという目的を果たすために、幅広いご助言をいただけましたら幸いです。

些細なことでもいいので何卒よろしくお願いいたします。

発生している問題・エラーメッセージ

mmap() failed: [12] Cannot allocate memory PHP Fatal error: Out of memory (allocated 723525632) (tried to allocate 16777216 bytes) in phar:///home/users/1/◯◯◯◯/composer.phar/src/Composer/DependencyResolver/Solver.php on line 223
/usr/local/php7.1/bin/php -d memory_limit=128M composer.phar require spatie/laravel-analytics Using version ^3.6 for spatie/laravel-analytics ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) mmap() failed: [12] Cannot allocate memory mmap() failed: [12] Cannot allocate memory mmap() failed: [12] Cannot allocate memory PHP Fatal error: Out of memory (allocated 723525632) (tried to allocate 16777216 bytes) in phar:///home/users/1/composer.phar/src/Composer/DependencyResolver/Solver.php on line 223 Fatal error: Out of memory (allocated 723525632) (tried to allocate 16777216 bytes) in phar:///home/users/1/composer.phar/src/Composer/DependencyResolver/Solver.php on line 223
$ php -d memory_limit=228M composer.phar require spatie/laravel-analytics Using version ^1.4 for spatie/laravel-analytics ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) PHP Fatal error: Out of memory (allocated 702021632) (tried to allocate 67108864 bytes) in phar:///home/users/1/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php on line 67

該当のソースコード

.htaccess

<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> php_value memory_limit 128M php_value post_max_size 20M php_value upload_max_filesize 20M

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

前回の質問時に、回答者が書いてくれてますよ。
イメージ説明

投稿2019/04/24 12:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naoki_m

2019/04/25 05:18

ご回答ありがとうございます。 そちらを試みたのですが、同じエラーが発生しています。 また、php -r 'phpinfo();' | grep memory_limitで確認したところ、128Mでした。 もし、他の解決法をご存知でしたら、ご教授いただけますと幸いです。 よろしくお願いいたします。
crhg

2019/04/25 06:22

composerは場合によってはめちゃくちゃメモリを食うので128Mじゃ足りない可能性もあります。`memory_limit=-1`(無制限)でやってみてください。それでもだめだったら「composer メモリ」でググるとか新たにteratailで質問すると他の解決策が見つかるかも知れません。
Y.H.

2019/04/25 06:35

> memory_limit=128M > (allocated 723525632) (tried to allocate 16777216 bytes) 700M超アロケート済みで16Mアロケートしようとして出来なかった :-) memory_limit=128Mとはいったい。。。
crhg

2019/04/25 07:05

不思議なので調べたら、memory_limitが1536M以下の設定だとcomposerの中で1536Mに勝手に設定するようになっていました。ということでPHPの設定による制限ではなくてOSからそれ以上メモリが取得できない状態になってるような気がします。自由になるサーバならスワップ追加とかの手段が可能ですがロリポップでそれが可能かどうかはわかりません。最悪、別の環境でcomposerを使ったインストールを行いできあがったファイルをコピーするぐらいしかないかもしれません。
Y.H.

2019/04/25 07:46

「Google Analyticsをlaravel上で使うという目的を果たすため」という目的であれば、ロリポップから他のサービスに鞍替えするのも選択肢のひとつですね。>naoki_mさん
naoki_m

2019/04/25 13:55

crhgさん、Y.Hさん、ご回答ありがとうございます!! なるほど、そんな隠れた仕様があったのですね。 スワップも試みてみたのですが、やはりロリポップでは厳しかったです。 なので、お二方のおっしゃる通り、どのみち別環境を用意しないといけないみたいですね……。 根気強くその方向でやってみます! この度はご親切なご回答ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問