2013-03-28 25 views
0

我試圖運行此execPHP的exec SVN出口

exec('svn export -r '.$rev2.' '.$repourl.'/'.$dir.$parts[$j].' cache/diff/'.$dir.$parts[$j]); 

這等於:

svn export -r 1192 file:///var/svn/Repo/folder/file.xml cache/diff/folder/file.xml 

當我試圖腳本它根本不導出文件(folde使用另一個函數創建,所以那裏有一個。)

但是如果我嘗試運行svn導出爲用戶www-data(從命令行)它的工作原理。

所以我不明白爲什麼它不應該從PHP ..也許一些配置? 希望有人能幫助, 在此先感謝

編輯 完整路徑還試圖SVN(這SVN) 的EXEC:

exec('/usr/bin/svn export -r '.$rev2.' '.$repourl.'/'.$dir.$parts[$j].' 

結果

/usr/bin/svn export -r 1192 file:///var/svn/Repo/folder/file.xml cache/diff/folder/file.xml 

仍沒有更改,文件不會被導出。

回答

0

找到解決方案, 該問題與不讓exec運行的全局變量有關。

0

這不是配置。或者說,不直接。您的PHP實例似乎被設置爲無法寫入您指定的文件夾的用戶。它可以是chmodchown它可以寫入PHP所運行的用戶的東西。

附註:我爲laravel寫了一個SVN庫。但是,它是獨立的。您可能希望通過使用它來減輕您的負擔 - 它本身使用PECL SVN擴展。

+0

Checed the use(with exec('whoami'))並且是** www-data **,這個文件夾對於www-data是chown,並且有777個chmod,所以我不認爲這取決於這個(也因爲從終端執行命令如www-data按預期工作) – Easly

+0

'posix_getpwuid(posix_geteuid())'將返回包含所有有效用戶信息的assoc數組。 'name'就是你所追求的。 –

+0

也使用你建議的命令返回www-data作爲用戶,所以不應該有任何問題 – Easly