エラーFAQ

提供:MoodleDocs
移動先:案内検索

エラー:データベース接続に失敗しました

データベース接続に失敗しました または 指定したデータベースに接続できませんでした などのエラーが発生した場合、考えられる理由と解決策を次に示します。

  • データベースサーバ がインストールまたは実行されていません。 MySQLでこれを確認するには、次のコマンドラインを入力してみてください
$telnet database_host_name 3306
MySQLサーバのバージョン番号を含む不可解な応答を受け取るはずです。
  • あなたが実行しようとしている場合は 異なるポート上のMoodleの2つのインスタンス 、$CFG->dbhost設定、例えば$CFG->dbhost = 127.0.0.1:3308で(ないローカルホスト)ホストのIPアドレスを使用します。
  • PHPmysqlまたはpostgresql拡張機能 がインストールされていません(PHPがインストールされているかどうかについてはFAQを参照してください)。
  • Moodleデータベースを作成しておらず、それにアクセスするための正しい権限を持つユーザ を割り当てていません。
  • Moodleデータベース設定 が正しくありません。 Moodle設定ファイル config.php のデータベース名、データベースユーザまたはデータベースユーザのパスワードが正しくありません。 phpMyAdminを使用して、MySQLのインストールを設定および確認します。
  • MySQLのユーザー名またはパスワードに アポストロフィまたはアルファベット以外の文字 が含まれていないことを確認してください。
  • MySQLバージョン4.1以降を使用していますが、PHP MySQL拡張機能は4.1より前です(phpinfo出力を確認してください)。この場合、 デフォルトのパスワードハッシュアルゴリズム は、PHP mysql拡張バージョン4.xxで使用可能なものと互換性がありません。次のMySQLコマンドを使用して、パスワードを古い形式に変更します。
mysql>SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('password');
mysql>SET PASSWORD FOR 'moodleuser'@'localhost' = OLD_PASSWORD('password');
また、PHPMySQL拡張機能のアップグレードを検討してください。この問題に対処する方法の詳細については、このMySQLドキュメントを参照してください。
  • Fedoraコア3または SELinuxがインストールされている が有効になっている他のLinuxシステムを使用しています。 SELinuxを無効にする方法については、次のURLを参照してください。 http://fedora.redhat.com/projects/selinux/
SELinuxを無効にしたくない場合は、httpdプロセスにネットワーク接続の作成を許可する必要があります。
setsebool httpd_can_network_connect true
  • MacOSXユーザ-MacOSXでMySQLを実行している場合は、 $CFG->dbhost を 'localhost' から '127.0.0.1' に変更してみてください。

関連項目一般的なエラーのMySQLページには、接続障害の考えられるいくつかのシナリオとアドバイスが記載されています。問題を解決する方法について。

session.save_pathの現在の設定が正しいことを確認してください というメッセージでログインできません

このエラーは、PHPがセッションファイルの保存に問題がある場合に発生します。また、画面またはログファイルに次のエラーメッセージが表示される場合があります。

Warning: Unknown: open(some-path/sessions/sess_acbf942a7399db3489ffa910e35d5242, O_RDWR)
failed: Permission denied (13) in Unknown on line 0
Warning: Unknown(): open(some-path/sessions/sess_acbf942a7399db3489ffa910e35d5242, O_RDWR) 
failed: No space left on device (28) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current 
setting of session.save_path is correct (some-path/sessions) in Unknown on line 0 

一時的にこれらのエラーバイパス、 使用のデータベース・セッション あなたの moodle設定ファイルを編集し、そしてこの行を追加します:

$CFG->dbsessions = true;

データベースセッションはmysqlデータベースに過負荷をかける可能性があり、共有ホスティング環境では理想的ではないため、これで問題が解決した場合は、次のように問題の修正を開始できます。

  • アクセス権 を確認してください。 session.save_pathは、apacheユーザがアクセスできる必要があります。このコマンドを試してください:

chown -R apache:apache some-path/sessions

これは、「apache」がWebサーバを実行しているユーザの名前であると想定しています。「nobody」の場合もあります。
  • PHPが保存しようとしているディレクトリ(session.save_path = some-path / sessions)へのパーミッションを確認します。次のコマンドを使用して、最初にアクセス許可を0777(すべての読み取り、書き込み、実行)に設定します。
chmod -R 0777 some-path/sessions
これで問題が解決する場合は、権限を減らしてください(700を推奨)。

関連項目 :セッションの問題はサーバ環境に固有である可能性があります。例として、Lycosホスティングのセッションの問題については、このフォーラムディスカッションを参照してください。

エラー:ログインセッションに影響するサーバエラーが検出されました

ブラウザを再起動してMoodleサイトに再度ログインできない場合は、Moodleの使用このエラーメッセージに関するフォーラムディスカッションを参照してください。

これがMoodle.orgサイトで受け取られた場合、サイトは更新中である可能性があります。提案を試すか、待ってからもう一度試してください。または、トラッカーで報告してください。

エラー:必要な '/web/moodle/lib/setup.php' を開くことができませんでした

config.php で、dirroot変数に使用する設定は、サーバのハードドライブのルートからの完全なパスである必要があります。

ホームディレクトリからのパス、またはWebサーバディレクトリのルートからのパスのみを使用する場合があります。

私のページには次のような致命的なエラーが表示されます:解析エラー、未定義の関数の呼び出し:get_string()

次のようなエラーが表示された場合:

Parse error: parse error, unexpected T_VARIABLE in /path/to/moodle/config.php on line 94 
Fatal error: Call to undefined function: get_string() in /path/to/moodle/mod/resource/lib.php
on line 11

次に、 config.php (94行目より前)の行からセミコロンまたは終了引用符を省略している可能性があります。

もう1つの可能性は、Notepad ++のようなプレーンテキストエディタを使用する代わりに、Wordなどのプログラムで config.php を編集してHTMLWebページとして保存したことです。

特に追加のプラグインを使用している場合に確認するもう1つのことは、phpスクリプトのいずれかが短いオープンタグを使用しているかどうかです(<? ?>)適切なものの代わりに(<?php ?>)。短いタグはさまざまな理由で悪いので、最初にその拡張機能の作成者に連絡して問題について伝えてください。次に、短いタグを従来のタグに置き換えるか、php.iniで次の行を設定します。

short_open_tag = On

コアmoodleコードで短いタグを見つけることは決してありません。その場合は、トラッカーにバグを報告してください。

管理ページに移動すると、dirrootを空白にするように指示されます!

このようなエラーが表示された場合:

Please fix your settings in config.php: 
You have: $CFG->dirroot = "/home/users/fred/public_html/moodle"; 
but it should be: $CFG->dirroot = "";

次に、一部のサーバで発生する小さなバグに遭遇しました。問題は、実際のパスではなく、エラーチェックメカニズムにあります。これを修正するには、ファイル admin/index.php この行(66行目)を見つけます。

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

そしてそれをこれに変更します:

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

ヘッダーはすでに送信されています に関するエラーメッセージが表示され続けるのはなぜですか?

このようなエラーが表示された場合:

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 ++など)を試す必要があります。

エラー:"500:内部サーバエラー"

このエラーにはいくつかの原因が考えられます。より包括的な説明が必要なWebサーバのエラーログを確認することから始めることをお勧めします。ただし、ここにいくつかの既知の可能性があります。

1. 構文エラー:.htaccessファイルまたはhttpd.confファイルに構文エラーがあります。使用しているファイルに応じて、ディレクティブの記述方法異なる。次のコマンドを使用して、Apacheファイルの構成エラーをテストできます。

  1. apachectl configtest

2。 PHPsuexec:サーバは.htaccessファイルをサポートしていません。特に、ホストされているシステム上のサイトのセキュリティを強化するために使用されるApacheモジュールであるPHPsuexecを実行している場合はそうです。この状況では:

- 403:Forbiddenエラーも表示される場合があります。

- ウェブサーバは自分のユーザ名で実行され、すべてのファイルの最大アクセス許可レベルは755です。これがコントロールパネルのMoodleディレクトリに設定されていることを確認するか、(シェルにアクセスできる場合)次のコマンドを使用します。

#chmod -R 755 moodle

- MoodlePHPスクリプトが実行されているディレクトリで.htaccessの代わりにPHP.INIファイルを使用します。例:サーバがファイルmoodle/admin/cron.phpを実行しているときにメモリ枯渇エラーを受け取った場合は、PHP.INIファイルを使用してmemory_limitを変更し、moodle/adminディレクトリにコピーします。 PHP4の場合、PHP.INIファイルはディレクトリごとであるため、各サブディレクトリにコピーする必要があることに注意してください。共有ホストでPHP5以降を使用している場合は、カスタムPHP.INIファイルをサポートしているかどうか、およびそれらの作成方法についてホストに確認してください。 PHP.INIファイルで使用される構文は.htaccessファイルとは異なり、行の先頭でphp_value/php_flagを取り出し、等号を使用して値を割り当てる必要があります。

php_value memory_limit 128M <-- .htaccess
memory_limit = 128M         <-- php.ini equivalent 

3. 互換性のないディレクティブ:Webサーバのバージョンと互換性のないディレクティブが.htaccessまたはhttpd.confファイルにある可能性があります。 Webサーバのドキュメントを確認してください。

エラー "403:禁止"

Webサーバの構成を確認してください。上記の 500:内部サーバエラー のセクションも参照してください。

致命的なエラーにより、メモリサイズが使い果たされました。 PHPのメモリ制限を増やすにはどうすればよいですか?

次のようなエラーメッセージが表示されることがあります。

Fatal error: Allowed memory size of 67108864 bytes exhausted

(tried to allocate xx bytes) in /var/www/moodle/yyyy.php このエラーは、phpmemory_limit値がphpスクリプトに十分でないことを意味します。 memory_limit値は、許容メモリサイズ - 上記の例では64Mです(67108864バイト/ 1024 = 65536KB。65536KB/ 1024 = 64MB)。このメッセージが表示されなくなるまで、phpmemory_limit値を増やす必要があります。これを行うには2つの方法があります。

  • ホストされたインストールでは、これを行う方法をホストのサポートに問い合わせる必要があります。ただし、多くは.htaccessファイルを許可します。含まれている場合は、.htaccessファイルに次の行を追加します(または、moodleディレクトリにまだ存在しない場合は作成します)。
php_value memory_limit <value>M
Example: php_value memory_limit 40M
  • シェルアクセスを備えた独自のサーバがある場合は、次のようにphp.iniファイルを編集します(phpinfo出力をチェックインして正しいサーバであることを確認してください)。
memory_limit <value>M
Example: memory_limit 40M
  • Moodleのそれ以降のバージョンでは、すべての機能が正しく機能するために512Mの領域の数値を見ることができます(バックアップと復元は特にメモリを消費します)。これらの大きな設定を使用する場合は、サーバのメモリ使用量を監視することをお勧めします。

php.iniに変更を加えるには、Webサーバを再起動する必要があることに注意してください。別の方法は、コマンド memory_limit 0 を使用してmemory_limitを無効にすることです。

エラー:セッションがタイムアウトしました。もう一度ログインしてください。 または ページが正しくリダイレクトされていません または このWebページにはリダイレクトループがあります

次のいずれかまたはすべてを実行してください。

  • ブラウザから手動でCookieを削除して閉じてから、サイトに再度アクセスしてみてください。時々これは問題を解決します。
  • moodledata / sessions ディレクトリに書き込み権限があることを確認してください。 Moodleにアクセスすると、そこに新しいファイルが作成されます。
  • 同じコンピューターで2つのバージョンのMoodleを実行している場合は、 管理>サーバ> セッション処理 Cookieプレフィックスを設定します。

ディスカッションセッションがタイムアウトしました。もう一度ログインしてくださいさらに提案された解決策があります:

インストール時のエラー:ERR_TOO_MANY_REDIRECTS

  • Notepad ++などのファイルエディタでmoodle\admin\index.phpファイルを編集する必要があります。 MS-Wordは使用しないでください。
  • 次の行を検索します。
redirect("index.php?sessionstarted=1&lang=$CFG->lang");
  • 次のようにコメントアウトするには、2つの逆スラッシュを追加します。
//redirect("index.php?sessionstarted=1&lang=$CFG->lang");
  • ブラウザからインストールを続行してみてください。


致命的なエラー:最大実行時間が30秒を超えました...(インストール時)

  • お使いのコンピュータはインストールスクリプトの実行に時間がかかりすぎています。デフォルト値は30秒でした(しかし、いくつかの新しいMoodleブランチはそれを増やしました)。
  • インストールプロセスが完了するまでF5(更新)を押します。
  • または、Notepad ++などのテキストエディタを使用して、your_local_server\server\php\php.iniにあるファイルを編集します。 MS-Wordは使用しないでください。
    • 次の行を探します。
max_execution_time = 30
    • そして、30秒の値をはるかに長い時間に置き換えます。たとえば、600のようになります。
max_execution_time = 600
    • 編集したファイルを保存し、ローカルサーバのインストールを再開します

インストール時のエラー:接続がリセットされました/このサイトにアクセスできません

Install ERROR This site cant be reached.png

Skypeをインストールまたはアップグレードしましたか?

  • SkypeはMoodleと同じポート(80)を使用します。
  • Skypeを削除します。
  • Windowsを再起動します。
  • Moodleをインストールして
  • Skypeを再インストールします。

優れたアンチウイルスでPCをチェックしてください

Moodleでスクリプトを実行するために許可される時間を増やします

Localhost connection was restarted.png

  • 'Moodle.exeの停止' をクリックします
  • ファイルserver/php/php.iniを編集(Notepad ++またはその他の単純なテキストエディタを使用します。MS-Wordは使用しないでください)、次の行の数を増やします。max_execution_time =  :

Edit max execution time.png

  • 値を、たとえば10分(600秒)に増やします。

Edit max execution time to 600.png

  • 'Moodle.exeの開始' をクリックします
  • 問題が解決したかどうかを確認します。そうでない場合は、以下を読み続けてください。

Apacheのデフォルトのスタックサイズを増やす必要があるかどうかを確認してください

  • この問題は、Moodle 3.4、3.5、および3.6を搭載したWindows 7PCおよびラップトップMoodle for Windows完全インストールパッケージで説明されています。
  • server/apache/logs/error.logにあるerror.logファイルを確認し、次の行を見つけた場合
child process XXXX exited with status 3221226356 -- Restarting. 
    • (XXXXは数字、任意の数字)

400pxで終了しました

  • 小さいApacheのデフォルトのスタックサイズが原因で、Windowsで頻繁に発生する問題が発生する可能性があります。そして、それは通常、多くのスタックを割り当てるphpコードを操作するときに発生します。
  • この問題を解決するには、テキストエディタ(Notepad ++、MS-WORDを使用しないでくださいなど)を使用して、Apache構成ファイルの最後に次の3行を追加します( ../server/apache/conf/httpd.conf):

<IfModule mpm_winnt_module>

  ThreadStackSize 8888888
</IfModule>
  • そしてApacheを再起動します。

Googleドライブはありますか?

  • ヒープの破損(STATUS_HEAP_CORRUPTION)。 Googleドライブなどの一部のプログラムは、ヒープの破損を引き起こしている可能性があります。
  • 最新バージョンのApache(XAMPP)に切り替えると、問題が解決する場合があります。


XAMPPを使用していますか?

XAMPP-Cotrollに移動し、Apache-> Config-> httpd.confを開いて、追加します

<IfModule mpm_winnt_module>
  ThreadStackSize 8888888
</IfModule>

最後まで

https://moodle.org/mod/forum/discuss.php?d=38758 を参照してください

サイト全体をアップグレードせずに、1つのバグを修正するにはどうすればよいですか?

仮定:

  • 古いバージョンのMoodleを実行しています。
  • 特定のバグが発生しています。
  • trackerで検索したところ、問題はMDL-abcであり、最新バージョンで修正されていることがわかりました。
  • 何らかの理由で、最新バージョンにセキュリティ修正が含まれている場合でも、サイト全体をアップグレードすることはできません。

それでは、サイト全体をアップグレードせずに、この1つのバグだけを修正するにはどうすればよいでしょうか。コードに手動でパッチを適用する準備ができている場合は、おそらくトラッカーからこの情報を取得できます。 このガイドを参照してください。

エラー:'未定義'メッセージ

これは、言語パックの 'ロケール' の設定に関連している可能性があります。言語パックの管理者に連絡してください。

ERROR undefined.png

関連項目