2016-03-12 28 views
0

訪問互聯網/網絡的另一種方式,我可以問這個問題是:的Perl/Python腳本失敗通過Web GUI

如何設置由Apache的服務有更高權限的網頁?這與我在IIS中設置應用程序池以使用不同的憑據類似。

我有多個Perl和Python腳本,我通過web前端發佈。前端旨在運行我在數據庫中的任何腳本。對於大多數腳本我沒有問題...但似乎利用網絡的任何內容都不會返回任何內容。沒有錯誤消息或失敗報告。從CLI 作爲ROOT工作,從WEB GUI 運行,如www-data調用相同的命令失敗。

我在這個問題中將Python和Perl結合在一起,因爲問題是一致的,導致我相信它不是代碼問題,它是一個權限問題。此外,爲什麼我最初不包括代碼。

這些使用Apache和PHP5在Linux上運行。我相信Python 2.7和Perl5。下面是應用我有一個是失敗的例子:

  1. Python的 - 連接出VirusTotal API
  2. 的Perl - 連接到域,並創建與GraphViz的一個圖形
  3. Perl的 - 在執行網絡喚醒功能本地網段。
+0

轉到文檔根目錄並執行'su www-data'。然後嘗試以用戶www-data的形式運行腳本。如果失敗,它不是apache的問題,而只是因爲UNIX權限不允許你訪問腳本或perl/python二進制文件。 –

+0

當我嘗試搜索www數據時,我得到「此帳戶當前不可用」。 –

+0

這意味着該帳戶沒有外殼。請參閱https://geekpeek.net/this-account-is-currently-not-available-login-problems/瞭解如何臨時修復它以進行測試,但我建議將其設置回來。 –

回答

1

所以我發佈這個後,我看着像我用於IIS的處理程序。這讓我走下了SUEXEC的道路,並且通過我所嘗試的一切,我無法讓Apache加載它。甚至確保我爲SETUID和SETGID設置了位。

當我研究時,我遇到了.htaccess文件以及它們如何啓用CGI腳本。我不想放入.htaccess文件,所以我只是確保將apache.conf配置爲允許CGI。這也沒有幫助。

因此,當我在學習.htaccess時,他們提到了ScriptAlias。我相信這是解決了我的問題。我修改了Apache配置文件中的ScriptAlias部分以指向包含腳本的我的目錄。在完成了一些腳本讀取/寫入文件的絕對目錄和權限後,我得到了一切工作,除非它不通過環境http_proxy設置的代理。這是一個單獨的問題,但我認爲我很樂意繼續這個問題。我將在我的perl LAMP上嘗試相同的解決方案。