【问题标题】:Hosting multiple sites on server, sharing resources在服务器上托管多个站点,共享资源
【发布时间】:2013-11-11 20:08:09
【问题描述】:

我有一个允许多个插件域的主机,我的文件夹结构类似于:

public_html
- site1.com
- site2.ca
- site3.tk
- codeigniter

每个站点的文档根目录当前设置为 /public_html/site1.com、public_html/site2.ca 等...

我在一些网站上使用 CodeIgniter。 public_html 中的 codeigniter 文件夹与我刚刚重命名的名为“system”的文件夹相同。我发现在网站的 PHP 代码中,我可以在 index.php 中找到:

$system_path = '../codeigniter';

这将适用于我的测试本地服务器。我还没有在我的主机上尝试过,但我认为它也应该在那里工作。这似乎是对效率的一个很好的改进。

我现在想做的是拥有同样的效率,但使用 css、js、图像和其他前端资产。天真地,我试着把这样的东西放进去

public_html
- site1.com
- site2.ca
- site3.tk
- codeigniter
- js
- css
- img

在我的页面中,我会有类似的内容:

<script src=/../js/app.js></script>

现在我想起来了,它显然对客户端资产不起作用。

问题是我已经构建了一个让我感到满意的开发环境,并且我想在我的新网站上一次又一次地使用它。我目前正在将所有这些前端资产从旧项目复制到新项目,但它们不会因每个项目而改变。我想知道是否有更好的方法来托管这些静态资产,这样它就不会在每个站点上重复。也许没有,我应该继续复制?

【问题讨论】:

  • 您可以在第二个版本中显示的结构中设置资产的绝对路径。设置资产路径常量或方法的多种方式

标签: php codeigniter web hosting


【解决方案1】:

不确定 css 和 img,但对于 js 资产,我将此行添加到 apache.conf 中的虚拟主机

<VirtualHost *:80>
// usual stuff ...
Alias /js /var/www/whereyourjsfolderis/js

我猜你可能想对常见的 css 和图像文件夹这样做

Alias /js /var/www/whereyoursharedfolderis/sharedcss

【讨论】:

    【解决方案2】:

    我认为以您描述的方式共享资源并不明智,这部分来自经验。如果您将多个站点耦合到一个后端,则意味着当您想要升级其中一个站点时必须升级所有站点。

    复制它们可能看起来很浪费,但除非你有充分的理由,否则我强烈建议不要这样做。

    如果您希望优化性能,您可能可以先尝试其他方法。

    【讨论】:

    • 我没想过升级。我会将 codeigniter 文件夹重命名为 codeigniter-2.1.4 并在它们出现时添加更高版本。我将通过更改 $system_path 来测试每个站点,看看它们是否适用于新版本。
    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    相关资源
    最近更新 更多