问题描述
我有一个运行我构建的 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 文件夹中的“analytics”子目录,例如 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 页面出现在哪里。
解决方法
您不需要修复 index.php 中的任何内容。分析计数器可以添加到页面的布局(~/themes/mytheme/layout/mylayout.htm)之间
<head>
...
</head>
或
<body>
...
</body>
根据您的仪表指示
,我对 Matomo
没有任何经验,但从问题中我了解到您想将两个软件 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文件。然后您可以使用以下 URLmy_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,请告诉我您使用什么来更新我的答案。
,见https://github.com/octobercms/october/issues/1615。您需要添加要允许访问的文件夹作为 10 月 CMS .htaccess 的排除项,然后还禁用禁止运行除 index.php 之外的任何 PHP 文件的行。
因此将 RewriteEngine On
替换为
RewriteEngine On
# Allow access to Matomo
RewriteRule ^(matomo)($|/) - [L]
然后注释掉 RewriteCond %{REQUEST_FILENAME} \.php$
使其变为 # RewriteCond %{REQUEST_FILENAME} \.php$
。