2010-12-04 19 views
0

PHPでシンボリックリンクを作成したいと思います。PHP symlink():書き込み可能なフォルダで許可が拒否されました

シンボリックリンクは、アップロードされたファイルと同じ場所に移動する必要がありますが、これは適切でしょうか?

私の本当の問題は、symlink()を使用すると、PHPが書き込み可能なディレクトリと同じディレクトリで、アクセス許可が拒否されたというエラーが発生することです。$_FILES

私はテストファイルとして text.txtを使用してテストを行っている

、とシンボリックリンクなどlinkは:

symlink("repository/text.txt", "link");

PHPスクリプトはcontent/folder/script.phpから実行されます。私はここで間違って何をしていますか?シンボリックリンクにはファイル拡張子が必要ですか(それは疑いますか)なのでしょうか?

+1

'link'の絶対パスを指定しなかった場合、PHPは現在の作業ディレクトリを使用します。 – ajreal

+0

それは私の問題だった - 下記のgoreSplatterの投稿を参照してください:-) – Bojangles

答えて

2

これはあなたが

symlink("repository/text.txt", "link"); 

を使用しているコードで、シンボリックリンクはスクリプトが実行されているディレクトリに作成されます/var/www/scripts/script.phpとして、あなたのスクリプトが実行されている場合。

は、絶対パスを使用してみてください。

+0

ありがとう:-)それは素晴らしい仕事。問題は、2番目の引数( 'link')は、あなたが言ったように相対的で絶対的なものではないということでした。 symlink( "repository/file.txt"、 "repository/link");ですべて修正されました。 – Bojangles

関連する問題