2012-11-23 66 views
3

我想啓用Magento的編譯,但是當我啓用它,我看到遵循錯誤:

修復編譯錯誤的Magento

Warning: include_once(.../includes/src/Mage_Core_functions.php) [function.include-once]: failed to open stream: No such file or directory in .../app/Mage.php on line 36

Warning: include_once() [function.include]: Failed opening '.../includes/src/Mage_Core_functions.php' for inclusion (include_path='/.../includes/src:.:/usr/share/php') in .../app/Mage.php on line 36

Warning: include_once(.../includes/src/Varien_Autoload.php) [function.include-once]: failed to open stream: No such file or directory in /.../app/Mage.php on line 37

Warning: include_once() [function.include]: Failed opening '.../includes/src/Varien_Autoload.php' for inclusion (include_path='.../includes/src:.:/usr/share/php') in .../app/Mage.php on line 37

Fatal error: Class 'Varien_Autoload' not found in .../app/Mage.php on line 53

任何人可以幫助我解決這些問題?我想編譯啓用。在互聯網上,每個關於這個問題的答案都是禁用編譯。我想要啓用編譯。僅供參考我的magento版本是1.7.0.0

+0

http://www.php.net/manual/en/function.set-include-path.php –

回答

10

您是否更改/includes目錄的訪問權?因爲在編譯之後,編譯後的源代碼駐留在/includes/src目錄中!

$ chmod o+w includes includes/config.php 

# if its not work, do following 
$ chmod -R 777 includes/ 

修改: 要關閉編輯模式,打開文件includes/config.php並註釋掉以下行:

define(’COMPILER_INCLUDE_PATH’, dirname(__FILE__).DIRECTORY_SEPARATOR.’src’); 
#define(’COMPILER_COLLECT_PATH’, dirname(__FILE__).DIRECTORY_SEPARATOR.’stat’); 

#define(’COMPILER_INCLUDE_PATH’, dirname(__FILE__).DIRECTORY_SEPARATOR.’src’); 
#define(’COMPILER_COLLECT_PATH’, dirname(__FILE__).DIRECTORY_SEPARATOR.’stat’); 

如果要啓用編譯模式,請轉到管理員部分按「RUN COMPILATION」按鈕。

摘要: 我猜,你就忘詞了編譯過程之前設置目錄權限,因此編譯過程中一直沒有建立編譯源代碼目錄!

備註: 編譯過程可能會令人頭疼。在每次代碼修改時,您應該重新編譯或者相反,您應該在修改或擴展安裝之前禁用編譯。一些擴展是麻煩的。這就是爲什麼這麼多人不想使用這個選項。此外,在Magento v2.0中,編譯過程已經下降,不再可用!

+0

我試過了,但沒有奏效。你有另一個想法嗎? –

+1

Anton,檢查'includes /'目錄。那裏有沒有文件/文件夾?如果沒有任何文件夾,在我看來你有編譯問題。最好的辦法擺脫他們,禁用編譯從'includes/config.php',看修改後的代碼。 –

+0

我有一個包含的stat文件夾,包含的所有文件和文件夾都帶有777 permision,並且我繼續看到錯誤 –

1

停用編譯器,如OğuzÇelikdemir推薦,然後點擊「開始編譯過程」(或類似的東西,這是德語中的「Kompilierungsvorgang starten」)。這啓動了編譯過程,而不是「激活」它。這對我有效。