我正在將Magento從一臺服務器遷移到另一臺服務器。 我創建了local.xml
文件,但Magento保持重定向安裝頁面。Magento:哪個文件檢測到local.xml?
我也有做一些所有者/組的問題做SVN結帳,所以我懷疑Magento無法讀取local.xml
。
問題:腳本的哪個文件/部分執行local.xml
的檢測,所以我可以模擬是否可以訪問相同環境local.xml
?
感謝
我正在將Magento從一臺服務器遷移到另一臺服務器。 我創建了local.xml
文件,但Magento保持重定向安裝頁面。Magento:哪個文件檢測到local.xml?
我也有做一些所有者/組的問題做SVN結帳,所以我懷疑Magento無法讀取local.xml
。
問題:腳本的哪個文件/部分執行local.xml
的檢測,所以我可以模擬是否可以訪問相同環境local.xml
?
感謝
當然,解決您的權限問題是關鍵。所有文件都應該由rwx運行的PHP實例運行的同一用戶擁有。
您可以通過臨時測試:
chmod -R 777 /path/to/my/magento/store/*
還要確保遷移存儲時刷新以下目錄作爲理所當然的事:
./var/cache/*
./var/session/*
要回答你的問題,local.xml中是在./app/Mage.php中讀取的,在下列函數的+640行左右:
public static function isInstalled($options = array())
{
if (self::$_isInstalled === null) {
self::setRoot();
if (is_string($options)) {
$options = array('etc_dir' => $options);
}
$etcDir = 'etc';
if (!empty($options['etc_dir'])) {
$etcDir = $options['etc_dir'];
}
$localConfigFile = self::getRoot() . DS . $etcDir . DS . 'local.xml';
self::$_isInstalled = false;
if (is_readable($localConfigFile)) {
$localConfig = simplexml_load_file($localConfigFile);
date_default_timezone_set('UTC');
if (($date = $localConfig->global->install->date) && strtotime($date)) {
self::$_isInstalled = true;
}
}
}
return self::$_isInstalled;
}
您不需要創建新服務器的任何單獨的「local.xml
」文件。複製舊「local.xml
」到新的Web服務器,然後編輯該文件來更改這些下列變量到新的Web服務器的值: -
host
//新數據庫主機名,如「localhost
」或其他值提供給您的新的Web服務器的數據庫username
//新建數據庫用戶名password
//新建數據庫密碼dbname
//新的數據庫名稱更改上述節點的「local.xml
」文件中的值後,請保存它。
同時刪除完整的「var
」文件夾,然後開始爲遷移的Magento使用新的Web服務器。
希望它有幫助。
謝謝@sonassi。我發現了這個問題。 'simplexml_load_file($ localConfigFile);'返回false。 Simplexml模塊也加載在我的服務器上。找不到解決方案。 – 2012-03-14 01:24:25
找到了。開幕式上缺少問號。 – 2012-03-14 02:07:24