Moodle работает только по IP - не будет работать с mod_proxy

Я пытаюсь настроить сервер Moodle на Ubuntu box, который уже обслуживает Plone & Trac через Apache.

В моем конфиге Moodle есть $ CFG-> wwwroot = ' http://www.server-name.org/moodle'

Приведенная ниже (сложная, но работающая) конфигурация отлично работает для первых двух, но когда я захожу на www.server-name.com/moodle, я получаю:

Обнаружен неправильный доступ, к этому серверу можно получить доступ только через адрес " http://xxx.xxx.xxx.xxx:8888/moodle", извините

Затем он перенаправляет на IP-адрес, где Moodle работает нормально.

Чего мне не хватает для правильной работы подхода к имени сервера?


Apache Config следует:

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 не должен быть затронут сервером вообще.

Возможно, если вы использовали сторонний скрипт установки, эта переменная была установлена ​​снова и / или в другом файле. Попробуйте выполнить поиск grep для http://xxx.xxx.xxx.xxx:8888/moodle в каталогах Moodle.

В качестве обходного пути, вы можете попробовать использовать $CFG->wwwroot = 'http://'.$_SERVER["HTTP_HOST"];

Другие вопросы по тегам