2011-09-19 20 views
1

我目前正在爲一個客戶端開發一個相當大的項目,他們希望能夠在不同的子域上創建新的軟件實例,並且每個子域都使用它自己的數據庫,他們希望能夠以最自動的方式做到這一點。新isntace創建方式快速概述爲:將文件移動到不同的子域周圍

  1. 一個新的子域是由它們的管理員之一通過進入
  2. 一個新的數據庫是由一個創建thier 123-REG控制面板中創建自己的管理員進入他們的123-reg控制面板
  3. 他們登錄到中心管理面板並填寫表格,然後將該軟件的zip文件複製到新的子域並解壓縮。
  4. 然後腳本使用表單中提供的數據庫信息編輯數據庫連接類。
  5. 然後腳本檢查連接並創建表
  6. 最後,管理數據庫用實例新信息更新。

我遇到的問題是圍繞不同的子域移動文件。例如管理面板在admin.website.com,作爲一個例子,一個新的實例可能位於instance.website.com無論我嘗試什麼,我不能讓一個文件移動到不同的子域......有沒有人有這樣的解決方案?大家很奇怪的目錄結構如下所示:

  • /的public_html /管理/
  • /的public_html /實例/
  • /的public_html/instance_2/

+0

上存在的域託管在同一個盒子? –

+0

是的,他們都在同一臺服務器上。謝謝。 – Rob

回答

1

如果您有適當的訪問權限,您可以使用PHP FTP library通過FTP移動文件嗎?

這意味着如果將來的實例位於不同的服務器上,這並不重要。

+0

我確實快速查看了FTP庫,但在放棄了大約一兩個小時和錯誤後,我不斷收到警告,提示「目錄中沒有文件」無論我用fput/fget函數提供什麼路徑,也似乎沒有將文件從一個目錄複製到另一個目錄的功能。謝謝 – Rob

+0

在我看來,就像ftp_put(http://www.php.net/manual/en/function.ftp-put.php)應該完全按照你的建議做,但我沒有使用它。我不知道一臺機器是否可以通過FTP自己,但我想你應該可以從命令行檢查。如果您可以弄清楚如何在服務器上通過命令行FTP進行傳輸,該命令行會顯示您需要在PHP中使用哪些參數。 – glenatron

+0

我目前無法訪問命令行(我認爲)我以前從未使用過123-reg,並且我沒有訪問其控制面板的權限,因爲所有這些都留給了我的客戶端。謝謝! – Rob

0

Glenatron的想法可能將是你可以去這裏,因爲(我假設在這裏)的唯一途徑您沒有SSH權限。但是,如果ISP允許您修改在面板中創建子域時安裝的骨架目錄結構,那麼您可能很幸運。您可能可以將其指向生產代碼庫並創建一個簡單的PHP腳本,該腳本允許您修改數據庫設置而無需編輯代碼。您也可以在那裏運行數據庫初始化查詢。我知道你想讓它自動設置,但我只是提供可能性的提示。

祝你好運!

0

這爲我工作:

$source = $_SERVER['DOCUMENT_ROOT']) . "/whatever/"; 

$target = str_replace('instance', 'instance_2', 
    $_SERVER['DOCUMENT_ROOT']) . "/whatever/"; 

但兩者具有相同的服務器