2012-03-19 10 views
0

基本的には、OS Xマシン上の既存のディレクトリを見ることができないスクリプトがあります。このディレクトリは外付けハードドライブからデスクトップにコピーされていますが、これは問題の核となるかもしれません。Mac OS X XAMPPサーバの既存ファイルでrealpath()が返されるXAMPPサーバ

$path = '/Users/username/Desktop/testfolder'; 
    $path = realpath($path); 

これは機能しません。

$path = '/Users/username/Desktop'; 
    $path = realpath($path); 

これはうまくいきます。

私は状況の少しコンテキストを教えてあげます。私はMac OS X Lion 10.7を使っています。私はXAMPPをインストールしました。これはキオスクのiMacで、同じネットワーク上のiPadと通信する必要があります。それ以外の場合は、OS XでApacheを実行しません。iPadはiMacからいくつかの画像を取得する必要があり、PHPは基本的にプロキシとして機能しますこれをする。私は管理者がこのエラーが発生しているイメージへのパスを設定できるバックエンドを作成しました。

だから私は何が起こっているのか分かりません。私はそれが外付けハードドライブからのこれらのファイルのパーミッションと所有者とのいくつかの競合と関係していると想像します。私はターミナルで "chown"や "chmod"をすることができると確信していますが、これは本当に素晴らしい解決策ではありません。私はPHPがそのようなシナリオに対応できるようにするのが大好きです。何かご意見は?お願いします!? :-)

+1

[マニュアル](http://php.net/manual/en/function.realpath.php)は '実行中のスクリプトは階層内のすべてのディレクトリに対して実行可能なアクセス許可を持っていなければなりません。それ以外の場合、realpath()はFALSEこれが真でない場合は( '' testfolder''の実行権限がないように思えます)、 '' chmod'/'' chown'/'' chgrp''だけです。 。それは素晴らしい解決策ではないかもしれませんが、あなたはそれを好きになるように学ばなければならないでしょう。 – DaveRandom

+0

ラダーパスが働くので、明らかにtestfolderではなく、デスクトップまでのパーミッションを持っています。だから、これを知って、私は "testfolder2"と呼ばれるマシン上でローカルに2番目のディレクトリを作成し、testfolder2からtestfolder2にイメージをコピーしてみましたが、私は同じ問題を受けました。 realpathは新しいフォルダでfalseを返していました。何かご意見は? – normmcgarry

+0

PHPスクリプトに 'testfolder'ま​​たは' testfolder2'でexecがない場合、動作しません。 'chmod 777'フォルダを試してみて、まだ問題があるかどうか確認してください... – DaveRandom

答えて

0

奇妙な問題の種類が、これは動作しますが:

$path = '/Users/username/Desktop'; 
$path = realpath($path); 

「デスクトップ」ディレクトリには、適切な権限を持っていませんでした。私は、デスクトップ上の権限を変更したら、それは私がこのパスにアクセスすることを許可:

$path = '/Users/username/Desktop/testfolder'; 
$path = realpath($path); 

manualが問題であると思わなかった状態The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE.を行います。

関連する問題