首页 > 解决方案 > 如何在 Laravel/OctoberCMS 网站的单独项目的子目录中设置/访问页面?

问题描述

我有一个运行我构建的 OctoberCMS 主题的网站。它在 DigitalOcean 的服务器上运行。我需要在同一台服务器上添加一个单独的项目(即来自 Matomo 分析的代码)并访问一个公共页面(例如 my_site.com/matomo)。我对 Laravel 和服务器配置足够新,我不确定我需要如何配置 index.php 文件或类似 .htaccess 的文件,以便我可以访问 my_site.com/matomo。

这是我的文件结构

/var/www/html/
     index.php (serves the pages of my project)
     artisan
     bootstrap/
     config/
     modules/
     plugins/
     server.php
     storage/
     themes/
     vendor/
     matomo/ (for installing the analytics for the site)
         index.php 
         matomo.php
         piwik.php
         config/
         a number of other files I can enumerate if necessary

我已按照matomo的指示进行操作,但无济于事。当我尝试访问 my_site.com/matomo 时,我只是从我的网站上获得了一个 404,其中包含我的主题格式。

我知道这应该不难。谢谢!

编辑:根据需要,我网站的主页位于 my_site.com。各个页面位于 my_site.com/page_name。出于我的目的,这配置得很好。

现在,对于 Matomo,说明说:

打开您的 FTP 客户端并以“二进制模式”将 Matomo 文件上传到您的 Web 服务器上的所需位置。例如使用 Filezilla FTP 客户端,您可以在顶部菜单传输 > 传输类型 > 二进制中启用二进制模式传输)。所有文件都可以上传到您的公共 www 文件夹中的“分析”子目录,例如http://yourdomain.org/analytics/或者您可以在自己的子域中设置 Matomo 并将所有文件上传到http:// analytics.example.org/ 如果您可以通过 SSH 访问您的服务器,则可以使用它而不是 FTP,因为它更快:运行 wget https://builds.matomo.org/matomo.zip && unzip matomo.zip

因此,我使用 wget 选项将其添加到我认为是“公共 www 文件夹”的/var/www/html. 因此,这些说明让我相信我可以访问 my_site.com/analytics/,然后查看 GUI 网页以进行进一步的安装和设置。但是,这不起作用,因为它需要为我的站点的其余部分设置的 404 页面。我也不知道我是否希望它能够工作,因为 Matomo 中的所有文件或文件夹都没有被命名为“分析”——我也尝试过 my_site.com/matomo 进行记录。所以,这就是说,我不知道 Matomo 页面是在哪里呈现的。

标签: phphtmllaraveloctobercmsmatomo

解决方案


我没有任何经验Matomo,但是从问题中我了解到您要安装两个软件 X asCMS和 Y as Matomo

您的网络服务器(我假设 Apache 是网络服务器)将为以下路径提供所有请求:/var/www/html/index.php. 属于软件 X。您的请求my_site.com/matomo将被提供给软件 X,并且由于 X 不期望此请求会输出404 Not Found错误。

第一个解决方案:这是一个糟糕的解决方案,更难的解决方案是如果请求在 URL 中有 matomo,则编辑/var/www/html/index.php它并将其与 Y 组合。index.php

第二种解决方案:最佳和更好的解决方案是将 X 和 Y 分开。它可以通过多种方式完成:

  • 您可以合并下文件夹中的所有 X 文件/var/www/html/x,以及下文件夹中的所有 Y 文件/var/www/html/y。然后您可以使用以下 URL 访问 xmy_site.com/x并使用my_site.com/y.

  • 如果第一种方式不可行,因为您需要将 X 作为根 URL,例如my_site.com. 然后您可以合并以下文件夹下的所有Y文件/var/www/html/matomo。然后您需要创建子域(Y 的虚拟主机)。

使用 Ubuntu 和 Apache 创建虚拟主机:

sudo touch /etc/apache2/sites-available/matomo.my_site.com.conf

然后使用你最喜欢的文本编辑器编辑文件,我将使用nano

sudo nano /etc/apache2/sites-available/matomo.my_site.com.conf

并通过以下代码:

<VirtualHost *:80>
    ServerAdmin admin@my_site.com
    ServerName matomo.my_site.com
    DocumentRoot /var/www/html/matomo/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

更改my_site.com为您的域。

然后你需要启用虚拟主机

sudo a2ensite /etc/apache2/sites-available/matomo.my_site.com.conf

然后重启apache看看结果。

sudo systemctl restart apache2

matomo将在以下 URL matomo.my_site.com 下

如果您不使用 Ubuntu 或 Apache,请告诉我您使用什么来更新我的答案。


推荐阅读