Назад | Перейти на главную страницу

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

Я пытаюсь установить сервер Moodle на компьютере с Ubuntu, который уже обслуживает 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:

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>

Проблема заключается в конфигурации Moodle, поскольку $CFG->wwwroot сервер вообще не должен влиять на это.

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

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