コマンドを使用してシンボリックリンクを設定しようとしています
ln -s /var/www/data/cache/widget/overlay/ /var/www/public_html/images/overlay
しかし、それは出力します
ln: failed to create symbolic link '/var/www/public_html/images/overlay': Protocol error
ホストOSはWindows8で、DockerイメージはUbuntuです。 Dockerイメージが起動すると、/var/www/public_html
がWindows8内のフォルダー/C/Users/Username/Documents/development/public_html
にマップされるため、この問題はアクセス許可に関係している可能性があると思います。ただし、public_html
フォルダー内のコマンドラインを使用してフォルダーやファイルを作成することはできます。これは、アクセス許可であることに反します。
実行するのは.sh
スクリプトだけなので、Dockerを管理者として起動してそれが役立つかどうかを確認する方法を見つけることができません。
シンボリックリンクを作成するときに「プロトコルエラー」が発生した人は他にいますか?または、この問題の原因についてより多くの情報を取得する方法はありますか?
編集:また、PHPを介してpublic_html
フォルダーに画像を保存するか、そこにファイルをコピーしようとすると(ここでも、PHPを介して)、同じ「プロトコルエラー」が発生します。メッセージ。
つまり、/var/www/public_html
は実際にはWindowsフォルダーですが、/var/www/data
はそうではありませんか? Windowsディレクトリから仮想マシンのUbuntuディレクトリへのシンボリックリンクを作成しようとしています。 Windowsがそのようなオブジェクトをサポートできる方法はありません。
上記をさらに詳しく説明すると、ポイントは、Windowsホストがファイルサーバーとしてセットアップされ、クライアントがC:\Users\Tom_Hart\Documents\development\public_html
を利用できるようにすることです。具体的には、Ubuntuイメージへの読み取り/書き込みアクセス権を付与して、Ubuntuが読み取れるようにします。そのWindowsディレクトリ内およびその下にオブジェクトを変更および作成します。ただし、一般に、サーバーはクライアントを認識できません(Googleがyourファイルのインデックス作成を開始し、検索結果に返すとどう思いますか?)Dockerイメージがエクスポートされていない限りitsファイルの場合、Windowsには/var/www/data
にアクセスする方法がなく、そのようなパスを理解することさえできません。例えば。、
C:\ Users\Tom_Hart\Documents>メモ帳/ var/www/data/cache/widget/overlay /何か
機能しません(C:\var\www\data\cache\...
を意味していると思われる場合があります)。 Windowsが、WindowsプロセスでアクセスできないリソースへのシンボリックリンクをWindowsディレクトリに作成することを拒否するのは自然なことです。