2012-03-12 210 views
5

服務器上有Apache 2 + mod_wsgi + Python 2.6。運行Python腳本,如PHP

我想像PHP腳本一樣從Python運行腳本。這個想法可能看起來很愚蠢,但我很習慣(至少在開始學習Python時)。

實施例:

PHP - http://example.com/script.php

的Python - http://example.com/script.py

P.S.我知道mod_rewrite和其他類似的技巧可以做到這一點。但它只是一種僞裝,而不是直接的運行。

UPD:我的.htaccess文件。 index.py工程,但其他python腳本得到404錯誤。

<Files *.py> 
SetHandler wsgi-script 
Options ExecCGI FollowSymLinks 
</Files> 
DirectoryIndex index.py 

回答

1

這看起來並不爲具有WSGI應用程序運行的冷靜,所以我建議你使用flask framework這很簡單,只要可以是健全的框架。

以下是描述install procedure on mod_wsgi的鏈接。

之後,你可能要考慮像Django的,金字塔,神交一個很酷的框架...

如果你真的想使用mod_wsgi的喜歡mod_php的檢查格雷厄姆鄧普爾頓的偉大的答案。

+0

我寫了關於mod_python的地方?我知道他已經過時了...... WSGI只是運行腳本的一點? – Ticksy 2012-03-12 09:49:44

+0

我想我誤讀了這篇文章。我不認爲你可以使用WSGI來執行[mod_python/php-like](http://webpython.codepoint.net/mod_python_publisher_uri_traversal)配置。我正在給我的答案添加一個相關鏈接。 – jpic 2012-03-12 10:04:16

+1

說'它希望通過套接字連接到正在運行的WSGI進程'是完全錯誤的。它不像你認爲它那樣工作。 – 2012-03-12 17:46:51

2

你在做什麼技術上應該工作,但看到的AddHandler方法在配置mod_wsgi的:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive

這樣,你不必使用文件指令搗鼓。

SetHandler做類似的事情,但上下文中的所有文件都被視爲WSGI腳本文件,即使它們可能是靜態的HTML或PHP文件。你因爲使用文件而限制了它,但最好只使用AddHandler。

請注意,代碼重新加載不會像您習慣於使用PHP一樣工作。見:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

+0

只能使用index.py。其他* .py文件顯示404錯誤。 – Ticksy 2012-03-13 07:22:01

+0

我不喜歡WSGIScriptAlias的方式。 – Ticksy 2012-03-13 07:24:38

+0

WSGIScriptAlias實際上是每個人都使用的方式,因爲規範是人們使用一些描述框架。從頭開始編寫WSGI的東西是非常不鼓勵的,因爲它太容易出錯。如果它不適用於其他.py URL,那麼在Apache配置的其他部分中可能會發生其他情況,這會影響它,因爲它可以做到。 – 2012-03-13 23:34:12