在服务器上托管多个站点,共享资源

时间:2013-10-31 17:24:47

标签: php codeigniter web hosting

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

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>

现在我考虑过它,它显然不起作用或客户端资产。

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

2 个答案:

答案 0 :(得分:1)

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

复制它们可能看起来很浪费,但除非你有充分的理由,否则我会强烈反对。

如果您希望优化效果,可能还有其他事情可以先尝试。

答案 1 :(得分:0)

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

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

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

Alias /js /var/www/whereyoursharedfolderis/sharedcss