我的文档根目录是
/0/
我没有任何 cgi-bin 目录。
这是我的 apache 虚拟主机:
Listen *:80
DirectoryIndex 1
<VirtualHost *:80>
DocumentRoot /0
ServerName domain.tld
ServerAlias www.domain.tld
</VirtualHost>
我想做的就是在这个目录中放置一个 bash 脚本。
文档根目录是..
在其中我将有..( test.sh )
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "test"
就这些。
我想我需要将此行添加到
/etc/sudoers
文件..
apache ALL=NOPASSWD:/0/test.sh
这一切是否足以确保我实际上可以通过 bash 脚本和 python 脚本运行我的网站?
如果这有效..诸如此类的东西有什么用
mod_wsgi and python for the web ?
我想我还必须使 test.sh 可执行
chmod +x test.sh
如果这可行并且我将文档根设置为
index.sh
浪费时间使用 python 作为 Web 框架有什么意义呢?甚至是 python 本身,因为网络版的 bash 会更直接,因此更快。 ?
答案1
编辑文件<Directory "/0" >
中的条目httpd.conf
并添加:
Options +ExecCGI
AddHandler cgi-script .sh
您最终应该得到类似以下内容的结果:
<Directory "/0" >
...
Options +ExecCGI
AddHandler cgi-script .sh
...
</Directory>
重新启动您的服务器:
# service httpd restart
所有 CGI 文件都应该是可执行的 ( chmod +x <cgi file>
)。该文件将以 userapache
和 group身份运行apache
。
将您的浏览器指向http://<name or IP>/test.sh
CGI 并不是运行脚本的最有效方式,因为每个请求都会启动一个新进程(在本例中为 python 或 bash),但它确实使实现脚本变得更容易。 WSGI
是比基本 CGI 脚本更有效的 Python 运行方式。