2011-11-11 132 views
1

我想在我的共享主機方案上安裝smarty。我已經將smarty文件安裝在我將用於其上的子域中。我試圖定義SMARTY_DIR變量,但我不太確定如何使用我的虛擬主機提供的絕對託管路徑。共享主機上的絕對路徑:安裝Smarty

這裏是我的include路徑(根據的cPanel,在 'PHP設置' 中找到)

:/ usr/lib中/ PHP:在/ usr/local/lib目錄/ PHP

現在,當我將Smarty文件放在子域目錄中,index.php和libs(目錄)位於同一級別。所以我的想法是做這樣的事情:

define('SMARTY_DIR','.:/usr/lib/php:/usr/local/lib/php/libs/'); 
require_once(SMARTY_DIR . 'Smarty.class.php'); 

我是不是這樣做是否正確?我遇到了該文件不存在的明顯錯誤。

任何想法/建議,非常感謝。

回答

1
define('SMARTY_DIR','.:/usr/lib/php:/usr/local/lib/php/libs/'); 

這不是一個路徑,這兩種pathes(由路徑分離器分離,在Linux :,上取勝;,在PHP可用通過恆PATH_SEPARATOR)。 include(_once)require(_once)不支持這一點。

define('SMARTY_DIR','/usr/lib/php:/usr/local/lib/php/libs/'); 
2

便攜性。你可以使用[__DIR__][1]dirname(__FILE__)

你的代碼會是這樣的,假設smarty文件夾與當前腳本處於同一級別。

define('SMARTY_DIR', __DIR__ . '/smarty/'); 
require_once(SMARTY_DIR . 'Smarty.class.php');