如何在Apache服务Plone中正确设置Documentroot

时间:2014-06-27 03:01:21

标签: apache plone vhosts

我有一个名为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设置到我网站的正确目录中?任何帮助非常感谢。

3 个答案:

答案 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将传入的请求重定向到应用程序服务器,并以为客户端隐藏重定向的方式修改响应。