2010-06-22 130 views
1

我在使用putty的shell中調用antiword並且它工作正常。但是,當我使用shell_exec()調用它時,它總是給出空字符串。這裏是我使用的代碼:antiword shell命令無法通過PHP正常工作

$ file =「IS_BT_KLVZ_MSI_001.doc」;內容爲shell_exec(「/ usr/local/bin/antiword/usr/local/apache/htdocs/dokuman_sorgusu/documents/$ file」);

var_dump($ content);

在一個論壇中,我看到了確切的問題報告。有這個問題的人說他解決了這個問題。下面是引用:

「是的,這竟然是映射文件的可訪問性 - 他們 不是世界可讀, 一次我改變的權限,它的工作十分感謝所有。」

然而,我並不理解他是如何解決這個問題的,我怎樣才能達到並允許這些反映詞的映射文件。

回答

0

從殼..嘗試這個

# chmod o+r /usr/local/apache/htdocs/dokuman_sorgusu/documents/IS_BT_KLVZ_MSI_001.doc 
+0

您正在更改文檔的mod,但是我必須更改/ ust/local/bin/antiword使用的地圖文件的mod。我無法在我的php代碼中正確執行antiword命令,因爲antiword無法通過php代碼使用其附加映射文件。但是,在我稱之爲命令外殼的情況下,反義詞完美無缺。 – 2010-06-23 06:44:49

0

的Web服務器通常運行爲用戶「nobody」,其中有最小的權限,並且是隻有一個組(「nogroup」)的成員。

您的地圖文件最有可能設置爲0640模式(-rw-r -----),屬於您的登錄用戶有權訪問的組,但Web服務器沒有。

因此,使得地圖文件具有世界可讀性,Web服務器就可以打開它們,就像您的登錄用戶擁有更多的權限一樣。