【Laravel】storage:linkで「symlink(): Input/output error」が表示される

【Laravel】storage:linkで「symlink(): Input/output error」が表示される

Laradock環境を一度WSL2版にしてから、Hyper-V版に戻したら、ショートカットリンクがなぜか外れていた。

そこで、以下のコマンドで再度ショートカットリンクを作成しようとすると…

# php artisan storage:link
ErrorException  : symlink(): Input/output error

at /var/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:252
  248|      */
  249|     public function link($target, $link)
  250|     {
  251|         if (! windows_os()) {
> 252|             return symlink($target, $link);
  253|         }
  254| 
  255|         $mode = $this->isDirectory($target) ? 'J' : 'H';
  256| 

Exception trace:

1   symlink("/var/www/storage/app/public", "/var/www/public/storage")
    /var/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:252

2   Illuminate\Filesystem\Filesystem::link("/var/www/storage/app/public", "/var/www/public/storage")
    /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php:35

Please use the argument -v to see more details.

このようなエラーが…

原因

publicの下を見てみると、

ファイルサイズのおかしいショートカットリンクが

サイズが 0 のリンクファイルがある。なんとも怪しい。

こいつを消して、もう一度storage:linkを実行してみる。

The [public/storage] directory has been linked.

今度はいけた!

なんでリンクファイルが破損していたのかは分からないけど、上記のエラーが出たら一度リンクファイルを確認することにしよう。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください