AWS EC2、Cloud9、Laravel5.7環境でide-helperをインストール
環境
Amazon Linux EC2 t2.micro
Laravel Framework 5.7.22
PHP 7.2.13
Apache 2.4.37
mysql 5.7.23
ide-helperのインストール
コマンドなどは [Laravel] IDEによるコード補完まとめ を参考にさせていただきました。
$ composer require --dev barryvdh/laravel-ide-helper
失敗
Cannot allocate memoryが発生
mmap() failed: [12] Cannot allocate memory
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 569384960) (tried to allocate 16777224 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 83
Fatal error: Out of memory (allocated 569384960) (tried to allocate 16777224 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 83
対処
かなり時間を使ってしまいました。もともとphp.iniの設定で2Gも割り当てていたし、過去にスワップファイルを設定していたので、なんでメモリ割当ができないのか謎でした。
一旦、下記のように対処しました。※以前の手順を参考
memory_limit = -1
# apache再起動
$ sudo systemctl restart httpd
#確認
$ php -r 'phpinfo();' | grep memory_limit
memory_limit => 512M => 512M
# スワップファイルの作成
$ sudo -s /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
$ sudo -s /sbin/mkswap /var/swap.1
$ sudo -s /sbin/swapon /var/swap.1
成功しました
念のためcomposerをupdate。
$ composer update
Package manifest generated successfully.
$ composer require --dev barryvdh/laravel-ide-helper
Package manifest generated successfully.
後から
よく考えたら、スワップファイルは一時的であるような気がしました。
確認してみたら、やっぱりスワップファイル作成後&作業完了時点ですが、スワップファイルの割当がされています。
$ sudo vmstat
#スワップファイル作成前
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 1 0 625124 0 85640 0 0 17 6 33 168 0 0 100 0 0
#スワップファイル作成後&作業完了後
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 115200 656136 0 146036 0 1 33 17 47 186 0 0 100 0 0
補完ファイルの作成
app/config/app.phpのservice providerの箇所に追記
config/app.php
'providers' => array(
// ↓ 下記を追記 ↓
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider',
),
Facade の補完
'providers' => array(
// ↓ 下記を追記 ↓
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider',
),
IDEに読み込ませるとFacadeのコード補完ができるようになるみたい。
$ php artisan ide-helper:generate
A new helper file was written to _ide_helper.php
modelプロパティーの補完
仕組み的には doctrine/dbal を使い実際にデータベースにアクセスして各テーブルのカラムを判別しコードに落としているらしい。
$ php artisan ide-helper:model
Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead? (yes/no) [no]:
> 何も指定しない
Model information was written to _ide_helper_models.php
設定できたのでこれからがしがし活用していきたい。
本当はPHP Stormを使ってみたい
ここで紹介されているような機能を使えたら嬉しいので、今後要検討。
Author And Source
この問題について(AWS EC2、Cloud9、Laravel5.7環境でide-helperをインストール), 我々は、より多くの情報をここで見つけました https://qiita.com/outase/items/6bef4f416c7ed6778d4a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .