PHP - composer(パッケージ管理) - メモリが足りないとき

クラウディア 
1. 概要
2. メモリの制限をはずす
3. 所有権の問題

1. 概要

 「Laravel」に「composer」で、「PHPMailer」をインストールしようとしたら・・・。

$ composer require phpmailer/phpmailer
Using version ^6.3 for phpmailer/phpmailer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
 てな、エラーになっちゃいました。  調べてみると、メモリが足りないらしい・・・。  本ページは、下記のサイトを参考にさせていただきました。
composer update で memory が足りない場合の対応方法 · polidog lab++
 「古い内容です」ってのが気になりますが・・・。

2. メモリの制限をはずす


php -d memory_limit=-1 /usr/local/bin/composer
 で、メモリの制限がはずれるらしい。  やってみます。

$ php -d memory_limit=-1 /usr/local/bin/composer require phpmailer/phpmailer
Using version ^6.3 for phpmailer/phpmailer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing phpmailer/phpmailer (v6.3.0): Downloading (100%)
phpmailer/phpmailer suggests installing hayageek/oauth2-yahoo (Needed for Yahoo XOAUTH2 authentication)
phpmailer/phpmailer suggests installing league/oauth2-google (Needed for Google XOAUTH2 authentication)
phpmailer/phpmailer suggests installing stevenmaguire/oauth2-microsoft (Needed for Microsoft XOAUTH2 authentication)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   UnexpectedValueException

  The stream or file "/usr/local/www/laravel/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied

  at vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:111
    107?             restore_error_handler();
    108?             if (!is_resource($this->stream)) {
    109?                 $this->stream = null;
    110?
  ? 111?                 throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened in append mode: '.$this->errorMessage, $this->url));
    112?             }
    113?         }
    114?
    115?         if ($this->useLocking) {

      +9 vendor frames
  10  [internal]:0
      Illuminate\Foundation\Bootstrap\HandleExceptions::handleException(Object(UnexpectedValueException))
75 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
 なんか他のエラーが出ちゃいましたけど、当初のエラーはなくなったようです。

$ php -d memory_limit=-1 /usr/local/bin/composer.phar require phpmailer/phpmailer
Using version ^6.3 for phpmailer/phpmailer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
75 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

3. 所有権の問題

 面倒くさいことに、「Laravel」は、管理者とクライアントの所有権が競合しちゃうのだ。  なので、「root」ユーザ権限で。

chown 「Laravel」管理者 	/パス/storage/logs/laravel.log
chown -R 「Laravel」管理者 	/パス/bootstrap/cache
 「Laravel」管理者で。

$ php -d memory_limit=-1 /usr/local/bin/composer.phar require phpmailer/phpmailer
Using version ^6.3 for phpmailer/phpmailer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
75 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
 これで、無事インストールできたようです。  元に戻します。  なので、「root」ユーザ権限で。

chown www:www    /パス/storage/logs/laravel.log
chown -R www:www /パス/bootstrap/cache
earthcar(アースカー)