【问题标题】:How to setup/access page in subdirectory of separate project for a Laravel/OctoberCMS website?如何在 Laravel/OctoberCMS 网站的单独项目的子目录中设置/访问页面?
【发布时间】:2021-04-29 21:44:01
【问题描述】:

我有一个运行我构建的 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 关注了the instructions,但无济于事。当我尝试访问 my_site.com/matomo 时,我只是从我的网站上获得了一个 404,其中包含我的主题格式。

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

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

现在,对于 Matomo,说明说:

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

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

【问题讨论】:

  • 请分享更多细节,例如。当前的 laravel 域路径是什么(不是真正的域,只是示例)。当前的 Matomo 域路径是什么。最后,您希望 laravel 和 Matomo 的域路径是什么。
  • @MohdAlomar 我添加了更多细节。如果我没有提供有关某事的信息,请告诉我,我会把它放在那里。谢谢!

标签: php html laravel octobercms matomo


【解决方案1】:

我对@9​​87654321@ 没有任何经验,但从问题中我了解到您想安装两个软件 X 作为CMS 和 Y 作为Matomo

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

第一个解决方案:这是一个不好的解决方案,更难的解决方案是编辑/var/www/html/index.php并将其与Y index.php结合起来,如果请求的URL中有matomo。

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

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

  • 如果第一种方式不可行,因为您需要将 X 作为根 URL,例如 my_site.com。然后您可以合并以下文件夹/var/www/html/matomo下的所有Y文件。然后你需要创建子域(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,请告诉我您使用什么来更新我的答案。

【讨论】:

  • 感谢@MohdAlomar,我正在努力创建子域并尝试重新启动apache。但是,当我重新启动它时,我得到AH00526: Syntax error on line 2 of /etc/apache2/sites-enabled/webdock.conf。现在,webdock.conf 是空的。我想我需要在这里添加一些东西才能让它工作?干杯
  • 请运行以下命令进行调试。 1- sudo systemctl status apache2.service -l --no-pager 2- sudo journalctl -u apache2.service --since today --no-pager 3- sudo apachectl configtest
  • 另外你确定 webdock,conf 是空的,运行下面的命令来仔细检查。 1- sudo nano /etc/apache2/sites-available/webdock.conf 2- sudo nano /etc/apache2/sites-enabled/webdock.conf
  • 不确定昨天发生了什么,但在重复这些步骤并跳过 a2ensite 命令后,这有效。感谢您的帮助!
  • 欢迎您。不确定可能是什么问题,但 a2ensite 每个主机一次,因此无需重复。
【解决方案2】:

您不需要修复 index.php 中的任何内容。分析计数器可以添加到页面的布局(~/themes/mytheme/layout/mylayout.htm)中

<head>
...
</head>

<body>
...
</body>

根据仪表的说明

【讨论】:

  • 我被困在分析的实际安装上。我为这个问题添加了更多细节。我仍然需要在我的服务器上设置分析
【解决方案3】:

https://github.com/octobercms/october/issues/1615。您需要将要允许访问的文件夹作为排除项添加到十月 CMS .htaccess,然后还禁用禁止运行除 index.php 以外的任何 PHP 文件的行。

所以将RewriteEngine On替换为

RewriteEngine On

# Allow access to Matomo
RewriteRule ^(matomo)($|/) - [L]

然后注释掉RewriteCond %{REQUEST_FILENAME} \.php$,使其变为# RewriteCond %{REQUEST_FILENAME} \.php$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 2020-10-23
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多