2017-07-02 130 views
0

我是新手,所以我看到一些教程。 我有一個python腳本作爲first.py如何在Ubuntu 16.04的apache2服務器上運行python cgi腳本?

#!/usr/bin/python3 print "Content-type: text/html\n" print "Hello, world!"

我有我的電腦上的Python的多個版本。 我想不出我的CGI支持目錄,所以我將這些代碼在三個地方

  1. /usr/lib/cgi-bin/first.py

  2. /usr/lib中/杯/的cgi-bin/first.py

  3. /var/www/html/first.py

現在,當我在終端運行此代碼,它工作正常,但是當我輸入

curl http://localhost/first.py

它吐出來只是簡單的文本,並沒有執行。

我已經給所有的權限first.py

我已經啓用,並開始通過命令服務器

a2enmod cgi systemctl restart apache2

請告訴我如何執行,什麼是怎麼回事? 在此先感謝。

回答

0

也許你在Python 3運行,你的代碼是用Python編寫的2 標題更改爲python2問題:

#!/usr/bin/python 
print "Content-type: text/html\n" 
print "Hello, world!" 
+0

不,這不是問題所在。我已經嘗試過了。 – Harsh

0

這些行需要在您的Apache2站點配置文件 (用於例如/etc/apache2/sites-available/default-ssl.conf 如果您的網站使用HTTPS):

<Directory /var/www/yoursite/yourdir/> 
    Options +ExecCGI 
    PassEnv LANG 
    AddHandler cgi-script .py 
</Directory> 

加入他們爲你想要的目錄中並重新啓動的Apache2。您可能還需要將

AddHandler python-program .py 

添加到您的httpd.conf中(如果不存在)。

關於python腳本和apache2的更詳細的討論可以在這裏找到:Executing a Python script in Apache2

相關問題