2011-11-10 18 views
4

is_dir()がディレクトリであっても、なぜfalseを返しますか?is_dirは、ディレクトリであってもfalseを返しますか?

戻るエラーなし

$path_mysql = '/var/lib/mysql/'; 
if(!is_dir($path_mysql)){ 
    echo 'error'; 
} 

戻るエラー

$path_mysql = '/var/lib/mysql/domain.com/'; 
if(!is_dir($path_mysql)){ 
    echo 'error'; 
} 

/var/lib/mysql/domain.com/ exsitsを行い、しかしis_dir()がfalseを返します!

それが(パーミッションの問題)という操作を行うための十分な権限を持っていないので、それは、/var/lib/mysql/domain.com/が存在するかどうかを確認することができないので、私はおそらくパテやWinSCPの両方を通じて

+0

権限を確認しましたか? – gustavotkg

+0

'/ var/lib/mysql'内のディレクトリは、通常はmysqlユーザだけが読むことができます。 ApacheとPHPはそれらにアクセスできません。 –

+0

'domain.com /'をオンザフライで作成している場合は、チェックの前に 'clearstatcache()'を実行する必要があります。 – Jon

答えて

4

をディレクトリへのアクセスを得ることができます。

はおそらく(おそらくそれはwww-dataです)権限を

+0

dirにはどのようにアクセスできますか?私はバイナリファイルをバックアップする必要があります – clarkk

+0

私はそれが良いアイデアであるかどうかはわかりません。 MySQLデータベースのバックアップにmysqldumpを使わないのはなぜですか? –

+0

バイナリデータファイルのコピーにmysqldumpを使用できますか? – clarkk

0

をこのPHPスクリプトを実行するユーザーのための/var/lib/mysql/ディレクトリの実行(リスト)の許可をチェックしてください - MySQLデータdirsには、MySQLのユーザーによって所有されています。このテストスクリプトをWebサーバーで実行している場合、WebサーバーのUIDにそのディレクトリの内容を読み取る権限がない可能性は非常に低いので、is_dirはfalseを返します。

関連する問題