2013-06-26 66 views
1

我想在我的實驗室中設置一個LAMP服務器,並且我無法讓Apache執行.py文件。它只是下載它們。起初我認爲我的標題might be wrong,但是當我改變它時,很遺憾我還沒有執行.py。在好的一面,我可以加載網站,運行PHP和CRUD MySQL。我認爲問題可能在於我如何設置我的虛擬主機。這裏是Apache2.conf:在Ubuntu LAMP服務器上設置Apache以在虛擬主機中執行Python

<VirtualHost *:80> 
    Alias "/SiteIwant" "/var/www/SiteIwant" 
    ServerName localhost 
    DocumentRoot /var/www/SiteIwant 
    CustomLog /var/www/SiteIwant/my_access.log combined 
    ErrorLog /var/www/SiteIwant/my_error.log 
     AddType application/x-httpd-php .php 
     SetEnv LD_LIBRARY_PATH /etc/init.d/mysql 
    <Directory /var/www/SiteIwant> 
     Options None ExecCGI 
     AddHandler cgi-script .cgi .pl .py 
     #AddHandler mod_python .py 
     DirectoryIndex index.php 
     AllowOverride AuthConfig 
     Order deny,allow 
     Deny from All 
      Allow from 999.999.999.0/24 #anonymized for posting here, but working 
    </Directory> 
# <Directory /var/www/SiteIwant/cgi/> 
    # AllowOverride All 
    # Options +ExecCGI +SymLinksIfOwnerMatch 
    # Order allow,deny 
    # Allow from all 
    #</Directory> 
</VirtualHost> 

我有和無的CGI文件夾中的規範試了一下,我在/var/www/SiteIwant/cgi已經chkmod +rwx *.py。只是踢(後來沒有幫助),我還將/ usr/bin和/ usr/local/bin中的python解釋器的模式更改爲+ rwx。

apache2.conf文件中的所有其他內容都是從當前的Ubuntu Server-LAMP選項安裝中獲得的。

我覺得很困難,就像我失去了一些愚蠢的東西/小東西。

編輯:這真的應該問服務器故障?

如果我把AddHandler cgi-script .cgi .pl .py放在虛擬主機的外面,我得到403權限錯誤,儘管chmod 777這個文件夾。

回答

1

末的答案,我經過那裏有太多,並通過添加目錄選項ExecCGI,或爲了更加安全,像這樣得到這個工作:

<Directory /path/to/www/yourfile.py> 
Options +ExecCGI 
</Directory> 
+0

非常感謝您的幫助。這就像一個魅力。它在一個封閉的網絡中,所以我不太在意安全性,但爲什麼這會更安全? –

+1

在我的示例中,我只允許_/path/to/www/yourfile.py_作爲CGI執行,因此即使有害文件放在同一目錄中,也不會由Web服務器執行。 – Albirew

0

您是否安裝並啓用了apache wsgi模塊?

+0

我不知道是簡單的答案,我試圖現在檢查。如果沒有在LAMP安裝中拋出,我當然不會手動進行。 –

+0

我想你可能在談論mod_wsgi,在這種情況下,不,我不認爲它是。我應該安裝它嗎?只是看這裏:https://help.ubuntu.com/community/HelpOnInstalling/ApacheWithModWSGI我不認爲這是必要的? –

0

這種說法在虛擬主機和/或全球配置應該是足夠的(你有它在你的配置):

AddHandler cgi-script .py 

你重裝Apache的更改配置後?如果這不起作用,你應該檢查你的Web服務器的錯誤日誌,它應該給出一些提示問題的原因。

此外,您沒有描述當您訪問承載python腳本的URL時會發生什麼,您是否收到錯誤消息?

+0

當您訪問python腳本時,它只是下載python並以純文本顯示。似乎沒有錯誤產生(在日誌中)。看來我已經在vhost配置中添加了處理程序。 –

+1

快速測試告訴我這應該就夠了。檢查文件的權限(Web服務器正在使用的uid可讀和可執行)以及您的語句是否在正確的虛擬主機中。 –

+0

至於重新加載,我跑sudo apache2ctl重新啓動,是這樣嗎? –