困っていること
開発環境から本番にデプロイしたのですが、以下のエラーによりトップページ以降表示されない状態です。
ローカルではエラーを吐かないのですが、本番で以下のエラーが発生します。
ErrorException (E_NOTICE) tempnam(): file created in the system's temporary directory
開発環境
PHP 7.3.5
laravel 5.7.28
Laradock 最新
本番環境
AWS EC2
PHP 7.3.5
laravel 5.7.28
Laradock 最新
エラー箇所
/var/www/project_name/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
php
1public function replace($path, $content) 2 { 3 // If the path already exists and is a symlink, get the real path... 4 clearstatcache(true, $path); 5 6 $path = realpath($path) ?: $path; 7 8 $tempPath = tempnam(dirname($path), basename($path)); 9 10 // Fix permissions of tempPath because `tempnam()` creates it with permissions set to 0600... 11 chmod($tempPath, 0777- umask()); 12 13 file_put_contents($tempPath, $content); 14 15 rename($tempPath, $path); 16 }
試して見たこと
1. Noticeエラーを無視
Noticeレベルのエラーということで、
app/Providers/AppServiceProvider.phpに以下を追記したが、変わらず。
php
1 public function boot() 2 { 3 // これを追加 4 error_reporting(E_ALL ^ E_NOTICE); 5 }
2. 権限を変更
調べてみると権限が関係しているようなので、よろしくはないと思いつつ、一旦ルートディレクトリに0777を持たせて見ましたが、変わらず。
3. キャッシュクリア
dockerコンテナの停止・起動、キャッシュクリアも試しましたが、解決せず。
恐れ入りますが、アドバイスや指摘などいただけますと幸いです。