安装FAQ

来自MoodleDocs
跳转至:导航、​搜索

這一頁包含人們安裝Moodle時,最常問的一些問題。如果你有遵循安裝說明 但仍遇到困難,那麼這一頁可能對你有幫助。

如果再這一頁找不到你要的答案,那試著到moodle.org 的 使用 Moodle 課程。 從以關鍵字在討論區搜尋開始,說不定你的問題已經曾被討論過。 如果你找不到你要的,那就試著把你的問題挑倒是當的討論區。 - 或許有某個人能夠幫助你。

如果你試過多種方法,仍無法解決問題,且你的moodle是在防火牆(Firewalls)之後運作,或許你應該是著重新設定你的防火牆,以確保它沒有阻礙了必要的功能或需要的溝通。防火牆很少對 Moodle 造成問題,但偶爾會因為設定錯誤,而減損了它的功能。

使用下列表單跳到下列適當的答案上:


當我試著去取用或檢視我上傳的檔案時,我得到"找不到檔案" 的錯誤訊息

例如說您看到: Not Found: The requested URL /moodle/file.php/2/myfile.jpg was not found on this server.

您的網頁伺服器需要被設定成允許腳本名稱之後的 URL 可以直接傳遞給這腳本。在Apache 1上,它通常是開啟的,但是在Apache 2上,預設通常是關閉的。 要開啟它,把這行加到伺服器的 httpd.conf 檔案中,或加到本地目錄的 .htaccess 檔案中 (參見 安裝說明 會有詳細說明):

AcceptPathInfo on

注意,這只對Apache版本2.x有效。

如果您不是用 Apache 2,而仍然有這問題(不太可能), 那您可以透過 Moodle使用替代的解決方式。缺點是 回應速度會稍微便慢,且您無法在 HTM 資源中使用相對連結。

要使用這一替代方法:以管理員身份登入,進入 "設定變項"頁面,並更改 "slasharguments"的設定。 您現在應該能存取您的上傳檔案了。


PHP - 它是否安裝好了,以及我有的是哪一版本?

在您的網站裡建一個新檔,命名為 info.php,裡面輸入下列文字,然後用您的瀏覽器打開它:

<?PHP phpinfo() ?>

如果沒看到什麼,那您就是沒安裝 PHP。請參見安裝文件,您可找到在哪裡可以下載該程式的資訊。


為什麼我的頁面都是空白?

檢查在 config.php 的根目錄(dirroot)變項。您必須使用完整的絕對路徑名稱,例如:

$CFG->dirroot = "d:\inetpub\sites\www.yoursite.com\web\moodle";


使用 Redhat Linux 平台者,請參見: Redhat Linux


我的頁面顯示有嚴重錯誤,例如:call to undefined function: get_string()

如果您看到的錯誤訊息像這樣:

Parse error: parse error, unexpected T_VARIABLE in c:\program files\easyphp\www\moodle\config.php   on line 94
Fatal error: Call to undefined function: get_string() in c:\program   files\easyphp\www\moodle\mod\resource\lib.php on line 11

這可能是您在 config.php 中,留下多餘的分號或引號 (第94行).

另一個理由是,您曾經以一般文書編輯程式,像 Word 來開啟 config.php 檔,然後把它存成 HTML網頁格式,而非純文字檔。


為什麼我一直得到錯誤訊息說:"headers already sent"?

如果您看到的錯誤訊息像這樣:

Warning: Cannot add header information - headers already sent by (output started at   /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php on line 1322
Warning: Cannot add header information - headers already sent by (output started at /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php on line 1323
Warning: Cannot add header information - headers already sent by (output started at /webs/moodle/config.php:87) in /webs/moodle/login/index.php on line 54

您在您的設定檔 config.php 的最後的 ?> 之後,還有空白行或空格。 有些文字編輯器會自己加上這些,例如,Windows系統裡的 Notepad,所以您最好改用其他專門用來編輯程式的文字編輯器, 來完全移除這些空格或空行。(建議到 http://toget.pchome.com.tw/ 下載免費軟體 Notepad++,有中文介面--譯者)


我不斷收到錯誤訊息: Failed opening required '/web/moodle/lib/setup.php'

在您的 config.php 檔中,您在 dirroot 變項上的設定,必須是從您伺服器的硬碟的根目錄開始的完整路徑。

有時候,人們用的徑路只從他們的Web根目錄開始, 或從網頁伺服器根目錄開始的相對路徑,這是不對的。


我在編輯的文字中加上單引號(') 或雙引號("),都會造成錯誤,或多出一個斜線(/)。

引號造成的問題是來自於不正確的"magic quotes" 設定。Moodle 需要做下列設定 (它通常是預設的):

 magic_quotes_gpc = On
 magic_quotes_runtime = Off

更詳細內容,請參見安裝文件中的 網頁伺服器設定 。


我一直得到關於 session_start 的錯誤訊息。

如果您看到的錯誤訊息像這樣

Warning: session_start() [function.session-start]:  open(/tmp\sess_d40f380d37d431fc1516e9a895ad9ce0, O_RDWR) failed: No such file or directory (2) in G:\web\moodle\lib\setup.php on line 123
Warning: session_start() [function.session-start]: open(/tmp\sess_d40f380d37d431fc1516e9a895ad9ce0, O_RDWR) failed: No such file or directory (2) in G:\web\moodle\lib\setup.php on line 123
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at G:\web\moodle\lib\setup.php:1) in G:\web\moodle\lib\setup.php on line 123

... 以上這些都與 PHP 無法在您的硬碟(在目錄/tmp)儲存"session"檔案有關。常見的原因是您的硬碟上根本沒有 /tmp 資料夾。這通常是把 Moodle 安裝在 Windows 上,才會發生。

解決之道是修改 PHP 設定,把這路徑指向一個真正存在的資料夾。您可以打開您的 php.ini 檔,改成:

 session.save_path = C:\temp

或者修改您的 Moodle 的主目錄裡的 .htaccess 檔,改成:

 php_value session.save_path "/home/moodle/sessions"


當我進入管理頁面時,我被告知要把根目錄(dirroot)清空!

如果您在 Moodle 1.0.9 看到錯誤訊息像這樣:

 請修改您在 config.php 的設定:
 您有:
 $CFG->dirroot = "/home/users/fred/public_html/moodle";
 但它應該是:
 $CFG->dirroot = "";


這是您碰巧遇到了在某些伺服器上才會發生的小臭蟲。 問題出在於這錯誤檢查機制,而不是您真正的的路徑。 要修理它,在 admin/index.php 檔案中找出這一行(第66行):

 if ($dirroot != $CFG->dirroot) {

更改它成為這樣:

 if (!empty($dirroot) and $dirroot != $CFG->dirroot) {


我登入,但登入連結沒有改變。我已經登入,並且可以自由瀏覽。

請確定您在 $CFG->wwwroot 的設定上所用的 URLs 和您真正用來進入這網站的一模一樣。


當試著新添加一資源時,我得到錯誤訊息。

假使您的伺服器是使用 Apache,那很可能是您在 config.php 的設定上, $CFG->wwwroot 不同於您實際用來進入網站的 URLs 。您也可以試著在管理的設定上關閉"secureforms"。


在第一次設定的過程中,它沒有要求我建立管理員帳號!

這是在 Moodle 1.0.9版之前一直都有的臭蟲,現在主要程式碼及1.1.版都已經修復。

它沒有影響到所有的人,它只發生在當有人安裝 Moodle 時,它們的瀏覽器中剛好有叫做"user", "admin", 或"teacher"的 cookie,只不過它們是來自其他程式。

最快的處理方法包括:在安裝之前,從您的瀏覽器中刪除那些 cookies;使用不同的瀏覽器;或編輯 moodle/admin/user.php 檔,在靠近上端處插入這幾行:

 unset($user);
 unset($admin);
 unset($teacher);

在執行以上任一種補救處理之後,最好把您的資料庫的資料表放棄掉,並用腳本重新安裝一次。


我完全無法登入- 我一直卡在登入畫面上。

最常見的原因是您自己的電腦 (無是您的 Moodle 伺服器) 裝有防火牆,它會去掉導覽器所需的參照訊息。以下是修復的指令。 Norton 防火牆。

伺服器管理員也可以為每個人來修復這問題,他只要編輯 Moodle 的設定頁,並把變項 "secureforms" 改成 "No"即可。

另一個可能原因是伺服器端沒有把 sessions 設定好。您可以呼叫腳本 http://yourserver/moodle/lib/session-test.php 來加以測試。


我如何備份我的 Moodle 網站?

您最需要作備份的兩樣東西是:您的資料庫和上傳的檔案。Moodle 腳本本身是不需要備份的,因為在必要時,您可以從官方網站上下載最新的版本。

有許多種方式可以做這類的備份。這裡有一個您可以在Unix上執行的小腳本的指令敘述,可用來備份資料庫。(也可以經由 cron 方式,每天執行這類的腳本)。

cd /my/backup/directory
mv moodle-database.sql.gz moodle-database-old.sql.gz
mysqldump -h example.com -u myusername --password=mypassword -C -Q -e -a mydatabasename >  moodle-database.sql
gzip moodle-database.sql

就上傳的檔案而言,您可以使用定期使用 rsync 只拷貝變更過的檔案到另一台主機上:

rsync -auvtz --delete -e ssh mysshusername@example.com:/my/server/directory /my/backup/directory/


為什麼我的 Moodle 網站無法正確顯示日期和時間?

每一種語言需要不同的語言編碼 (稱之為地區編碼),好讓日期能正確顯示。這語言包包含預設的標準編碼 ,但是有時候這些在 Windows 伺服器上不管用。

您可以從以下兩的網頁: 語言編碼 和 國家/區域 編碼,(eg "esp_esp" for spanish)為 Windows系統找到正確的地區編碼

這些新的地區編碼可以輸入到:管理 -> 設定 -> 變數頁,他們可以覆蓋掉現在所用語言包的部分內容。


我的討論區無法送出 Email副本

如果您要從討論區,指派作業,等等自動送出 email,您必須正確地設定 cron。 This same process 也執行很多清理的工作,比如,刪除舊的未確認用戶,没選修課程的舊學生,等等。

基本上您需要設定一程序定期调用 http://yoursite/admin/cron.php 這腳本。請參見 安裝文件裡有關 cron 的章節.

提示: 試著在 Moodle 變項頁使用預設值。把 smtphost 留下空白。 這對大多數用戶都可接受。