![](/img/trans.png)
[英]Trait 'Illuminate\Foundation\Auth\AuthenticatesUsers' not found on laravel 7x
[英]Laravel - 5.2.45 - After composer update error - laravel 5.2 Trait 'Illuminate\Foundation\Auth\AuthenticatesUsers' not found
Laravel 在本地主機上運行良好,我將所有代碼推送到存儲庫並在主服務器上進行拉取。 我錯誤地在服務器上運行了composer update
而不是composer install
。 現在我的主服務器顯示錯誤:
FatalErrorException in AuthenticatesAndRegistersUsers.php line 7:
Trait 'Illuminate\Foundation\Auth\AuthenticatesUsers' not found
主服務器沒有任何權限,因此我無法修改或運行rm -rf
類的命令並重新安裝所有內容。
我運行composer show
並且本地和主服務器都顯示laravel/framework v5.2.45
。
我該怎么辦?
您可以從本地替換 composer.lock 文件並運行 composer install 命令。
來自https://getcomposer.org/doc/03-cli.md#install
如果當前目錄中有 composer.lock 文件,它將使用那里的確切版本而不是解析它們。 這可確保使用該庫的每個人都將獲得相同版本的依賴項。
我自己通過以下方法解決了它:
1) 備份了composer.json, composer.lock and vendor folder
。
2) 修改composer.json
- 從 require 和 require-dev 中刪除所有包,運行composer update
命令使我的本地供應商文件夾為空,然后我將composer.json
和composer.lock
推送到服務器。
3)在服務器上運行 git pull 並運行composer update
命令(它從服務器上的供應商文件夾中刪除了所有包)。
4)然后在本地機器上,我用我在步驟 1 中所做的備份替換了composer.json, composer.lock and vendor folder
,然后推送到服務器上(請注意我已經在 .gitignore 中添加了 vendor 文件夾,所以它沒有被推送,只有composer.json
和composer.lock
文件被推送)。
5) 在服務器上使用 git pull 並運行composer update
命令。 它再次安裝了所有具有適當依賴項的軟件包。
今天學到:永遠不要在生產或主服務器上運行composer update
。 通過運行composer update
在本地機器上安裝軟件包,它將安裝所需的軟件包並更新composer.lock
文件。 在服務器上推送composer.json
和composer.lock
在服務器上拉取,然后在服務器上運行composer install
。
注意:即使在您的本地主機上,如果您不想破壞依賴關系,那么您可以運行composer require
代替運行composer update
例如composer require razorpay/razorpay:2.*
這只會添加/更新此包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.