[英]how to show mime data using python cgi in windows+apache
[英]How to use same python cgi file on windows and linux (apache)?
在linux / apache服務器上使用python作為CGI,第一行(定義解釋器,shebang)應該是這樣的:
#!/usr/bin/env python
在windows / apache服務器上運行相同的python CGI,第一行(定義解釋器的那一行)應該是這樣的:(假設python安裝到c:/ python27)
#!c:/python27/python.exe
是否有選項可以設置相同的行,以便在將文件從linux移動到Windows時不需要進行任何更改?
這里描述的完整答案: http : //my.opera.com/NoteMe/blog/running-python-as-cgi-in-apache-in-windows
在Windows下 - 下一次更改apache配置文件:
AddHandler cgi-script .py
從下一行中刪除“hash”(“#”):
#ScriptInterpreterSource Registry
在這里可以找到更多細節和一些關於安全性的其他數據: 如何使用Apache“ScriptInterpreterSource Registry-Strict”指令?
所以你有shebang line #!/usr/bin/env python
你在Windows中缺少的是字面上的env.exe應用程序。
從GnuWin項目https://sourceforge.net/projects/gnuwin32/files/coreutils/5.3.0/下載以下ZIP文件:
coreutils-5.3.0-bin.zip
coreutils-5.3.0-dep.zip
在Apache HTTP for Windows啟動的同一驅動器上創建\\ usr \\ bin文件夾,例如: c:\\usr\\bin
解壓縮到創建的\\ usr \\ bin文件夾:
來自coreutils-5.3.0-bin.zip的env.exe ;
libiconv2.dll,來自coreutils-5.3.0-dep.zip的libintl3.dll
你應該有以下文件:
C:\\usr\\bin>dir Volume in drive C is OSDisk Volume Serial Number is DEAD-BEEF Directory of C:\\usr\\bin 01/23/2019 10:24 AM <DIR> . 01/23/2019 10:24 AM <DIR> .. 04/20/2005 01:41 PM 24,064 env.exe 03/16/2004 03:37 PM 898,048 libiconv2.dll 10/09/2004 11:25 AM 101,888 libintl3.dll 3 File(s) 1,024,000 bytes
答對了! 現在你的Apache將正確地解釋shebang線。
對於那些想從Python虛擬環境運行Python CGI腳本的人 。
如果您在c:\\py-venv
創建了Python虛擬環境,請將以下行添加到Apache httpd.conf中,以獲取Python CGI腳本所在的目錄。 這些腳本將由Apache使用Python虛擬環境的二進制文件和模塊執行。
# Python virtual environment folder Define VENV "c:/py-venv" # Python CGI scripts location Define PY_CGI "c:/test/cgi" <Directory "${PY_CGI}"> AllowOverride None Order allow,deny Allow from all Options ExecCGI FollowSymLinks Options -Indexes Require all granted SetEnv VIRTUAL_ENV ${VENV} SetEnv PATH "${VENV}/Scripts;${PATH}" </Directory>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.