gpt4 book ai didi

python - 如何在 Ubuntu 16.04 的 apache2 服务器上运行 python cgi 脚本?

转载 作者:行者123 更新时间:2023-12-04 18:25:28 25 4
gpt4 key购买 nike

我是新手,所以看了一些教程。
我有一个 python 脚本为 first.py
#!/usr/bin/python3
print "Content-type: text/html\n"
print "Hello, world!"

我的电脑上有多个版本的 python。
我无法弄清楚我启用 cgi 的目录,所以我将这段代码粘贴在三个地方

  • /usr/lib/cgi-bin/first.py
  • /usr/lib/cups/cgi-bin/first.py
  • /var/www/html/first.py

  • 现在,当我在终端中运行此代码时,它可以正常工作,但是当我键入时
    curl http://localhost/first.py
    它只吐出简单的文本并且不执行。

    我已将所有权限授予 first.py

    我已经通过命令启用并启动了服务器
    a2enmod cgi
    systemctl restart apache2

    请告诉我如何执行以及这里发生了什么?
    提前致谢。

    最佳答案

    python cgi 上的脚本apache2 服务器 Ubuntu (在 Ubuntu 20.04 上测试)从头开始,按照以下步骤操作(期望 python 已安装并完美运行)。

  • 安装 Apache 2 断绝。
    sudo apt install apache2
  • 启用 CGI 模块。
    sudo a2enmod cgi

  • Here we set /var/www/cgi-bin/ as cgi-bin directory. If you want a different directory, change files appropriately.


  • 打开 Apache 服务器配置文件 [ /etc/apache2/apache2.conf ] 经过,
    sudo gedit /etc/apache2/apache2.conf
    并在文件末尾以下几行。
    #########     Adding capaility to run CGI-scripts #################
    ServerName localhost
    ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .py
  • 打开文件/etc/apache2/conf-available/serve-cgi-bin.conf经过,
    sudo gedit /etc/apache2/conf-available/serve-cgi-bin.conf
    换行:
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Require all granted
    </Directory>
    至 :
    ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    <Directory "/var/www/cgi-bin/">
    AllowOverride None
    Options +ExecCGI
    </Directory>
  • 现在重启 apache2服务器,
    sudo service apache2 restart
  • 现在创建 python 脚本说, first.py 目录内/var/www/cgi-bin/经过,
    sudo gedit /var/www/cgi-bin/first.py
    并添加以下示例代码:
    #!/usr/bin/env python
    import cgitb

    cgitb.enable()

    print("Content-Type: text/html;charset=utf-8")
    print ("Content-type:text/html\r\n")
    print("<H1> Hello, From python server :) </H1>")
    并赋予 可执行权限first.py 经过,
    sudo chmod +x /var/www/cgi-bin/first.py

  • 现在 curl将工作。
    :~$ curl http://localhost/cgi-bin/first.py
    <H1> Hello, From python server :) </H1>
    或者打开浏览器浏览 http://localhost/cgi-bin/first.py .这应该可以工作,并将显示显示“ 你好,来自python服务器:)”的网页。
    希望它有所帮助......快乐的编码:)

    关于python - 如何在 Ubuntu 16.04 的 apache2 服务器上运行 python cgi 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871139/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com