【问题标题】:Serve phpMyAdmin with mod_wsgi already serving django projects on port 80?使用 mod_wsgi 服务 phpMyAdmin 已经在端口 80 上服务 django 项目?
【发布时间】:2017-06-16 15:30:45
【问题描述】:

注意:我对 Apache 很陌生,所以我可能只需要一个简单的提示。

我已成功按照https://pypi.python.org/pypi/mod_wsgi 的说明进行设置,因此我使用 mod_wsgi 在 AWS Linux AMI EC2 服务器上的端口 80 上提供了一个空的 Django 项目。我使用这个命令开始为 Django 项目服务:

python manage.py runmodwsgi --setup-only --port=80 --user apache --group apache --server-root=/etc/mod_wsgi-express-80

这似乎使用自己的配置创建了一个单独的 Apache 实例,该实例仅服务于 Django 项目,独立于系统 Apache 安装。

但是,我也希望能够在端口 81 上为 phpMyAdmin 提供服务,但我不确定我应该修改哪个 Apache 实例(并且 mod_wsgi 实例的 httpd.conf 与默认)。我应该如何配置我的虚拟主机(以及我应该修改哪个实例)以便转到 <ip-address>:81/phpmyadmin 让我可以访问 phpMyAdmin?

目前,前往该地址只是超时。转到<ip-address> 会给我“它成功了!”符合预期的页面。

我目前对主要 httpd.conf 的修改:

Listen 81

Include sites-enabled/*.conf

WSGIScriptAlias /process /home/ec2-user/test/test_site/test_site/wsgi.py

WSGIPythonPath /home/ec2-user/test:/home/ec2-user/.virtualenvs/venv/lib/python3.5/site-\packages

<Directory /home/ec2-user/test/test_site/test_site>
<Files wsgi.py>
Order deny,allow
Allow from all
Require all granted
</Files>
</Directory>

ExtendedStatus On

Options -Indexes FollowSymLinks

为 phpMyAdmin 提供服务的 .conf 文件(这里是否缺少某些内容?)

<VirtualHost *:81>
  ServerName phpmyadmin
  DocumentRoot /var/www-81 #symlinked to '/usr/share/phpMyAdmin'
</VirtualHost>

【问题讨论】:

  • 正如您链接到的 mod-wsgi 文档显示的那样,该软件包是一种与 Apache 一起设置模块的简单方法。但正如它也解释的那样,您可以在现有 Apache 安装中安装标准 mod_wsgi 模块并手动配置它,如 Django 和 mod_wsgi 文档中所示。
  • 我最初是这样做的,但遇到了问题,所以我转向运行独立实例。原来我使用的是针对错误的 python 版本编译的 mod_wsgi.so。在这里使用了基本的虚拟主机配置modwsgi.readthedocs.io/en/develop/user-guides/…,甚至不用单独的端口就可以正常工作!感谢您鼓励我再试一次。
  • 您可以使用 mod_wsgi-express,它不会妨碍您的 PHP 设置

标签: django apache mod-wsgi amazon-ami


【解决方案1】:

阅读有关同时使用 mod_wsgi 和 PHP 的博文:

【讨论】:

  • 谢谢,格雷厄姆!我基本上已经想出了如何以 URL 方式分离应用程序(我不在乎它们不是都位于站点的根目录),但我肯定会更改配置以确保 Django 运行守护进程。
猜你喜欢
  • 1970-01-01
  • 2013-08-05
  • 2017-04-13
  • 2016-09-02
  • 1970-01-01
  • 2013-09-16
  • 2013-03-19
  • 2020-03-04
  • 2013-11-29
相关资源
最近更新 更多