Moodle 仅通过 IP 提供服务 - 无法与 mod_proxy 配合使用

Moodle 仅通过 IP 提供服务 - 无法与 mod_proxy 配合使用

我正在尝试在 Ubuntu 机器上设置一个 moodle 服务器,它已经通过 Apache 提供 Plone 和 Trac 服务。

在我的 Moodle 配置中我有 $CFG->wwwroot = 'http://www.服务器名称.org/moodle

下面的配置(虽然复杂但有效)对于前两个来说运行良好,但是当我访问 www.server-name.com/moodle 时,我得到:

检测到不正确的访问,此服务器只能通过“http://xxx.xxx.xxx.xxx:8888/moodle“地址,抱歉

然后它转发到 IP 地址,Moodle 即可正常运行。

我缺少什么才能使服务器名称方法正常工作?


Apache 配置如下:

LoadModule transform_module /usr/lib/apache2/modules/mod_transform.so
Listen 8080
Listen 8888

Include /etc/phpmyadmin/apache.conf

<VirtualHost xxx.xxx.xxx.xxx:8080>

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPreserveHost On

  <Location />
    ProxyPass http://127.0.0.1:8082/
    ProxyPassReverse http://127.0.0.1:8082/
  </Location>

</VirtualHost>

<VirtualHost xxx.xxx.xxx.xxx:80>
  ServerName  www.server-name.org
  ServerAlias server-name.org

  ProxyRequests Off

  FilterDeclare MyStyle RESOURCE
  FilterProvider MyStyle XSLT resp=Content-Type $text/html
  TransformOptions +ApacheFS +HTML
  TransformCache /theme.xsl /home/web/webapps/plone/theme.xsl
  TransformSet /theme.xsl
  FilterChain MyStyle

  ProxyPass /issue-tracker !
  ProxyPass /moodle !  

  <Location /issue-tracker/login>

    AuthType Basic
    AuthName "Trac"
    AuthUserFile /home/web/webapps/plone/parts/trac/trac.htpasswd
    Require valid-user

  </Location>


  Alias /moodle /usr/share/moodle/

  <Directory /usr/share/moodle/>

    Options +FollowSymLinks
    AllowOverride None

    order allow,deny
    allow from all

    <IfModule mod_dir.c>
      DirectoryIndex index.php
    </IfModule>

  </Directory>

  </VirtualHost>

答案1

问题在于 Moodle 配置,因为它$CFG->wwwroot根本不应该受到服务器的影响。

也许如果您使用了第三方安装脚本,该变量会被再次设置和/或设置在另一个文件中。尝试http://xxx.xxx.xxx.xxx:8888/moodle在 moodle 目录中进行 grep 搜索。

作为一种解决方法,您可以尝试使用$CFG->wwwroot = 'http://'.$_SERVER["HTTP_HOST"];

相关内容