2015-02-11 111 views
0

下午好, 我目前正在開發一個PHP項目,它需要一個PHP腳本來安裝一個Windows共享驅動器。目前正在使用帶XAMPP的OSX進行構建。PHP OSX XAMPP - exec mount命令

exec('mount -t smbfs //user:[email protected]/Share /Volumes/Share 2> temp/error.txt'); 

現在我明白爲什麼這不起作用。它由於權限。 Apache以用戶守護進程運行。現在我可以更改Apache運行的用戶來解決這個「挑戰」,但是如果可能的話,要避免對服務器進行任何更改。 我想聯繫一下,看看是否有更好的方法去解決這個問題。

任何想法?

+0

爲什麼你不在PHP之外,只是保持它掛載? – prodigitalson 2015-02-11 00:36:47

+0

,因爲只需要在卸載前短時間安裝。 – Wayde 2015-02-11 00:47:08

+0

是的,但允許網絡服務器用戶掛載它可能是一個可怕的想法,而將其安裝在系統中具有較小的缺點,除非它對於SMB服務器來說存在巨大的問題。部署哪種類型的機器時會運行? – prodigitalson 2015-02-11 01:00:00

回答

0

好吧,所以我得到它的工作。 我只需要Web服務器(用戶守護進程)擁有一個文件夾,在其中安裝共享。

EG。創建了一個名爲「tempshare」文件夾的用戶守護擁有並在同一文件夾中的PHP腳本(不用擔心,它將被放置到web目錄的完整時)

exec('mount -t smbfs //user:[email protected]/Share /path/to/tempshare 2> temp/error.txt'); 

似乎工作。任何關於使用這種方法的安全建議?

+0

我還發現[munkie/samba](https://github.com/munkie/samba)順便說一下..它的PHP SMB客戶端和相應的流包裝器。它確實使用了'smbclient',儘管它只適用於* nix系統,並且它可能會添加一個Windows實現的工作,然後再在Windows盒子上運行PHP ;-)我測試了它並且如果您有興趣,請附上示例代碼。 – prodigitalson 2015-02-11 03:16:00

+0

謝謝@prodigitalson!我會看看它! – Wayde 2015-02-11 03:23:48

+0

另外,如果你打算使用它,你將需要在Mac OS X上安裝帶有自制軟件或samba3的'samba',因爲OS X中的客戶端是'smbutil',而且是不同的。 (我用macports'samba3'測試過)。 – prodigitalson 2015-02-11 03:28:38