安装FAQ:修订间差异

来自MoodleDocs
跳转至:导航、​搜索
(文本替换 - 替换“class="nicetable"”为“class="wikitable"”)
 
(未显示1个用户的2个中间版本)
第1行: 第1行:
  這一頁包含人們 裝Moodle時,最常問的一些問題。如果你有遵循安裝說明 但仍遇到困難,那麼這一頁可能對你有幫助。
{{安装}}
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even">
== 装问题讨论区提问时需提供系统信息 ==


  如果再這一頁找不到你要的答案,那試著到moodle.org 的 使用 Moodle 課程。 從以關鍵字在討論區搜尋開始 說不定你的問題已經曾被討論過。  果你找不到你要的,那就試著把你的問題挑倒是當的討論區。 - 或許有某個人能夠幫助你。
  每当在[http://moodle.org/mod/forum/view.php?id=28 安装问题讨论区]发表提问时,试着提供足够多 系统信息 ,如


如果你試過多種方法,仍無法解決問題,且你的moodle是在防火牆(Firewalls)之後運 ,或許你應該是著重新設定你 防火牆 以確保它沒有阻礙了必要的功能或需要的溝通。防 牆很少對 Moodle 造成問題,但偶爾會因為設定錯誤,而減損了它 功能。
*服务器操 系统名称(版本也有 话更好)
*PHP版本(如,PHP5.3.3)
*数据库类型及版本(如,MySQL5.5.18)
*浏览器及版本(如 ,火 狐,IE8)
*Moodle版本(如,2.7)
*Moodle的 安装类型?(全新安装/升级)
*附上Moodle的config.php文件(请移除密码)
*附上Phpinfo?


 使 用下列表單跳到下列適當 答案上:
  确保对所提问题提供了合理的描述(绝不能是像HELP!或紧急求助!)并且对做了什么或发生了什么提供完整的说明。复制并粘贴准确全面的错误信息。“什么都没有”不是错误症状,即 使 空白页面也是有意义


== PHP——是否已经安装,使 用的 什么版本? ==
== 當我試著去取 或檢視我上傳的檔案時,我得到"找不到檔案"  錯誤訊息==


  例如說您看到: Not Found: The requested URL /moodle/file.php/2/myfile.jpg was not found on this server.
  在Web站点新建一个名为''info.php''的新文件,包含下列代码,并从浏览器访问它: <pre class="php" style="margin-left: 40px"><span style="font-weight: bold"><?PHP</span> <span style="color: #990000">phpinfo</span><span style="color: #009900">(</span><span style="color: #009900">)</span> <span style="font-weight: bold">?></span></pre> 如上述页面什么都没显示,那么说明你的PHP没有安装成功或Web服务器没有配置好还不足以正常处理.php文件。参见安装文档获取如何下载PHP到你电脑上的更多信息。参见[[PHP|phpinfo]]页面获取此页内容的更多细节。


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


AcceptPathInfo on
从Zend而来的intl.dll文件是PHP5.2.8及以上版本的一部分。目的是为了改善PHP页面的国际化,Moodle2.x将其视为安装 进程的一部分。如果是在本机或网络主机上安装Moodle,那么可以从网络上下载最新版本的PHP或升级到最新版本。这时你必须注释掉所需的动态扩展,包 括php_intl.dll扩展。问题自然而然的解决了。如果把Moodle安装在虚拟主机上,那么需要联系虚拟主机服务商来做这些工作。还有一种替代方 案就是解压下载文件后把intl.dll文件复制并粘贴到php/ext文件夹下,intl.dll必须包含如下语句: <pre style="margin-left: 40px">extension=php_intl.dll</pre> 在PHP配置文件php.ini里的动态扩展部分,也可以对错误等级进行设置: <pre style="margin-left: 40px">intl.error_level = E_WARNING </pre> 但这不是至关重要的。


  意, 這只對Apache版本2.x有效
  如果是在Linux上进行安装,可以使用系统包管理器或指定的编译标志: <pre style="margin-left: 40px">* Debian 5.0 (& Ubuntu) use: apt-get install php-intl or apt-get install php5-intl </pre><pre style="margin-left: 40px">* CentOS 5.5 (& RedHat) you should (probably) be using php 5.3 from remi and then use: yum install php-intl</pre> 这 一技术适用于任何需要从Zend升级的动态扩展。随后你可能会想使用php/ext文件夹内的dll文件,可以通过如上的方法做到,小心点,你的版本可能 并不能充分利用扩展,很多新的扩展还会引起 想不到的不稳定性。最好的选择是按部就班的升级 大概每年一次升级PHP就好了


  如果您不 用 Apache 2,而仍然有這問題(不太可能), 那您可以透過 Moodle使用替代 解決方式。缺點是 回應速度會稍微便慢,且您無法在 HTM 資源中使用相對連結。
=== 在php.ini文件中真正需要取消注释的动态扩展有哪些?还有哪些也 需要改变 ? ===


  要使用這 方法:以管理員身份登入 進入 "設定變項"頁面,並更 "slasharguments" 設定。 您現在應該能存取您的上傳檔案了
  假设你已经完全获得了服务器的安装控制权,如果是虚拟主机则另当别论。在php.ini文件里如需对任意 行取消注释仅需删除 码前段的分号“;”。对于Moodle来说 仅需做出一些 变以确保必须 扩展可以使用 他们是:


  
  资源限制 <pre> memory_limit = 128M //所需的最大值,如若是虚拟主机则可能更少。
==PHP - 它是否安裝好了,以及我有的是哪一版本?==
</pre> 数据处理 <pre> post_max_size = 512M //此值允许的最大帖子占用达到512MB,但最好根据你的需求及环境来设置它。
</pre> 路径和目录 <pre> doc_root ="driveletter:\path\to\server\active\web\directory" (e.g. d:\Apache\htdocs or e:\iis\wwwroot )
 及
  extension_dir = "driveletter:\path\to\php\ext" (e.g. d:\php\ext or e:\iis\php\ext)
</pre> 文件上传 <pre> upload_max_filesize = 512M (与post_max_size不同,其为设置文件上传大小)
</pre> 动态扩展 ('''只在Windows上需要''')


  在您的網站裡建一個新檔,命名為 info.php,裡面輸入下列文字,然後用您的瀏覽器打開它:
{| class="wikitable"
|-
! PHP 5.3.x
|-
| <pre>extension=php_curl.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_intl.dll
extension=php_imap.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll &nbsp;; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite.dll
extension=php_xmlrpc.dll
  extension=php_zip.dll
</pre>
|}


<?PHP phpinfo() ?>
上述编辑的动态扩展可以覆盖一系列的选择,当然也还有其他可能,但所列之项都是最常用到的。除非需求较为特殊,没有理由背离这些设置,如若真的需要其他设置,确保你知道改变他们的后果。这些扩展可以使Moodle成功安装并运行其他PHP程序。


  如果沒看到什麼 那您就 沒安裝 PHP 請參見安裝文件 您可找到 哪裡可 下載該程式 資訊
  其中一个明显的例子就是Oracle扩展没有在这显示 但Oracle仍可作为Moodle的数据库使用。另外一个经常另自己惹祸上身的 使用 “Magic quotes” 真的应该关闭Magic quotes 他们只是为了 初期介绍PHP的使用以使缺乏经验的人练习编辑脚本(阅读能力差, 次充好或狡猾的人)。如若编辑的脚本质量仍然很差,那么 他们真的应该注意他们自己并删除他们 脚本了


== Moodle 配置文件 什么?放在哪里 ? ==
== 為什麼我 頁面都 空白 ?==


  檢查在 config.php 根目錄(dirroot)變項 您必須使用完整 絕對路徑名稱 例如:
  存放在Moodle文件夹下的config.php 文件存储了Moodle 配置设置选项 这个文件是在安装过程中创建 。如若出现问题或安装过程不能创建文件 可以试着通过[[配置文件]]文档手动创建。


$CFG->dirroot = "d:\inetpub\sites\www.yoursite.com\web\moodle";
== 下载Moodle之前的版本 ==


  
  旧版本的Moodle也可以下载,当然不是在[http://download.moodle.org/ 标准Moodle下载页面]里。旧版的位置在[http://download.moodle.org/stable [ http://download.moodle.org/stable[]版本号] (参见下面的链接。)


  使用 Redhat Linux 平台者,請參見: Redhat Linux
{| style="width:75%; height:75px" border="0"
|-
| 2.0 Versions
| [http://download.moodle.org/stable19 1.9 Versions]
| [http://download.moodle.org/stable18 1.8 Versions]
|-
| [http://download.moodle.org/stable17 1.7 Versions]
| [http://download.moodle.org/stable16 1.6 Versions]
| [http://download.moodle.org/stable15/ 1.5 Versions]
|-
| [http://download.moodle.org/stable14 1.4 Versions]
| [http://download.moodle.org/stable13 1.3 Versions]
| &nbsp;
|}


  
  使用wget、lynx或curl访问[http://download.moodle.org/stable [ http://download.moodle.org/stable[]版本号]即可下载旧版。
==我的頁面顯示有嚴重錯誤,例如:call to undefined function: get_string()==


 如 果您 看到的 錯誤訊息像這樣:
  :为下载Moodle 1.5,访问[http://download.moodle.org/stable15 http://download.moodle.org/stable15]。点开之后会 看到 展示文件的目录结构。根据所需按平常一样下载就可以了——如若是需要1.5版 最新升级版,则需将页面滚动到列表最后面并下载“最新版”的文件。


  Parse error: parse error, unexpected T_VARIABLE in c:\program files\easyphp\www\moodle\config.php  on line 94
*'''Windows软件包''': 在[http://download.moodle.org/windows/ 为Windows设计的Moodle包]里不能下载的版本可以通过以下链接下载:
  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行).
:[http://download.moodle.org/windows/MoodleWindowsInstaller-latest- [version_number].zip [http://download.moodle.org/windows/MoodleWindowsInstaller-latest- http://download.moodle.org/windows/MoodleWindowsInstaller-latest-][versio...]


  另一個理由是,您曾經 以一 般文書編輯程式,像 Word 來開啟 config.php 檔,然後把它存成 HTML網頁格式,而非純文字檔。
*'''Mac软件包''': 在[http://download.moodle.org/macosx/ 为Mac设计的Moodle包]里不能下载的版本可以通过 下链接中的其中 个(取决于需要Intel包还是PPC包)进行下载:


:[http://download.moodle.org/macosx/Moodle4Mac-Intel- [version_number].dmg [http://download.moodle.org/macosx/Moodle4Mac-Intel- http://download.moodle.org/macosx/Moodle4Mac-Intel-][version_number].dmg]
==為什麼我一直得到錯誤訊息說:"headers already sent"?==
:[http://download.moodle.org/macosx/Moodle4Mac-PPC- [version_number http://download.moodle.org/macosx/Moodle4Mac-PPC-[version_number]}.dmg


 如 果您看到 錯誤訊息像這樣:
== 何启用或检查PHP 错误日志? ==


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
PHP可以设置为使用多种不同的方式记录错误:其中一个牵扯到了php.ini文件,另一个则涉及到ini_set命令。详情参见[http://docs.moodle.org/dev/PHP_error_logs PHP错误日志]文档。


  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
  尝试着完成安装Moodle时如若出现这样的提示则很可能意味着安装没有完成。完整的安装过程会在完成之前要求填写管理员资料并为站点命名。检查错 误日志。删除数据库如何重新开始安装。如果之前使用的是基于Web的安装方式,那么这次就试一下命令行的安装方式。还需要再一次确定的是你的电脑是否满足 安装Moodle的最低需求?


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


  
  如若让Moodle可以从如论坛、任务等活动中自动发送邮件则'' 必须''对Cron进行合理的设置。这一过程同样扮演着清理任务,如删除老旧的未确认的用户,未注册过的学生等等。请参阅[[Cron|Cron说明]]。
==我不斷收到錯誤訊息: Failed opening required '/web/moodle/lib/setup.php'==


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


時候 人們用 徑路只從他們的Web根目錄開始,  從網頁伺 服器 根目錄開始的相對路徑 這是不對 的。
*试着采用默认设置:''设置>网站管理>插件>消息输出>邮件''。一般都会正常工作。除非……
*如若在Windows服务器上必须在上述设置页面提供SMTP服务器地址(不像Unix,Windows没 内置的邮件服务器)。
*确保''设置>网站管理>插件>消息输出>邮件''里的''allowuseremailcharset''参数是“No” 除非你真 自己在干嘛。把这个参数设为“Yes”在很多Moodle版本中会引起问题。
*检查防火墙 询问网络管理员。很多邮件 很大程度上被锁定了 需要足够 权限通过他们来发送邮件


  
== 不能登录了——我卡 了登录页面 ==
我在 編輯的文字中加上單引號(') 或雙引號("),都會造成錯誤,或多出一個斜線(/)。


  引號造成 問題是來自於 不正 確的"magic quotes" 設定。Moodle 需要做下列設定 (它通 是預設的):
  如果看到像这样 提示“你的会话已过期,请重新登录”或“检测到服务器错误影响了你的登录会话,请重新登录或重启浏览器后再试”,这些有可能会使你卡在登录界面, 正常 登录。


  magic_quotes_gpc = On
下面是致使不能登录可能的原因及应采取的措施(排序不分先后):
  magic_quotes_runtime = Off


更詳細內容 請參見安裝 文件 網頁伺 服器
*首先检查主管理员账号(应该是手工账号)是否有问题。如若用户使用的是外部验证方法(如,LDAP),那么有可能是这个问题。隔离故障并在进一步修复错误之前确保这真的是所要登录的Moodle站点。
*检查硬盘是不是没有剩余空间了,如若是虚拟主机则需检查是不是没有了剩余硬盘空间配额了。没有可用空间则会阻止会话的创建 任何人都不能正常登录。
*仔细检查数据目录“moodledata”的权限。Web服务器需要可写权限以编辑数据目录内的会话子目录。
*自己的电脑(非Moodle服务器)防火墙有可能会<span style="background-color:#ff0000">从浏览器剥离引荐信息</span>(stripping referrer information from the browser)。详情参见修复[http://service1.symantec.com/SUPPORT/nip.nsf/46f26a2d6dafb0a788256bc7005c3fa3/b9b47ad7eddd343b88256c6b006a85a8?OpenDocument&src=bar_sch_nam Norton防火墙产品]的说明文档。
*试着删除数据目录里的会话 文件 夹(当前登录到系统的任何用户都会被踢下线)。
*试着删除电脑上 缓存或(并)使用其他浏览器或换台电脑再试一下。
*在''设置>网站管理> 务器>会话处理''页面试着对“缓存前置”设置前缀。当然也可以通过config.php内的<code>$CFG->sessioncookie='something'</code>进行设置参数前缀。如果是在同一浏览 访问数个Moodle站点是非常有用的。
*确保没有移除或改变config.php内的[[密码Salt]]值。如果创建密码时使用了SALT,那么config.php内的正确SALT是确保密码可以继续正常工作的前提。如果是在执行升级后却忘了传送SALT值时可以通过重建config.php以轻松地解决这个问题。
*在Moodle文件夹(或父文件夹)内有没有名为.htaccess的文件。如果有的话,是否是那儿的内容出问题了(奇怪的重 向,访问限制等等)?
*检查数据库表mdl_config的'''mnet_localhost_id'''值。正常的话应该是“1”,但是必须与记录用户表mdl_user的'''mnet_hostid'''相匹配以使用户是被认可的。在对站点进行升级或迁移时有可能会被不合逻辑地变更。
*检查config.php文件——'''不'''应该在代码最后面还有任何空格/新行。
*最后还需要确认的是用户名或密码是正确的吧


  
  如果仍然不能登录,参见[[不能登录]]文档。当然'''也可以'''试着改 下管理员的密码。假装你已经遗忘了管理员 密码——参见[[管理FAQ]]
==我 直得到關於 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
  确保config.php内的<code>$CFG->wwwroot设置与想要登录的站点URL是一致的。</code>


  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
  例如:没有找到:访问的URL/moodle/file.php/2/myfile.jpg没有在服务器上找到。


...  上這些都與 PHP 無法在您 硬碟(在目錄/tmp)儲存"session"檔案有關。常見的原因 硬碟上根本沒有 /tmp 資料夾 常是把 Moodle  裝在 Windows ,才會發生
Web服务器需要配置成允许脚本名称后的部分URL可 直接访问脚本。Apache 1是启用 ,而Apache 2 禁用 的。 可以 过添加如下代码到''httpd.conf''文件或本地服务器的''.htacess''文件(参见[[ 装Moodle]]获取更多细节): <pre style="margin-left: 40px">'''AcceptPathInfo''' on</pre> 注意,此方法仅适用于Apache 2.x以 版本


解決之道是修改 PHP 設定,把這路徑指向一個真正存在 資料夾 您可以打開您的 php.ini 檔,改成:
IIS 7服务器需要其他特殊 配置,IIS 6则不支持。参见[[IIS]]文档获取更多细节。


  session.save_path = C:\temp
如若不能正常配置,那么也可以使用其他的替代方案。主要的缺点就是SCORM课程包不能用了,一些Adobe Flash和Java小程序也不能用了。


  或者修 Moodle 的主目錄裡 的 .htaccess :
  为使用这种替代方法,需要 变''斜线参数''(''slasharguments'') 值方可使用。Moodle 1.7以下 版本需要在''管理>配置>[http://nise.org.cn/drupal/cn/参数 参数]''这设置。对于之后的版本 则需要在''网站管理>服务器>HTTP''进行设置。设置完 之后,现在就可以上传文件了。


  php_value session.save_path "/home/moodle/sessions"
'''另请参阅''':


  
*使用Moodle讨论区中的[http://moodle.org/mod/forum/discuss.php?d=145422 疑难解答指导方案——404错误]讨论。
==當我進入管理頁面時,我被告知要把根目錄(dirroot)清空!==


  如果您在 Moodle 1.0.9 看到錯誤訊息像這樣:
== 为什么所有的页面都是空白 ==
 
  請修改您在 config.php  設定:
  您有:
  $CFG->dirroot = "/home/users/fred/public_html/moodle";
  但它應該是:
  $CFG->dirroot = "";


检查''config.php''内的dirroot值。必须使用完整的、绝对路径名,如: <pre class="php" style="margin-left: 40px"><span style="color: #000088">$CFG</span><span style="color: #339933">-></span><span style="color: #004000">dirroot</span> <span style="color: #339933">=</span> <span style="color: #0000ff">"/var/www/moodle"</span><span style="color: #339933">;</span></pre> 另一个导致这种问题的原因是PHP没有配置好以支持MySQL(或任何其他所用数据库)。若是在RedHat或OpenBSD上安装常会出现这种问题。在这种情况下,通常会产生错误,但又因为系统是默认不显示错误的,致使浏览器上的所有页面都是空白的。参见[[安装FAQ#如何启用或检查PHP的错误日志?|如何启用并检查PHP错误日志]]以启用PHP错误显示。


  這是您碰巧遇到 在某些伺服器上才會發生的小臭蟲。 問題出在於這錯誤檢 機制,而不 您真正 的路徑。 要修理它 ,在 admin/index.php 檔案中找出這一 行( 第66行):
  了查 看是否 数据库导致 问题 可以 ''config.php''文件里的第二 插入如下代码: <pre class="php" style="margin-left: 40px"><span style="color: #990000">phpinfo</span><span style="color: #009900">(</span><span style="color: #009900">)</span><span style="color: #339933">;</span></pre> 然后刷新页面。仔细检查输出内容以查看所选数据库是否被支持。如果不支持所选数据库的话,寻找丢失了什么文件吧。


  if ($dirroot != $CFG->dirroot) {
== 为什么个别页面是空白的或不完整的? ==


更改它成為這樣:
*'''检查Web服务器日志文件!!'''


  if (!empty($dirroot) and $dirroot != $CFG->dirroot) {
:如果个别页面是空白的或不完整(如不显示页面底部(footer) ),在做任何事之前请先打开[[调试|调试模式]]并[[安装FAQ#如何启用或检查PHP的错误日志?|检查PHP错误日志]]。在确定了PHP错误记录工作是正常运行的之后,重现这个错误。然后立即检查日志文件最后的一部分。希望可以在文件末尾部分找到PHP的错误信息。这样或许可以直接解决问题,或至少更为容易得在讨论区诊断问题。<br/>


*如果你正在'''对Moodle进行版本升级''',检查一下旧版本有没有安装非标准的版块或模块。如果有的话,通过管理设置界面移除任何非标准的版块或模块,然后重启安装进程。然而,还需要确定的是,课程所必须的插件不能删除,必须包含在内。在编辑模式打开的情况下此种问题尤为常见。
==我登入 但登入連結沒有改變 我已經登入 並且 可以 自由瀏覽 ==
*如若'''不能看到任何版块''' 打开编辑模式并移除此页新添加的任何版块,然后刷新该页面。
*在'''选择语言'''之后可能会立即看到这个错误 安装过程的这一阶段,Moodle需要连接网络以下载语言包 所以需要通过浏览器检查电脑是否 可以 访问网络。还需要检查的是PHP设置是否满足[[安装Moodle#要求|Moodle需求]]页面所提要求


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


*使用Moodle论坛内讨论[http://moodle.org/mod/forum/discuss.php?d=97734 PHP配置错误]的帖子
==當試著新添加一資源時,我得到錯誤訊息。==


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


  
  有时 设置数据库表时安装会被挂起,这时浏览器页面只会显示 半,而其他输出内容都被移除了。或许可以看到截取MySQL 语句或看到“继续滚动”的链接但是看不到“继续”的按钮。
== 次設定 過程中,它沒有要求我建立管理員帳號!==


  這是在 Moodle 1.0.9版之前一直都有 臭蟲 現在主要程式碼及1.1.版都已經修復。
  获取更多解决方案请参见[[意想不到 安装停滞]]文档 其中涉及到的有:


它沒有影響到所有的人,它只發生在當有人安裝 Moodle 時,它們的瀏覽器中剛好有叫做"user", "admin", 或"teacher"的 cookie,只不過它們是來 其他程式。
*检查MySQL限额
*检查.htacess文件
*代码 定义问题
*检查内存限制
*逐步升级
*修复fopen函数


  最快的處理方法包括:在安裝之前,從您的瀏覽器中刪除那些 cookies;使用 瀏覽器;或編輯 moodle/admin/user.php 檔,在靠近 端處插入這幾行:
== 为什么 能给我 资料 传新图片? ==


  unset($user);
如果你不能在用户资料页面上看到可以让你上传图片的地方,那么通常可能是如下原因之一:
  unset($admin);
  unset($teacher);


執行 上任一種補救處 之後 最好把您 資料表放棄掉 並用腳本重新安裝一次
*你正 使用的角色与之相关联的权限不允许其更改用户资料图。
*没有安装GD或安装了却没启用。确保'''GD在PHP安装过程中已经安装'''。可 通过访问''网站管 >服务器>PHP信息''并搜寻GD版本设置以确认GD安装和启用的信息。每次访问这个页面时 设置都是自动选择 。如果GD版本是1或者2那么一切都将正常。保存配置页然后访问用户资 页。
*GD已经安装了,但从某种意义上来说却是损坏 。例如 参见[http://moodle.org/mod/forum/discuss.php?d=44271#p386194 配置文件出现空行或空格的讨论]


GD是 个可以处理图像的知识库。例如,系统一切正常的时候, 传一个图像后,GD对其进行压缩并产生2个缩略图,一个是100x100像素的,另一个是35x35像素的
==我完全無法登入- 我 直卡在登入畫面 上。==


  最常見的原因是您自己的電腦 (無是您的 Moodle 伺服器) 裝 防火牆 它會去掉導覽器所 的參照訊息。以下是修復的指令。 Norton 防火牆
  如若Moodle认为GD没 安装 那么就 要'''安装GD库'''


伺服器管理員也可 為每個人來修復這問題,他 要編輯 Moodle  設定頁,並把變項 "secureforms" 改成 "No" 即可。
*Unix上需要按照如下代码 对PHP进行重编译:
**<pre>./configure --with-apxs=/usr/local/apache/bin/apxs --with-xml --with-gd
--with-jpeg-dir=/usr/local --with-png-dir=/usr --with-ttf --enable-gd-native-ttf
--enable-magic-quotes --with-mysql --enable-sockets --enable-track-vars
--enable-versioning --with-zlib</pre>
*Windows上通常 需编辑php.ini文件以打开扩展即可使用GD。移除扩展php_gd2.dll前 分号 即可 ——首先需要确认这个文件 缺失存在于PHP扩展文件夹内(在php.ini文件里搜索扩展目录(extension_dir)以判断其在硬盘什么位置) 应该可以找到如下代码:
**extension=php_gd2.dll


另一個 能原因是伺服器端沒有把 sessions 設定好 您可以呼叫腳本 http://yourserver/moodle/lib/session-test.php 來加以測試。
:Windows用户 通过[[安装说明]]文档获取更多帮助 <br/>


*( 果需要的话)记得'''重启浏览器''',对PHP配置作出任 改变之后重新访问配置页面使得可以使用正确的GD版本。
==我 如何 備份我的 Moodle 網站?==


  您最需要作備份的兩樣東西是:您的資 庫和上傳 檔案。Moodle 腳本本身是不需要備份的,因為在必要時,您可 從官方網站上下載最新的版本
'''另请参阅''':访问使用Moodle论坛中讨论[http://moodle.org/mod/forum/discuss.php?d=44271 图片] 帖子 获取额外信息


  有許多種方式可以做這類的備份。這裡有一個您可以在Unix上執行的小腳本的指令敘述,可用來備份資料庫。(也可以經由 cron 方式,每天執行這類的腳本)。
== 为什么我的Moodle不能正确地显示日期和时间? ==


  cd /my/backup/directory
  每一种语言都需要特殊的语言代码(通常称为'''locale'''代码)以使日期可以正确地显示。语言包含有默认的标准代码,但是有时在Windows服务器上不能正常运行。


  mv moodle-database.sql.gz moodle-database-old.sql.gz
  可以在如下2个页面找到Windows用的locale代码:[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp 语言代码]和[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp 国家/地区]代码(如,“esp_esp”代表西班牙)


  mysqldump -h example.com -u myusername --password=mypassword -C -Q -e -a mydatabasename > moodle-database.sql
  新的locale代码可以通过''管理> 配置>[[参数]]''页面进行输入,如果输入新的语言代码则会覆盖掉当前选择的语言包。


  gzip moodle-database.sql
== 如何卸载Moodle? ==


傳的檔案而言,您 可以 使用定期使用 rsync 只拷貝變更過的檔案到另一台主機上:
'''虚拟主机提供商/手动安装''':如果Moodle是手动安装或安装在虚拟主机 上可以 根据如下步骤:


rsync -auvtz --delete -e ssh mysshusername@example.com:/my/server/directory /my/backup/directory/
*使用mysql命令行删除数据库(或使用mysql客户端删除数据库,如,phpmyadmin):


<pre style="margin-left: 40px">sql>DROP DATABASE moodle;</pre>
==為什麼我的 Moodle 網站無法正確顯示日期和時間?==


每一種語言需要不同 語言編碼 (稱之為地區編碼),好讓日期能正確顯示。這語言包包含預設 標準編碼 ,但是有時候這些在 Windows 伺服器上不管用
:上述删除数据库 例句中用你安装Moodle时创建 数据库名称代替"moodle"


您可以從以下兩 網頁: 語言編碼 和 國家/區域 編碼 (eg "esp_esp" for spanish)為 Windows系統找到正確的地區編碼
*删除数据目录moodledata。如果你或是你 用户上传过资料的话 需要在删除前备份
*删除Moodle目录本身。这将会删除掉所有的PHP脚本文件。


這些新的地區編碼可以輸入到 管理 -> 設定 -> 變數頁 他們可 覆蓋掉現在所用語言包的部分內容。
'''Windows上通过XAMPP安装''' 如果在Windows上安装时是用的XAMPP软件包 根据 下步骤卸载Moodle:


*打开cmd.exe,指向安装文件 目录:
==我 討論區無法送出 Email副本==


如果您要從討論區,指派作業,等等自動送出 email,您必須正確地設定 cron。 This same process 也執行很多清理的工作,比如,刪除舊的未確認用戶,没選修課程的舊學生,等等。
<pre style="margin-left: 40px">server/mysql/bin</pre>


基本上您需要設定一程序定期调 http://yoursite/admin/cron.php 這腳本。請參見 安裝文件裡有關 cron  章節.
*输入如下命令, 数据库用户名代替USERNAME(默认是“root”),用你的数据库名代替DATABASE(默认是“moodle”):


 提 試著在 Moodle 變項頁 使用 預設 值。把 smtphost 空白 。  這對大 戶都 接受
<pre style="margin-left: 40px">mysqladmin.exe -u USERNAME -p drop DATABASE</pre>
 
*根据提示输入数据库密码(默认为“”【空】)。
*输入“y”以确认删除数据库。
*删除数据目录moodledata。如果你或是你的用户上传过资料的话,需要在删除前备份
*删除Moodle目录本身。这将会删除掉所有的PHP脚本文件。
 
== 迁移Moodle到一个新的站点或服务器 ==
 
迁移Moodle意味着必须把当前的安装程序移动到另一个服务器,IP地址或DNS条目也有可能需要变更。变更IP需要将config.php文件 内的$CFG->wwwroot值变更为新服务器的地址。另一个还必须要变更的存储在数据库备份文件内绝对链接(在新服务器上恢复文件之前进行), 可以使用admin/replace.php脚本进行变更,或者使用文本编辑器或带有“搜索与替换”的工具,如,sed。详情参见[[迁移Moodle]]文档。
 
== 安装完成之后可以在服务器正常显示,为什么换台机器,格式或图片就不见了? ==
 
安装说明文档里,“webroot”的建议设置是“localhost”。如果你只是想在本地做一些测试的话,这完全没问题。如若不是这样的话,你还想让Moodle可以从局域网内的另一台电脑访问或从网络上访问,还需要作出一些改变:
 
*本地测试的话,webroot设置为“localhost”是没问题的(config.php文件内的$CFG->wwwroot)。
*如果想让局域网(LAN)内其他电脑访问Moodle,那么web root就必须得使用主机的私有IP地址(如,192.168.1.2/moodle),或使用主机的网络名称 (如,network_name_of_serving_machine/moodle)。根据局域网设置,最好是把web root设置为主机电脑的网络名称而不是时刻都在发生变化的(私有)IP地址。如果你不想使用网络名称,那么可告诉你的网管为主机申请一个永久的IP地 址。
*最后,如果需要在互联网上进行测试安装成功,那么web root必须要使用域名或永久(公开)的“IP/moodle”地址。如何同时处理这两种类型的访问,参见<span class="external text">[[地址伪装]]。</span>
 
== 如何变更最大上传文件大小? ==
 
有多处地方可以变更最大文件上传大小。第一个地方是查看管理员版块——''安全>网站策略'',然后查找“最大上传文件大小”。旧版本中称其为“maxbyte”参数(在''管理>参数''内)。教师可以通过设置[[课程设置#最大上传大小|课程管理版块]]设置最大文件大小。
 
如若上述方法不能 供足够大的数值,那么就需要从服务器层面来变更它了。通常是在php.ini文件里(访问''网站管理>服务器>PHP信息''然后查验设置的位置)。查找'''upload_max_filesize'''和'''post_max_size''',同时设置他们到所需的大小(如,64MB)。设置完成后需要重启Web服务器以使变更生效——如,Linux——'''/etc/init.d/apache2 force-reload'''。查验文档下步该怎么做或直接重启服务器即可。
 
更多帮助信息请参见:
 
*[[管理FAQ#上传文件限制是如何工作的?|管理FAQ#上传文件限制是如何工作的]]
*[http://docs.moodle.org/27/en/Installing_Moodle#Recheck_PHP_settings 安装Moodle#复查PHP设置](<span style="background-color:#ff0000">无效连接</span>)
*[http://docs.moodle.org/27/en/Installing_Moodle#Using_a_.htaccess_file_for_webserver_and_PHP_settings 安装Moodle# 使用.htaccess文件设置服务器及PHP](<span style="background-color:#ff0000">无效连接</span>)
*[[站点策略#最大上传文件大小]]
*论坛帖子: [http://moodle.org/mod/forum/discuss.php?d=63840#287960 http://moodle.org/mod/forum/discuss.php?d=63840#287960] 和[http://moodle.org/mod/forum/discuss.php?d=93882#p414650 http://moodle.org/mod/forum/discuss.php?d=93882#p414650]
 
== Moodle声称处理PHP浮点数时不兼容 ==
 
这种问题的征状是指在安装或升级Moodle时发生的,得到消息“处理PHP浮点数时检测到意外的问题”。
 
[http://moodle.org/mod/forum/discuss.php?d=114945 此论坛版块]和[http://tracker.moodle.org/browse/MDL-18253 MDL-18253]有此问题更多信息。简而言之,这种问题不会发生,如若遇到这种问题,可以发帖求助,发帖时请附上准确的PHP版本、系统等信息。这样就可以帮助我们找出解决此问题的方法。
 
安装最新版的PHP也许可以解决此类问题。如果是从源代码编译PHP,改变编译选项或许可行。然而,我们确实不知道出现这种问题的根本原因。如若你的方法有效,也请转告给我们。
 
更新:我们猜测引起问题的原因有可能是[http://au2.php.net/manual/en/ini.core.php#ini.precision php.ini文件内精度(precision)的设置]问题。安装PHP后,此 默认为14 至少有一台出现此问题的服务器已经将此值改为更小。所以,如若遇到这个问题,试着 如下代码——ini_set('precision', 14);——添加到config.php,如果成功的话,请在[http://tracker.moodle.org/browse/MDL-18253 MDL-18253]里汇报。
 
== 升级Moodle时,Moodle认为MySQL不是UTF8编码,但我可以确认数据库是UTF8编码 ==
 
MySQL的UTF8检测已经在Moodle2.5就修复了,一些错误的数据库配置之前以不兼容报告过了。
 
需要注意的是仅仅转换数据库内的字符集和排序规则是不够的,需要对每个数据库表中的文本列进行修复!
 
进行 一步之前需要确保已经理解了字符编码(文本如何存储的)与排序规则(比较文本字符串的规则)的不同。排序规则不会引起这种错误,但他们本身会有一堆问题。
 
参见[[转换MySQL到UTF8]]
 
== 如何在没有重复基础代码的情况下运行 个Moodle实例? ==
 
参见[http://docs.moodle.org/27/en/User:Martin_Langhoff Martin Langhoff]所写详尽描述的[http://moodle.org/mod/forum/discuss.php?d=13211 帖子]。
 
== 什么是FreeTDS,如何在安装时使用它? ==
 
[[为PHP安装MSSQL|FreeTDS]]是 开源的表格式数据流实施方法,用于Microsoft SQL Server和Sybase数据库。不幸的是,Microsoft服务器通常不接受TDS 5.0的连接。FreeTDS允许Unix/Linux的应 程序与其他数据库产品会话,使其可以成功地在不同系统之间导入、导出数据。
 
== 如何安装插件? ==
 
请参阅[[安装附加组件|安装插件]]文档。
 
== 由于插件概览页面的插件启用图标不 点击致使不能启用插件 ==
 
插件概览页面内的眼睛“睁开”或“闭上”的图标仅指这个插件是启用的还是禁用的。不能通过这个页面进行编辑。如需启用插件,应该访问管理插件类型的页面,如''设置>网站管理>插件>库>管理库''或''设置>网站管理>插件>活动模块>管理活动''
 
== 另请参阅 ==
 
*[[错误FAQ]]
*使用Moodle内的[http://moodle.org/mod/forum/view.php?id=28 安装问题讨论区]
*[http://nise.org.cn/drupal/cn/Moolde2.0初期的管理FAQ Moolde2.0初期的管理FAQ]
 
在共享的虚拟主机上安装Moodle:
 
*[[查找并选择一个虚拟主机]]
*[[在SmarterASP.NET上安装Moodle]]
</div></div></div>

2021年8月10日 (二) 15:22的最新版本

在安装问题讨论区提问时需提供系统信息

每当在安装问题讨论区发表提问时,试着提供足够多的系统信息,如:

  • 服务器操作系统名称(版本也有的话更好)
  • PHP版本(如,PHP5.3.3)
  • 数据库类型及版本(如,MySQL5.5.18)
  • 浏览器及版本(如,火狐,IE8)
  • Moodle版本(如,2.7)
  • Moodle的安装类型?(全新安装/升级)
  • 附上Moodle的config.php文件(请移除密码)
  • 附上Phpinfo?

确保对所提问题提供了合理的描述(绝不能是像HELP!或紧急求助!)并且对做了什么或发生了什么提供完整的说明。复制并粘贴准确全面的错误信息。“什么都没有”不是错误症状,即使空白页面也是有意义的。

PHP——是否已经安装,使用的什么版本?

在Web站点新建一个名为info.php的新文件,包含下列代码,并从浏览器访问它:
<span style="font-weight: bold"><?PHP</span> <span style="color: #990000">phpinfo</span><span style="color: #009900">(</span><span style="color: #009900">)</span> <span style="font-weight: bold">?></span>
如上述页面什么都没显示,那么说明你的PHP没有安装成功或Web服务器没有配置好还不足以正常处理.php文件。参见安装文档获取如何下载PHP到你电脑上的更多信息。参见phpinfo页面获取此页内容的更多细节。

有人告诉我在安装Moodle2.x时需要用到PHP插件intl

从Zend而来的intl.dll文件是PHP5.2.8及以上版本的一部分。目的是为了改善PHP页面的国际化,Moodle2.x将其视为安装 进程的一部分。如果是在本机或网络主机上安装Moodle,那么可以从网络上下载最新版本的PHP或升级到最新版本。这时你必须注释掉所需的动态扩展,包 括php_intl.dll扩展。问题自然而然的解决了。如果把Moodle安装在虚拟主机上,那么需要联系虚拟主机服务商来做这些工作。还有一种替代方 案就是解压下载文件后把intl.dll文件复制并粘贴到php/ext文件夹下,intl.dll必须包含如下语句:
extension=php_intl.dll
在PHP配置文件php.ini里的动态扩展部分,也可以对错误等级进行设置:
intl.error_level = E_WARNING 
但这不是至关重要的。 如果是在Linux上进行安装,可以使用系统包管理器或指定的编译标志:
* Debian 5.0 (& Ubuntu) use: apt-get install php-intl or apt-get install php5-intl 
* CentOS 5.5 (& RedHat) you should (probably) be using php 5.3 from remi and then use: yum install php-intl
这 一技术适用于任何需要从Zend升级的动态扩展。随后你可能会想使用php/ext文件夹内的dll文件,可以通过如上的方法做到,小心点,你的版本可能 并不能充分利用扩展,很多新的扩展还会引起意想不到的不稳定性。最好的选择是按部就班的升级,大概每年一次升级PHP就好了。

在php.ini文件中真正需要取消注释的动态扩展有哪些?还有哪些也是需要改变的?

假设你已经完全获得了服务器的安装控制权,如果是虚拟主机则另当别论。在php.ini文件里如需对任意一行取消注释仅需删除代码前段的分号“;”。对于Moodle来说,仅需做出一些改变以确保必须的扩展可以使用。他们是:

资源限制
 memory_limit = 128M //所需的最大值,如若是虚拟主机则可能更少。 
数据处理
 post_max_size = 512M //此值允许的最大帖子占用达到512MB,但最好根据你的需求及环境来设置它。
路径和目录
 doc_root ="driveletter:\path\to\server\active\web\directory" (e.g. d:\Apache\htdocs or e:\iis\wwwroot )
及
extension_dir = "driveletter:\path\to\php\ext" (e.g. d:\php\ext or e:\iis\php\ext)
文件上传
 upload_max_filesize = 512M (与post_max_size不同,其为设置文件上传大小)
动态扩展 (只在Windows上需要)
PHP 5.3.x
extension=php_curl.dll
 extension=php_gd2.dll
 extension=php_gettext.dll
 extension=php_intl.dll
 extension=php_imap.dll
 extension=php_ldap.dll
 extension=php_mbstring.dll
 extension=php_exif.dll  ; Must be after mbstring as it depends on it
 extension=php_mysql.dll
 extension=php_mysqli.dll
 extension=php_openssl.dll
 extension=php_pdo_mssql.dll
 extension=php_pdo_mysql.dll
 extension=php_soap.dll
 extension=php_sockets.dll
 extension=php_sqlite.dll
 extension=php_xmlrpc.dll
 extension=php_zip.dll

上述编辑的动态扩展可以覆盖一系列的选择,当然也还有其他可能,但所列之项都是最常用到的。除非需求较为特殊,没有理由背离这些设置,如若真的需要其他设置,确保你知道改变他们的后果。这些扩展可以使Moodle成功安装并运行其他PHP程序。

其中一个明显的例子就是Oracle扩展没有在这显示,但Oracle仍可作为Moodle的数据库使用。另外一个经常另自己惹祸上身的是使用 “Magic quotes”。真的应该关闭Magic quotes,他们只是为了在初期介绍PHP的使用以使缺乏经验的人练习编辑脚本(阅读能力差,以次充好或狡猾的人)。如若编辑的脚本质量仍然很差,那么 他们真的应该注意他们自己并删除他们的脚本了。

Moodle的配置文件是什么?放在哪里?

存放在Moodle文件夹下的config.php文件存储了Moodle的配置设置选项。这个文件是在安装过程中创建的。如若出现问题或安装过程不能创建文件,可以试着通过配置文件文档手动创建。

下载Moodle之前的版本

旧版本的Moodle也可以下载,当然不是在标准Moodle下载页面里。旧版的位置在[ http://download.moodle.org/stable[版本号] (参见下面的链接。)

2.0 Versions 1.9 Versions 1.8 Versions
1.7 Versions 1.6 Versions 1.5 Versions
1.4 Versions 1.3 Versions  

使用wget、lynx或curl访问[ http://download.moodle.org/stable[版本号]即可下载旧版。

例如:为下载Moodle 1.5,访问http://download.moodle.org/stable15。点开之后会看到展示文件的目录结构。根据所需按平常一样下载就可以了——如若是需要1.5版的最新升级版,则需将页面滚动到列表最后面并下载“最新版”的文件。

[version_number.zip http://download.moodle.org/windows/MoodleWindowsInstaller-latest-[versio...]
  • Mac软件包: 在为Mac设计的Moodle包里不能下载的版本可以通过以下链接中的其中一个(取决于需要Intel包还是PPC包)进行下载:
[version_number.dmg http://download.moodle.org/macosx/Moodle4Mac-Intel-[version_number].dmg]
[version_number http://download.moodle.org/macosx/Moodle4Mac-PPC-[version_number}.dmg

如何启用或检查PHP的错误日志?

PHP可以设置为使用多种不同的方式记录错误:其中一个牵扯到了php.ini文件,另一个则涉及到ini_set命令。详情参见PHP错误日志文档。

“找不到顶级课程”

尝试着完成安装Moodle时如若出现这样的提示则很可能意味着安装没有完成。完整的安装过程会在完成之前要求填写管理员资料并为站点命名。检查错 误日志。删除数据库如何重新开始安装。如果之前使用的是基于Web的安装方式,那么这次就试一下命令行的安装方式。还需要再一次确定的是你的电脑是否满足 安装Moodle的最低需求?

邮件副本不能从论坛中发出

如若让Moodle可以从如论坛、任务等活动中自动发送邮件则必须对Cron进行合理的设置。这一过程同样扮演着清理任务,如删除老旧的未确认的用户,未注册过的学生等等。请参阅Cron说明

提示:

  • 试着采用默认设置:设置>网站管理>插件>消息输出>邮件。一般都会正常工作。除非……
  • 如若在Windows服务器上必须在上述设置页面提供SMTP服务器地址(不像Unix,Windows没有内置的邮件服务器)。
  • 确保设置>网站管理>插件>消息输出>邮件里的allowuseremailcharset参数是“No”,除非你真的自己在干嘛。把这个参数设为“Yes”在很多Moodle版本中会引起问题。
  • 检查防火墙或询问网络管理员。很多邮件服务器很大程度上被锁定了,需要足够的权限通过他们来发送邮件。

我不能登录了——我卡在了登录页面

如果看到像这样的提示“你的会话已过期,请重新登录”或“检测到服务器错误影响了你的登录会话,请重新登录或重启浏览器后再试”,这些有可能会使你卡在登录界面,不能正常登录。

下面是致使不能登录可能的原因及应采取的措施(排序不分先后):

  • 首先检查主管理员账号(应该是手工账号)是否有问题。如若用户使用的是外部验证方法(如,LDAP),那么有可能是这个问题。隔离故障并在进一步修复错误之前确保这真的是所要登录的Moodle站点。
  • 检查硬盘是不是没有剩余空间了,如若是虚拟主机则需检查是不是没有了剩余硬盘空间配额了。没有可用空间则会阻止会话的创建,任何人都不能正常登录。
  • 仔细检查数据目录“moodledata”的权限。Web服务器需要可写权限以编辑数据目录内的会话子目录。
  • 自己的电脑(非Moodle服务器)防火墙有可能会从浏览器剥离引荐信息(stripping referrer information from the browser)。详情参见修复Norton防火墙产品的说明文档。
  • 试着删除数据目录里的会话文件夹(当前登录到系统的任何用户都会被踢下线)。
  • 试着删除电脑上的缓存或(并)使用其他浏览器或换台电脑再试一下。
  • 设置>网站管理>服务器>会话处理页面试着对“缓存前置”设置前缀。当然也可以通过config.php内的$CFG->sessioncookie='something'进行设置参数前缀。如果是在同一浏览器访问数个Moodle站点是非常有用的。
  • 确保没有移除或改变config.php内的密码Salt值。如果创建密码时使用了SALT,那么config.php内的正确SALT是确保密码可以继续正常工作的前提。如果是在执行升级后却忘了传送SALT值时可以通过重建config.php以轻松地解决这个问题。
  • 在Moodle文件夹(或父文件夹)内有没有名为.htaccess的文件。如果有的话,是否是那儿的内容出问题了(奇怪的重定向,访问限制等等)?
  • 检查数据库表mdl_config的mnet_localhost_id值。正常的话应该是“1”,但是必须与记录用户表mdl_user的mnet_hostid相匹配以使用户是被认可的。在对站点进行升级或迁移时有可能会被不合逻辑地变更。
  • 检查config.php文件——应该在代码最后面还有任何空格/新行。
  • 最后还需要确认的是用户名或密码是正确的吧。

如果仍然不能登录,参见不能登录文档。当然也可以试着改一下管理员的密码。假装你已经遗忘了管理员的密码——参见管理FAQ

点击登录之后登录链接没有任何改变。或我登录进去之后可以随意浏览

确保config.php内的$CFG->wwwroot设置与想要登录的站点URL是一致的。

上传的文件给出“文件没找到”的提示

例如:没有找到:访问的URL/moodle/file.php/2/myfile.jpg没有在服务器上找到。

Web服务器需要配置成允许脚本名称后的部分URL可以直接访问脚本。Apache 1是启用的,而Apache 2是禁用的。可以通过添加如下代码到httpd.conf文件或本地服务器的.htacess文件(参见安装Moodle获取更多细节):
'''AcceptPathInfo''' on
注意,此方法仅适用于Apache 2.x以上版本。

IIS 7服务器需要其他特殊的配置,IIS 6则不支持。参见IIS文档获取更多细节。。

如若不能正常配置,那么也可以使用其他的替代方案。主要的缺点就是SCORM课程包不能用了,一些Adobe Flash和Java小程序也不能用了。

为使用这种替代方法,需要改变斜线参数slasharguments)的值方可使用。Moodle 1.7以下的版本需要在管理>配置>参数这设置。对于之后的版本,则需要在网站管理>服务器>HTTP进行设置。设置完成之后,现在就可以上传文件了。

另请参阅

为什么所有的页面都是空白的?

检查config.php内的dirroot值。必须使用完整的、绝对路径名,如:
<span style="color: #000088">$CFG</span><span style="color: #339933">-></span><span style="color: #004000">dirroot</span> <span style="color: #339933">=</span> <span style="color: #0000ff">"/var/www/moodle"</span><span style="color: #339933">;</span>
另一个导致这种问题的原因是PHP没有配置好以支持MySQL(或任何其他所用数据库)。若是在RedHat或OpenBSD上安装常会出现这种问题。在这种情况下,通常会产生错误,但又因为系统是默认不显示错误的,致使浏览器上的所有页面都是空白的。参见如何启用并检查PHP错误日志以启用PHP错误显示。 为了查看是否是数据库导致的问题,可以在config.php文件里的第二行插入如下代码:
<span style="color: #990000">phpinfo</span><span style="color: #009900">(</span><span style="color: #009900">)</span><span style="color: #339933">;</span>
然后刷新页面。仔细检查输出内容以查看所选数据库是否被支持。如果不支持所选数据库的话,寻找丢失了什么文件吧。

为什么个别页面是空白的或不完整的?

  • 检查Web服务器日志文件!!
如果个别页面是空白的或不完整(如不显示页面底部(footer)),在做任何事之前请先打开调试模式检查PHP错误日志。在确定了PHP错误记录工作是正常运行的之后,重现这个错误。然后立即检查日志文件最后的一部分。希望可以在文件末尾部分找到PHP的错误信息。这样或许可以直接解决问题,或至少更为容易得在讨论区诊断问题。
  • 如果你正在对Moodle进行版本升级,检查一下旧版本有没有安装非标准的版块或模块。如果有的话,通过管理设置界面移除任何非标准的版块或模块,然后重启安装进程。然而,还需要确定的是,课程所必须的插件不能删除,必须包含在内。在编辑模式打开的情况下此种问题尤为常见。
  • 如若不能看到任何版块,打开编辑模式并移除此页新添加的任何版块,然后刷新该页面。
  • 选择语言之后可能会立即看到这个错误。安装过程的这一阶段,Moodle需要连接网络以下载语言包,所以需要通过浏览器检查电脑是否可以访问网络。还需要检查的是PHP设置是否满足Moodle需求页面所提要求。

另请参阅:

设置数据库表时安装停滞

有时在设置数据库表时安装会被挂起,这时浏览器页面只会显示一半,而其他输出内容都被移除了。或许可以看到截取MySQL的语句或看到“继续滚动”的链接但是看不到“继续”的按钮。

获取更多解决方案请参见意想不到的安装停滞文档,其中涉及到的有:

  • 检查MySQL限额
  • 检查.htacess文件
  • 代码自定义问题
  • 检查内存限制
  • 逐步升级
  • 修复fopen函数

为什么不能给我的资料上传新图片?

如果你不能在用户资料页面上看到可以让你上传图片的地方,那么通常可能是如下原因之一:

  • 你正在使用的角色与之相关联的权限不允许其更改用户资料图。
  • 没有安装GD或安装了却没启用。确保GD在PHP安装过程中已经安装。可以通过访问网站管理>服务器>PHP信息并搜寻GD版本设置以确认GD安装和启用的信息。每次访问这个页面时,设置都是自动选择的。如果GD版本是1或者2那么一切都将正常。保存配置页然后访问用户资料页。
  • GD已经安装了,但从某种意义上来说却是损坏的。例如,参见配置文件出现空行或空格的讨论

GD是一个可以处理图像的知识库。例如,系统一切正常的时候,上传一个图像后,GD对其进行压缩并产生2个缩略图,一个是100x100像素的,另一个是35x35像素的。

如若Moodle认为GD没有安装,那么就需要安装GD库

  • Unix上需要按照如下代码以对PHP进行重编译:
    • ./configure --with-apxs=/usr/local/apache/bin/apxs --with-xml --with-gd

--with-jpeg-dir=/usr/local --with-png-dir=/usr --with-ttf --enable-gd-native-ttf --enable-magic-quotes --with-mysql --enable-sockets --enable-track-vars

--enable-versioning --with-zlib
  • Windows上通常只需编辑php.ini文件以打开扩展即可使用GD。移除扩展php_gd2.dll前的分号即可——首先需要确认这个文件 缺失存在于PHP扩展文件夹内(在php.ini文件里搜索扩展目录(extension_dir)以判断其在硬盘什么位置)。应该可以找到如下代码:
    • extension=php_gd2.dll
Windows用户可通过安装说明文档获取更多帮助。
  • (如果需要的话)记得重启浏览器,对PHP配置作出任何改变之后重新访问配置页面使得可以使用正确的GD版本。

另请参阅:访问使用Moodle论坛中讨论资料图片的帖子以获取额外信息。

为什么我的Moodle不能正确地显示日期和时间?

每一种语言都需要特殊的语言代码(通常称为locale代码)以使日期可以正确地显示。语言包含有默认的标准代码,但是有时在Windows服务器上不能正常运行。

可以在如下2个页面找到Windows用的locale代码:语言代码国家/地区代码(如,“esp_esp”代表西班牙)

新的locale代码可以通过管理>配置>参数页面进行输入,如果输入新的语言代码则会覆盖掉当前选择的语言包。

如何卸载Moodle?

虚拟主机提供商/手动安装:如果Moodle是手动安装或安装在虚拟主机上可以根据如下步骤:

  • 使用mysql命令行删除数据库(或使用mysql客户端删除数据库,如,phpmyadmin):
sql>DROP DATABASE moodle;
上述删除数据库的例句中用你安装Moodle时创建的数据库名称代替"moodle"。
  • 删除数据目录moodledata。如果你或是你的用户上传过资料的话,需要在删除前备份
  • 删除Moodle目录本身。这将会删除掉所有的PHP脚本文件。

Windows上通过XAMPP安装:如果在Windows上安装时是用的XAMPP软件包,根据以下步骤卸载Moodle:

  • 打开cmd.exe,指向安装文件的目录:
server/mysql/bin
  • 输入如下命令,用你的数据库用户名代替USERNAME(默认是“root”),用你的数据库名代替DATABASE(默认是“moodle”):
mysqladmin.exe -u USERNAME -p drop DATABASE
  • 根据提示输入数据库密码(默认为“”【空】)。
  • 输入“y”以确认删除数据库。
  • 删除数据目录moodledata。如果你或是你的用户上传过资料的话,需要在删除前备份
  • 删除Moodle目录本身。这将会删除掉所有的PHP脚本文件。

迁移Moodle到一个新的站点或服务器

迁移Moodle意味着必须把当前的安装程序移动到另一个服务器,IP地址或DNS条目也有可能需要变更。变更IP需要将config.php文件 内的$CFG->wwwroot值变更为新服务器的地址。另一个还必须要变更的存储在数据库备份文件内绝对链接(在新服务器上恢复文件之前进行), 可以使用admin/replace.php脚本进行变更,或者使用文本编辑器或带有“搜索与替换”的工具,如,sed。详情参见迁移Moodle文档。

安装完成之后可以在服务器正常显示,为什么换台机器,格式或图片就不见了?

安装说明文档里,“webroot”的建议设置是“localhost”。如果你只是想在本地做一些测试的话,这完全没问题。如若不是这样的话,你还想让Moodle可以从局域网内的另一台电脑访问或从网络上访问,还需要作出一些改变:

  • 本地测试的话,webroot设置为“localhost”是没问题的(config.php文件内的$CFG->wwwroot)。
  • 如果想让局域网(LAN)内其他电脑访问Moodle,那么web root就必须得使用主机的私有IP地址(如,192.168.1.2/moodle),或使用主机的网络名称 (如,network_name_of_serving_machine/moodle)。根据局域网设置,最好是把web root设置为主机电脑的网络名称而不是时刻都在发生变化的(私有)IP地址。如果你不想使用网络名称,那么可告诉你的网管为主机申请一个永久的IP地 址。
  • 最后,如果需要在互联网上进行测试安装成功,那么web root必须要使用域名或永久(公开)的“IP/moodle”地址。如何同时处理这两种类型的访问,参见地址伪装

如何变更最大上传文件大小?

有多处地方可以变更最大文件上传大小。第一个地方是查看管理员版块——安全>网站策略,然后查找“最大上传文件大小”。旧版本中称其为“maxbyte”参数(在管理>参数内)。教师可以通过设置课程管理版块设置最大文件大小。

如若上述方法不能提供足够大的数值,那么就需要从服务器层面来变更它了。通常是在php.ini文件里(访问网站管理>服务器>PHP信息然后查验设置的位置)。查找upload_max_filesizepost_max_size,同时设置他们到所需的大小(如,64MB)。设置完成后需要重启Web服务器以使变更生效——如,Linux——/etc/init.d/apache2 force-reload。查验文档下步该怎么做或直接重启服务器即可。

更多帮助信息请参见:

Moodle声称处理PHP浮点数时不兼容

这种问题的征状是指在安装或升级Moodle时发生的,得到消息“处理PHP浮点数时检测到意外的问题”。

此论坛版块[https://tracker.moodle.org/browse/MDL-18253 MDL-18253]有此问题更多信息。简而言之,这种问题不会发生,如若遇到这种问题,可以发帖求助,发帖时请附上准确的PHP版本、系统等信息。这样就可以帮助我们找出解决此问题的方法。

安装最新版的PHP也许可以解决此类问题。如果是从源代码编译PHP,改变编译选项或许可行。然而,我们确实不知道出现这种问题的根本原因。如若你的方法有效,也请转告给我们。

更新:我们猜测引起问题的原因有可能是php.ini文件内精度(precision)的设置问题。安装PHP后,此值默认为14。至少有一台出现此问题的服务器已经将此值改为更小。所以,如若遇到这个问题,试着把如下代码——ini_set('precision', 14);——添加到config.php,如果成功的话,请在[https://tracker.moodle.org/browse/MDL-18253 MDL-18253]里汇报。

升级Moodle时,Moodle认为MySQL不是UTF8编码,但我可以确认数据库是UTF8编码

MySQL的UTF8检测已经在Moodle2.5就修复了,一些错误的数据库配置之前以不兼容报告过了。

需要注意的是仅仅转换数据库内的字符集和排序规则是不够的,需要对每个数据库表中的文本列进行修复!

进行下一步之前需要确保已经理解了字符编码(文本如何存储的)与排序规则(比较文本字符串的规则)的不同。排序规则不会引起这种错误,但他们本身会有一堆问题。

参见转换MySQL到UTF8

如何在没有重复基础代码的情况下运行多个Moodle实例?

参见Martin Langhoff所写详尽描述的帖子

什么是FreeTDS,如何在安装时使用它?

FreeTDS是 开源的表格式数据流实施方法,用于Microsoft SQL Server和Sybase数据库。不幸的是,Microsoft服务器通常不接受TDS 5.0的连接。FreeTDS允许Unix/Linux的应用程序与其他数据库产品会话,使其可以成功地在不同系统之间导入、导出数据。

如何安装插件?

请参阅安装插件文档。

由于插件概览页面的插件启用图标不可点击致使不能启用插件

插件概览页面内的眼睛“睁开”或“闭上”的图标仅指这个插件是启用的还是禁用的。不能通过这个页面进行编辑。如需启用插件,应该访问管理插件类型的页面,如设置>网站管理>插件>库>管理库设置>网站管理>插件>活动模块>管理活动

另请参阅

在共享的虚拟主机上安装Moodle: