2012-04-26 55 views
1

我想从一个FuelPHP安装运行多个站点。这背后的主要驱动力是共享模型和数据库配置的能力。来自一个FuelPHP安装的多个站点

我见过一些需要更改FuelPHP目录结构或通过使用模块的建议。

  • 我真的不想搞乱目录结构。

  • 我不认为我完全理解模块如何能够帮助我,但我认为生成的配置会比我需要的更复杂。

我提出的解决方案涉及到位于/ public中的.htaccess文件的简单更改。我根据主机名修改重写规则。每个站点的控制器和视图位于主结构的子目录中。

原始的.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

多个站点的.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{HTTP_HOST} main.loc 
    RewriteRule ^(.*)$ index.php/main/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{HTTP_HOST} admin.loc 
    RewriteRule ^(.*)$ index.php/admin/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{HTTP_HOST} api.loc 
    RewriteRule ^(.*)$ index.php/api/$1 [L] 
</IfModule> 

我的问题是,这是一个可行的解决方案?你有没有预见到我可能遇到的任何陷阱?

+0

这将需要控制器在app/classes/controller的子文件夹中。有了这个设置,最好将main,admin和api作为一个模块,所以你需要命名空间分离。 – WanWizard 2012-04-29 19:10:56

+0

您将不得不考虑您将共享所有应用程序配置以及公开的所有资产。 它可能会给你多个网站,但不是多个加油站应用程序! – WanWizard 2012-04-29 19:12:58

回答

0

我的工作解决方案是一起创建三个FuelPHP应用程序,然后像核心,一些包和明显的模型目录的symlink关键目录。

一个问题是我的FTP客户端忽略了符号链接,所以我不得不在临时服务器上重新创建它们。当我最终使用SSH自动化部署时,这不会成为问题。

相关问题