2007年5月13日 星期日

如何在 joomla 找錯2 --- 常見錯誤

  1. 路徑錯誤 (什麼圖都看不到,版面也怪怪的)

  ------------------------------------------------------------------

  ------------------------------------------------------------------

檢查 joomla安裝目錄\configuration.php 中
註:你的路徑肯定跟我的不一樣,所以你要找出你的正確的路徑

$mosConfig_absolute_path = 'C:/webroot/joomla';
//joomla 安裝目錄的絕對路徑

$mosConfig_cachepath = 'C:/webroot/joomla/cache';
//joomla cache 的絕對路徑

$mosConfig_live_site = 'http://localhost/joomla'; 
//joomla 網站的網址 

另一種常見的路徑錯誤 (安裝元件時)

failed to open stream: No such file or directory

就去找找看那一個檔或是資料夾跑那裏去了,修正路徑後,應該就可以了




  2. 中文顯示亂碼 (但把編碼改成 unicode 後又正常)



檢查 joomla安裝目錄\templates\你的_template\index.php
找尋

<meta http-equiv="Content-Type" content="text/html; <?php
echo _ISO; ?>" />

   
把上面這一行移到 <head> 的下面後存檔

註:這個問題主要是瀏覽器誤用 <title> 的編碼,只要先告訴瀏覽器正確的編碼 _ISO 就好



-------------------------------------------------------------------

另外也有可能是 Apache Default Charset 的問題,虛擬主機比較常會出現這種狀況

你可以在 joomla安裝目錄下,用記事本 (notepad) 寫一個 .htaccess
打入
   
AddDefaultCharset utf-8  

存檔時,記得要在 "存檔類型" 選 "所有檔案"
註:如果你已經有 .htaccess 這個檔,那就直接加在最前面就好


  3. Joomla! RG_EMULATION 設定目前是 `ON` 建議修改 ...



或是



修改 joomla安裝目錄\globals.php
line 24
define( 'RG_EMULATION', 1 );

改成

define( 'RG_EMULATION', 0 );



  4. PHP register_globals 設定目前是 `ON` 建議更改為 `OFF`



如果是自架主機,那修改 php.ini 中的 register_globals 就好

register_globals = Off

如果是虛擬主機 (自架主機也適用),可以修改 .htaccess 檔
在 joomla安裝目錄下,用記事本 (notepad) 寫一個 .htaccess
打入
   
php_value register_globals 0   

存檔時,記得要在 "存檔類型" 選 "所有檔案"



註1:如果你已經有 .htaccess 這個檔,那就直接加在最前面就好
註2:如果你的 PHP 版本 <= 4.2.3,你可以用 ini_set 的方法來解決    註3:如果你的虛擬主機不能用 .htaccess 而且 PHP 版本 > 4.2.3,那就沒辨法




  5. 打錯字、漏打括號、漏打分號

Parse error: syntax error, unexpected T_STRING

這通常都是 PHP 字串多打了一個雙引號或單引號,而又沒有用反斜線 \ 來跳脫


$mosConfig_MetaDesc = 'Joomla - 即時入口網站引擎與內容管理系統, I'm using joomla';

正確應為

$mosConfig_MetaDesc = 'Joomla - 即時入口網站引擎與內容管理系統, I\'m using joomla';

   --------------------------------------

Parse error: syntax error, unexpected T_STRING, expecting ')'

最後的 expecting 可以為 expecting ';', expecting '}'
表示你少打了一個分號 ';' 或括號 ')' 或大括號 '}'
  


6. PHP memory limit 的問題

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 393216 bytes)

如果是自架主機,那修改 php.ini 中的 memory_limit 就好

memory_limit = 16M  

註:memory_limit 的預設值通常為 8M,你可以改高一點

如果是虛擬主機 (自架主機也適用),可以修改 .htaccess 檔
在 joomla安裝目錄下,用記事本 (notepad) 寫一個 .htaccess
打入
   
php_value memory_limit 16M   

存檔時,記得要在 "存檔類型" 選 "所有檔案"
註1:如果你已經有 .htaccess 這個檔,那就直接加在最前面就好
註2:如果你的虛擬主機不能用 .htaccess,可以用 ini_set 的方法來解決


joomla安裝目錄\administrator\index.php
joomla安裝目錄\administrator\index2.php
joomla安裝目錄\administrator\index3.php

每個檔案的
line 23

require_once( '../configuration.php' );

下面加上

ini_set("memory_limit", "16M");  // 20M, 32M, 40M ...

沒有留言: