【问题标题】:How to correctly set Documentroot in Apache serving Plone如何在 Apache 服务 Plone 中正确设置 Documentroot
【发布时间】:2014-08-18 01:24:50
【问题描述】:

我有一个名为 example.com 的 Plone 站点,位于 /var/www/Plone(我认为)。我对位于 sites-available for 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 设置为我网站的正确目录吗?非常感谢任何帮助。

【问题讨论】:

    标签: apache plone vhosts


    【解决方案1】:

    正如您在第一个正确答案中看到的那样,您不需要 DocumentRoot。 DocumentRoot 指向一个目录,其中包含要由 Apache 呈现的文件。但是 Plone 带来了它自己的服务器 Zope 应用程序服务器,它运行在与 Apache 不同的端口上。 RewriteRule 将传入请求重定向到应用程序服务器,并以对客户端隐藏重定向的方式修改响应。

    【讨论】:

    • 我已经重写了这样的重写: RewriteRule ^/(.*) 127.0.0.1:8080/VirtualHostBase/https/%{SERVER_NAME}:%{SERVER_PORT}/Test/VirtualHostRoot/$1 [P,L] 我的 Plone 站点被称为测试,安装Plone的目录是/home/username/Plone。当我转到我的站点 wiedhas.noip.me 时,我得到的只是“找不到请求的 URL /。所以我没有正确设置我的 Plone 站点的位置。有什么想法吗?localhost:880/Test 在本地工作。
    • 对不起,我的意思是我可以通过 localhost:8080/Test 访问我的站点,但不能通过监听端口 80 的 wiedhas.noip.me 访问。
    【解决方案2】:

    我花了一些时间才开始使用,所以也许这会有所帮助:

    我的虚拟主机看起来像这样(我的 plone 网站被称为“我的网站”):

    #---------------------------------
    #     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>
    

    希望有帮助:)

    【讨论】:

      【解决方案3】:

      这是一个关于在 apache 后面运行 plone 等的优秀文档。 http://docs.plone.org/manage/deploying/front-end/apache.html

      一个简单的 ssl 示例,虚拟主机的外观:

      <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 = 正在运行的克隆实例的端口

      /zodb/path/top/plone = 您在 zope 中添加 plone 站点的位置。

      【讨论】:

        猜你喜欢
        • 2021-07-01
        • 2014-07-10
        • 2023-03-04
        • 2016-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-01
        • 2011-01-09
        相关资源
        最近更新 更多