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"];