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自動化部署時,這不會成爲問題。

相關問題