django - 在 Apache 和 WSGI 上部署 Django

标签 django apache mod-wsgi

虽然我找到了一堆技术支持来使用 WSGI 在 Apache 上部署 Django,但事实上,不幸的是,它们都让我感到困惑,我无法让 Django 运行。我希望这是一份真正轻松的工作,但作为一个新人,我面临着困难。

我的/home/zia/Documents/Codes/Django/website1 和 ..../website2 目录中分别有两个 Django 项目,即 website1 和 website2。包含 settings.py 文件的文件夹是/website1 和/website2 目录中的 root/。

Apache、mod_wsgi 一切都按要求安装。如何编辑 apache2.conf 和 wsgi.py 文件以保持这两个项目在端口 8080 和 8081 上运行?

过去几天我一直在努力解决这个问题,并尝试了以下所有网站。

link1 , link2 , link3 , link4

更新1:

我从一开始就遵循以下方法使事情进展顺利,但发现自己遇到了一些新问题。请指导我在哪里我错了。

  • 安装 mod-wsgi 和 apache2:sudo apt-get install libapache2-mod-wsgi && sudo apt-get update && sudo apt-get install apache2
  • 通过更改文件“/etc/apache2/ports.conf”将 apache2 端口编辑为 8083,而不是 80:Listen 8083
  • 将以下行添加到“/etc/hosts”文件中:160.75.133.175 160.75.133.175
  • 在“/etc/apache2/apache2.conf”文件中编辑以下代码:
  • <Directory /> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
  • 在“/etc/apache2/sites-available/”目录中创建一个名为“sql_api.conf”的文件:
  • <VirtualHost *:8083> ServerAdmin zia@gmail.com ServerName 160.75.133.175 ServerAlias http://160.75.133.175 <Directory /home/zia/Documents/Codes/Django/sql_api/ > Order deny,allow Allow from all </Directory> WSGIScriptAlias / /home/zia/Documents/Codes/Django/sql_api/root/wsgi.py WSGIDaemonProcess 160.75.133.175 user=www-data group=www-data threads=25 python-path=/home/zia/Documents/Codes/Django/sql_api/root/:/usr WSGIProcessGroup 160.75.133.175 ErrorLog /home/zia/Documents/Codes/Django/sql_api/root/error.log </VirtualHost>
  • 在“/etc/apache2/sites-available”目录中运行以下命令:sudo a2enmod wsgi && sudo a2ensite sql_api.conf && sudo service apache2 restart
  • 开通 http://160.75.133.175:8083/但收到以下错误:
    内部服务器错误
    服务器遇到内部错误或配置错误,无法完成您的请求。
    请通过 zia@gmail.com 联系服务器管理员,告知他们此错误发生的时间以及您在此错误之前执行的操作。
    服务器错误日志中可能提供有关此错误的更多信息。
    Apache/2.4.7 (Ubuntu) 服务器在 160.75.133.175 端口 8082

  • 注意 :当我在/var/www/目录中创建一个 Django 项目,然后执行相同的方法然后工作得很好!我想是因为我试图访问/home/zia/.... dir,所以有这个问题。无论如何,这只是一个猜测。我会很感激你的帮助。

    最佳答案

    谢谢大家。终于找到了一个工作流程。请按顺序执行以下步骤:

  • 安装 mod-wsgi 和 apache2:sudo apt-get install libapache2-mod-wsgi && sudo apt-get update && sudo apt-get install apache2
  • 通过更改文件“/etc/apache2/ports.conf”将 apache2 端口编辑为 8083,而不是 80:Listen 8083
  • 将以下行添加到“/etc/hosts”文件中:160.75.133.175 160.75.133.175
  • 在“/etc/apache2/apache2.conf”文件中编辑以下代码:
  • <Directory /> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
  • 在“/etc/apache2/sites-available/”目录中创建一个名为“sql_api.conf”的文件(使用不同的名称制作任意数量的 .conf 文件,每个文件服务于不同的网站):
  • <VirtualHost *:8083> ServerAdmin zia@gmail.com ServerName 160.75.133.175 ServerAlias http://160.75.133.175 <Directory /home/zia/Documents/Codes/Django/sql_api/ > Order deny,allow Allow from all </Directory> WSGIScriptAlias / /home/zia/Documents/Codes/Django/sql_api/root/wsgi.py WSGIDaemonProcess 160.75.133.175 user=www-data group=www-data threads=25 python-path=/home/zia/Documents/Codes/Django/sql_api/root/:/usr WSGIProcessGroup 160.75.133.175 ErrorLog /home/zia/Documents/Codes/Django/sql_api/root/error.log </VirtualHost>
  • 在“/home/zia/Documents/Codes/Django/sql_api/root/”中的 wsgi.py 文件中添加以下几行:sys.path.append('/home/zia/Documents/Codes/Django/sql_api/root') sys.path.append('/home/zia/Documents/Codes/Django/sql_api')
  • 在“/etc/apache2/sites-available”目录中运行以下命令:sudo a2enmod wsgi && sudo a2ensite sql_api.conf && sudo service apache2 restart
  • 开通 http://160.75.133.175:8083/
  • 关于django - 在 Apache 和 WSGI 上部署 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331641/

    相关文章:

    python - 如何在 views.py 中创建模型实例?

    python - Django 添加额外的列进行分组依据

    xml - 类型映射 apachesoap 未解析

    php - apache 通过 ftp 的配置问题

    apache - 使用 Apache 作为代理服务器 + Tomcat

    linux - mod_wsgi 安装需要 : libpython2. 7.so.1.0()(64 位)

    django - Django is_valid()缺少1个必需的位置参数: 'self'

    python - Django-Tastypie : Omit one specific object to be serialized in ManyToMany

    python - Python 中的函数属性

    Google Kubernetes Engine 上的 Django、Apache2 将 Opencensus Traces 写入 Stackdriver Trace