Symlink / var / wwwディレクトリ


17

私はシンボリックリンクを作成しようとしています:

/ var / www-> / home / USER / code /

/programming/9104337/create-a-symbolic-link-of-directory-in-ubuntuに従って、次のコマンドを入力しました。

sudo ln -s / var / www / home / USER / code

しかし、結果は私が期待するものではありません。私のリンクは、wwwディレクトリ自体をリンクする代わりに、/ wwwディレクトリ内に保存されます。私はローカルWebサーバーとしてApacheを使用しています。私の場合は、次のようにコードにアクセスする必要があります。

localhost / code / PROJECT

一方、私は次のようなものを持ちたい

localhost / PROJECT

codeディレクトリには、ちょうど私がすべての私のプロジェクトを保存するディレクトリとして機能すべきです。

私が逃しているものは何ですか?


1
wwwディレクトリを削除しましたか?wwwが存在する場合、www内にシンボリックリンクを作成します。wwwが存在しない場合は、wwwというシンボリックリンクを作成する必要があります。
メンダック14年

いいえwww、そのままです。内部のシンボリックリンクwwwディレクトリは、私が言及した目的に役立たない
user236603

同じディレクトリに同じ名前の2つのエントリ(ディレクトリと場合はシンボリックリンク)を含めることはできません。/var/www/file.txtと言うときはどういう意味ですか?あなたは決定する必要があります...
Rmano

@Shahのコメントを再度読む必要があります...削除wwwしてからシンボリックリンクを作成する必要があります。
ガブリエルF

回答:


3

wwwシンボリックリンクを作成する前に、ディレクトリを削除(または安全のために移動)してください。

だから、あなたは持っていないはずです/varが、何があるはずです/var/www。その後、そしてそのときだけwww、localhost / code / projectフォルダーを指すシンボリックリンクが作成されます。


1
この受け入れられた答えは間違っています。まず、コマンドについて話しているときに「削除」または「移動」と言うので、それぞれのシェルコマンドも配置する必要があります。次に、lnコマンドの送信元と宛先が間違っています!
sarah.ferguson

1
-1質問されなかった質問に答え、ユーザーが苦しんでいた実際の問題を指摘していない
シャドゥール

29

あなたはln -s「ソース」と「ターゲット」を間違った方法で持っていると思います


間違い

sudo ln -s /var/www /home/USER/code


正しい:

sudo ln -s /home/USER/code /var/www


/home/USER/codeフォルダー内のシンボリックリンクを指すようになりますvar/www間違った。

たとえば、私はサリーのサイト用のフォルダを持っています /home/webs/sallybydesign/

cd /var/www

作成しようとsallybydesignしている/var/wwwため、フォルダまたはファイルが呼び出されることはありません。

 sudo ln -s  /home/ndmaque/webs/sallybydesign /var/www/sallybydesign

新しいファイルを表示するには(シンボリックリンク)

ls -l

というファイルが表示されますsallybydesign。これはhome/webs/sallybydesignフォルダへのシンボリックリンクであり、実行すると

ls sallybydesign/ 

home/webs/sallybydesignフォルダ内のファイルが表示されます。

もしそうなら、vhostファイルを指すことができ、/var/www/sallybydesign自動的にすべてのApache /var/www許可を継承し、問題の負荷を解決します。


Ubuntuの最後の更新をシンボリックリンクで変更したことはありますか?私はもうシンボリックリンクを行うことができないようで、有名な403エラーが出ます。
ダニエル

@ダニエルもそうです
-emrecnl

1
デフォルトでは、許可は自動的に継承されません。上記の例では、ウェブサーバーが読み取りできるようになっていることを確認しchmod 0755 -Rてくださいsallybydesign。また、AllowOverride All/のデフォルトディレクトリ(通常はapache.conf内)にいる必要があります。
ダニエル

LSはサリー/、得ましたToo many levels of symbolic links
アディプラセティョ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.