我到处寻找并尝试了许多建议的解决方案,仍然没有所需的结果:从我的灯服务器运行python文件。我似乎无法整合拼图的所有部分......复杂的故事是许多解决方案要么使用旧的apache版本(< 2.4),这会显着改变配置文件。没有更多的httpd.conf!所以这executing-a-python-script-in-apache2没有帮助;而且python版本是> 3使问题复杂化。
规格:
python脚本,最简单的脚本,已经可以执行
#!/usr/bin/env python3
print ("Content-type: text/html\n")
print ("Hello world!")
让它归结为最简单的情况:我想让apache解释spark.py脚本并吐出html:“Hello world!”
问题:
我知道出于安全原因,您不应该在根目录中运行apache脚本。
答案 0 :(得分:2)
modwsgi的python文档似乎符合您的要求。以下网页有一个非常简单的示例和python3-apache2设置的必要配置。
http://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html
您需要安装mod_wsgi才能使配置生效。请注意apt和pip3中使用的不同的“_”下划线和“ - ”短划线字符。
$ sudo apt install apache2-dev libapache2-mod-wsgi-py3
$ sudo pip3 install mod_wsgi
libapache2-mod-wsgi-py3和mod_wsgi似乎是一回事。但是,我的测试部署仅在安装mod_wsgi后才能运行。可能是配置问题。以下是我在Ubuntu 16.04.2上测试的配置的详细信息。
申请文件/home/user/wsgi_sample/hello.wsgi:
def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Apache2配置/etc/apache2/sites-available/000-test.conf
<VirtualHost *:80>
ServerName testmachine
<Directory /home/user/wsgi_sample>
Order allow,deny
Allow from all
Require all granted
</Directory>
WSGIScriptAlias /hello /home/user/wsgi_sample/hello.wsgi
</VirtualHost>
在apache2中启用该站点。
sudo a2ensite 000-test.conf
将浏览器打开至testmachine/hello
。
答案 1 :(得分:0)
是的,您的最低密码似乎正确。在这里回答Apache的配置信息 https://stackoverflow.com/a/57531411/4084546