У меня такой же прикол, только с wsgi.
Установил Apache 2.4, настроил виртуальный хост, установил wsgi.
При такой конфигурации виртуального хоста:
<VirtualHost *:80>
ServerName vh1.t
ServerAdmin webmaster@localhost
DocumentRoot /home/rlab/www/vh1
<Directory /home/rlab/www/vh1>
Require all granted
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
WSGIScriptAlias / /home/rlab/www/cgi-bin1/app.wsgi
<Directory /home/rlab/www/cgi-bin1>
Order allow,deny
Require all granted
Allow from all
</Directory>
</VirtualHost>
Скрипт работает как надо, а при такой конфигурации:
<VirtualHost *:80>
ServerName vh1.t
ServerAdmin webmaster@localhost
DocumentRoot /home/rlab/www/vh1
<Directory /home/rlab/www/vh1>
Require all granted
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
Alias /cgi-bin1/ /home/rlab/www/cgi-bin1/
<Location /cgi-bin1>
SetHandler cgi-bin1
Options +ExecCGI
Order allow,deny
Require all granted
Allow from all
</Location>
</VirtualHost>
Выводит текст скрипта в браузер ?!
Скрипт:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import os
path = os.path.dirname(__file__)
sys.path.append(path)
os.chdir(path)
def application(environ, start_response):
status = '200 OK'
output = 'Hello world!!!'
response_headers = [('Content-type', 'text/html; charset=utf-8'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]