我正在尝试设置Trac以通过Debian (Lenny) 服务器上的LDAP 插件授权用户。
LDAP 似乎工作正常,我可以通过以下方式成功查询:
ldapsearch -vLx -h 127.0.0.1 -b "dc=example, dc=com" "(sn=mysurname)"
Run Code Online (Sandbox Code Playgroud)
如果我故意破坏我的 Apache LDAP 地址设置,我会在 /var/log/apache2/error.log 中看到错误
2010-08-27 17:19:38,909 Trac[api] WARNING: LDAP error: No such object (dc=examplefoo,dc=com)
Run Code Online (Sandbox Code Playgroud)
当我访问http://example.com:8022/trac并单击登录按钮时,身份验证窗口会弹出(再次确认 LDAP 正在启动),但是,当我输入正确的用户名/密码时,我只会得到一个 Trac 网络页面:
Trac Error
Authentication information not available. Please refer to the installation documentation.
TracGuide — The Trac User and Administration Guide
Run Code Online (Sandbox Code Playgroud)
日志同样没有帮助(忽略 svn 错误,我知道):
2010-09-01 14:25:30,553 Trac[api] DEBUG: NEEDS UP?: sys:False, rep:False, stats:False, fields:False, man:False
2010-09-01 14:25:30,577 Trac[env] …Run Code Online (Sandbox Code Playgroud) 主要是通过反复试验,我在下面创建了 Apache 配置文件。
它旨在允许 localhost:8002 上的服务器和通过 WSGI 的 trac 服务器共享 LDAP 服务器,并且看起来在同一个域/端口上。
这些规则是孤立运行的,但不是并行运行的。
特别是,trac WSGI 只有在ProxyPass/ProxyPassReverse行被注释掉时才能正确服务。如果没有重定向,localhost:8002 处的服务器显然不会映射到传出的 8022 端口。
我假设目录、代理和位置规则的组合是我的问题的路径 - 或者它们的顺序?
WSGIDaemonProcess trac stack-size=524288 python-path=/usr/lib/python2.5/site-packages
WSGIScriptAlias /trac /home/web/foo/parts/trac/tracwsgi/cgi-bin/trac.wsgi
<VirtualHost foo.bar.com:8022>
ServerName foo.bar.com
ServerAlias foo.bar.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://localhost:8002/VirtualHostBase/http/foo.bar.com:8022/foo/VirtualHostRoot/
ProxyPassReverse / http://localhost:8002/VirtualHostBase/http/foo.bar.com:8022/foo/VirtualHostRoot/
<Directory "/home/web/foo/parts/trac/tracwsgi/cgi-bin">
WSGIApplicationGroup %{GLOBAL}
Options +Indexes FollowSymLinks
AllowOverride None
Allow from all
Order allow,deny
</Directory>
<Location "/trac">
AuthBasicProvider ldap
AuthType Basic
AuthzLDAPAuthoritative off …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下规则(基于“使用 Apache 安装 Plone ”)将传入的网络流量转发到我的 Ubuntu 设置上的 Plone 服务器:
<VirtualHost *:80>
ServerAlias www.mydomain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://localhost:7373/VirtualHostBase/http/mydomain.com:80/plonesite/VirtualHostRoot/
ProxyPassReverse / http://localhost:7373/VirtualHostBase/http/mydomain.com:80/plonesite/VirtualHostRoot/
#ProxyPass / http://localhost:7373/ukpa/
#ProxyPassReverse / http://localhost:7373/ukpa/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
然而,这两种变体都会产生内部服务器错误,在日志中显示为:
[警告] 代理:没有协议处理程序对 URL / 有效。如果您使用的是 mod_proxy 的 DSO 版本,请确保使用 LoadModule 将代理子模块包含在配置中。
我可以通过 lynx 使用地址http://localhost:7373/ukpa/在本地浏览到该站点(因此注释掉的尝试只是转发到底部的那个)。
我哪里错了?
我正在尝试在 Ubuntu 机器上设置一个 Moodle 服务器,该机器已经通过 Apache 为 Plone & Trac 提供服务。
在我的 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 …Run Code Online (Sandbox Code Playgroud)