php - 如何在 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 页面是在哪里呈现的。
解决方案
我没有任何经验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,请告诉我您使用什么来更新我的答案。
推荐阅读
- image-processing - FIR Filter for image resampling by non integer factor
- ruby - 您将如何重构此方法以将 ABC 大小减少到 15 以下?
- json - 使用 jq 将 JSON {"k1":"v1","k2":"v2"} 转换为 CSV: v1,v2
- github-api - Github API:如何获取已为 repo 加注星标并克隆它的用户列表
- java - Java - 在使用随机获取文本文件中的行时尝试避免重复
- php - 使用 PHP 在 WordPress 站点中搜索字符串并替换为新字符串
- laravel - 数据透视表中的 detach()
- python-3.x - ReadProcessMemory 无效句柄
- amazon-web-services - AWS S3 Cloudormation 更新堆栈失败
- python - Python:venn3_circles:如何在 Venn 3 圆图中获取交点的值