gpt4 book ai didi

apache - 如何在虚拟环境中安装 mod_wsgi

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

介绍

我有一个用 python 3 编写的 Web API,它使用 flask 。当我从终端运行 Web API 时,代码运行良好,它托管在代码的以下行中。

if __name__ == '__main__':
app.run(host='', port=8010, debug='true')

现在的情况

代码运行完美,我想在 Apache 服务器上设置它。然而,Apache 服务器已经有使用 python 2 构建的网站,并且需要 mod_wsgi 用于 python 2。

我查了一下是否有办法在 apache 服务器上同时设置 mod-wsgi 但根据以下来源你不能
mod_wsgi for Python 2 as well as Python 3 on one Apache server

尝试解决方案

我正在尝试将 mod-wsgi 安装到虚拟环境中。我从这里下载了软件包,并在激活后尝试将其安装到环境中。

我跑了 sudo python setup.py install从终端,但我得到了下面的错误

File "setup.py", line 139, in 'missing Apache httpd server packages.' % APXS) RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.



所以我打开了作为压缩包一部分的自述文件,发现以下内容

If you wish to use a version of Apache which is installed into a non standard location, you can set and export the APXS environment variable to the location of the Apache apxs script for your Apache installation before performing the installation.

Note that nothing will be copied into your Apache installation at this point. As a result, you do not need to run this as the root user unless installing it into a site wide Python installation rather than a Python virtual environment.

To verify that the installation was successful, run the mod_wsgi-express script with the start-server command::

mod_wsgi-express start-server


它似乎解决了我的情况,因为 Apache 没有安装在我运行命令的虚拟环境中,但我不知道该怎么做

我想他们正在谈论 setup.py 文件,我应该更改路径,但我不知道如何在语法方面进行操作,也不知道我的 APXS 脚本所在的位置。

这是我认为需要修改的代码片段
APXS = os.environ.get('APXS')

WITH_HTTPD_PACKAGE = False

if APXS is None:
APXS = find_program(['mod_wsgi-apxs'],
paths=[os.path.dirname(sys.executable)])
if APXS is not None:
WITH_HTTPD_PACKAGE = True

if APXS is None:
APXS = find_program(['mod_wsgi-apxs', 'apxs2', 'apxs'],
'apxs', ['/usr/sbin', os.getcwd()])
elif not os.path.isabs(APXS):
APXS = find_program([APXS], APXS, ['/usr/sbin', os.getcwd()])

if not WITH_TARBALL_PACKAGE:
if not os.path.isabs(APXS) or not os.access(APXS, os.X_OK):
raise RuntimeError('The %r command appears not to be installed or '
'is not executable. Please check the list of prerequisites '
'in the documentation for this package and install any '
'missing Apache httpd server packages.' % APXS)

问题

如果有帮助,我将在运行 Ubuntu 12.04LTS 的服务器上完成所有这些工作。我最后的问题如下
  • APXS 通常在 Ubuntu
  • 中位于哪里?
  • 如何更改代码片段以使用那里的 APXS 脚本

  • 非常感谢您的参与

    最佳答案

    带来不便敬请谅解
    原来我忘了在我的 apache 服务器上安装 APXS。我只是从终端运行代码并且它工作sudo apt-get apache2-threaded-dev 更新
    对于 Ubuntu 18(谢谢@MagicLAMP)

    sudo apt-get install apache2-dev
    对于 Centos 7:(谢谢@User)
    yum install httpd-devel

    关于apache - 如何在虚拟环境中安装 mod_wsgi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38187322/

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