我有一个名为example.com
的Plone网站位于/var/www/Plone
(我认为)。我对站点中的站点进行了以下设置 - 可用于vhosts(摘录):
<VirtualHost 10.0.1.4:8082>
ServerAdmin webmaster@localhost
ServerName wiedhas.noip.me
DocumentRoot /var/www/Plone
当我尝试访问我的网站wiedhas.noip.me
时,apache会加载Plone目录树而不是我的Plone网站。我可以浏览/var/www/Plone
的文件系统,但它没有加载该站点。我一定不能将documentroot设置到我网站的正确目录中?任何帮助非常感谢。
答案 0 :(得分:4)
这是关于在apache后面运行plone的优秀文档。 http://docs.plone.org/manage/deploying/front-end/apache.html
使用ssl的简单示例,vhost的外观如下:
<VirtualHost $IP:80>
ServerName my.domain.com
Redirect / https://my.domain.com
</VirtualHost>
<VirtualHost $IP:443>
ServerName my.domain.com
ErrorLog logs/my.domain.com-http-error.log
CustomLog logs/my.domain.com-http-access.log combined
Include vhosts.d/....ssl.inc
RewriteEngine On
RewriteRule ^/(.*) http://127.0.0.1:$PORT_OF_PLONE/VirtualHostBase/https/%{SERVER_NAME}:%{SERVER_PORT}/zodb/path/top/plone/VirtualHostRoot/$1 [P,L]
</VirtualHost>
最重要的部分是重写规则:
RewriteRule ^/(.*) http://127.0.0.1:$PORT_OF_PLONE/VirtualHostBase/https/%{SERVER_NAME}:%{SERVER_PORT}/zodb/path/top/plone/VirtualHostRoot/$1 [P,L]
$ PORT_OF_PLONE =正在运行的plone实例的端口
/ zodb / path / top / plone =这是你在zope中添加plone站点的地方。
答案 1 :(得分:0)
我花了一些时间让我的去,所以这可能有帮助:
我的虚拟主机看起来像这样(我的plone网站被称为'mywebsite'):
#---------------------------------
# www.mywebsite.com
#---------------------------------
<VirtualHost *:80>
ServerName www.mywebsite.com
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/(.*)$ http://127.0.0.1:8081/VirtualHostBase/http/%{SERVER_NAME}:80/mywebsite/VirtualHostRoot/$1 [L,P]
</IfModule>
</VirtualHost>
希望有所帮助:)
答案 2 :(得分:0)
正如您在第一个正确答案中看到的那样,您不需要DocumentRoot。 DocumentRoot指向一个目录,其中包含Apache要呈现的文件。但是Plone带来了它自己的服务器,即Zope应用服务器,它运行在与Apache不同的端口上。 RewriteRule将传入的请求重定向到应用程序服务器,并以为客户端隐藏重定向的方式修改响应。