PHP

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

PHPは、Moodleが開発されたスクリプト言語です。 Webサーバと統合されています。 Webサーバはphpページを(拡張機能によって)検出し、PHPに送信して実行します。 Moodleを効果的に(またはまったく)機能させるには、PHPを適切にインストールおよび構成する必要があります。

PHPバージョン

  • Moodle 3.0.1以降はPHP 7をサポートしていますが
    • Moodle 3.1以前はPHP 7.1以降をサポートしていません(つまり、現在Moodle 3.4以前にサポートされているMoodleとPHPのリリースの組み合わせは現在ありません)。
  • Moodle 3.4およびMoodle 3.5はPHP 7.0またはPHP 7.1またはPHP 7.2が必要です
  • Moodle 3.6はPHP 7.0以降が必要です
  • Moodle 3.7とそれ以降はPHP 7.1以降が必要 です

PHP設定

php.iniまたは.htaccessファイルでこれらの設定を確認します(Apacheを使用している場合)。 ON / OFFを値として使用する設定では、必要に応じて、ONを1に、OFFを0に置き換えることができます。 php.iniを変更した場合は、サーバを再起動することを忘れないでください。

  • memory_limitは少なくとも96Mである必要があります(ただし、これが低いと一部の機能が動作しない場合があります)。 Moodleは、それ以下の場合、インストールを拒否します。 128Mをお勧めします。大規模なシステムでは、さらに高い設定が必要になる場合があります。
  • session.save_handlerをFILESに設定する必要があります。
  • magic_quotes_runtimeをオフにする必要があります。 (PHP 5.3.0では非推奨、PHP 7.0.0では削除されました。)
  • file_uploadsをオンにする必要があります。
  • session.auto_startをオフにする必要があります。
  • 一時フォルダは、ウェブサーバユーザが定義して書き込み可能にする必要があります

※エラー表示・ロギング部を確認してください。設定がサーバの使用に適していることを確認してください。

  • post_max_sizeupload_max_filesizeは、アップロードできる最大ファイルサイズを制限します。
  • [メール機能]とデータベースセクション(選択したデータベース用)をチェックして、サーバ構成と一致していることを確認します。

HTTP_RAW_POST_DATAエラー

MNETサーバ間の接続を確立するとき、またはAJAX Webサービス要求を行うときに、一部のユーザが$ HTTP_RAW_POST_DATA関連のエラーを経験しています。

サーバ名の要求が空の応答を返しました
 
    line 134 of /mnet/lib.php: call to debugging()
    line 115 of /admin/mnet/peers.php: call to mnet_get_public_key()

これらのエラーは、PHP 5.6バージョンでmoodleを実行しているインストールに影響しており、デフォルト値を0に設定する always_populate_raw_post_data PHPバグです。

上記のエラーメッセージを回避するには、php.iniファイルの設定に従って値を変更してください。

  • always_populate_raw_post_data-1に変更する必要があります。

このバグの詳細については、 https://bugs.php.net/bug.php?id=66763 を参照してください。

正しいphp.iniを見つける

php.iniファイルの場所が明確でない場合や、複数ある場合もあります。確実に'phpinfo'を実行してください-以下を参照してください。 php.iniファイルのパスは、上部セクションの数行下にあります。

コマンドライン(CLI)PHPを使用してcron(またはその他)を実行している場合は、 異なる php.iniファイルで構成されている場合があります。確認するには、次のコマンドを実行します。

php -i | grep php.ini


PHP拡張機能とライブラリ

以下のPHP拡張機能が必要または推奨されています(たとえば、iconv、ctype、tokenizerなどがデフォルトでPHPに含まれています)。その他はインストールまたは選択する必要があります。

  • iconv拡張子が必要です。
  • mbstring拡張が推奨されます。
  • curl拡張子が必要です(ネットワークおよびWebサービスに必要)。
  • openssl拡張が推奨されます(ネットワークおよびWebサービスに必要です)。
  • tokenizer拡張が推奨されます。
  • xmlrpc拡張が推奨されます(ネットワークおよびWebサービスに必要)。
  • soap拡張が推奨されます(Webサービスに必要です)。
  • ctype拡張子が必要です。
  • zip拡張子が必要です。
  • gd拡張子が推奨されます(画像の操作に必要)。
  • simplexml拡張子が必要です。
  • spl拡張子が必要です。
  • pcre拡張子が必要です。
  • dom拡張子が必要です。
  • xml拡張子が必要です。
  • intl拡張が推奨されます。
  • json拡張子が必要です。
  • 選択したデータベースに適切な拡張子も必要です。
  • オプションのMoodle機能、特に外部認証や登録をサポートするために、他のPHP拡張機能が必要になる場合があります(LDAP認証用のLDAP拡張機能やチャットサーバ用のソケット拡張機能など)。

拡張機能のインストール(欠落)

これは、PHPがマシンにどのようにインストールされたか、およびどのようなアクセス権があるかによって異なります。ここにいくつかの可能性があります:

  • これがホステッドサーバの場合は、管理者またはホスティング会社に問い合わせる必要がある可能性があります。
  • PHPがソースからコンパイルされた場合、 'configure'設定を変更して再コンパイルする必要があります-ソースからPHPをコンパイルするを参照してください。
  • パッケージ(通常はLinux)を使用してインストールした場合は、必要なパッケージをインストールできます(Linuxディストリビューションのドキュメントを参照)
  • Windowsを使用している場合は、php.ini内の適切なDLLファイルのコメントを外すだけです

変更または追加を行った後、Webサーバを再起動することを忘れないでください。

.htaccessファイル

php.iniファイルにアクセスできない場合、または同じサーバ上の他のPHPアプリケーションと要件が競合している場合は、.htaccessファイルのPHP設定を変更できる可能性があります。これは、Moodleインストールの'ルート'(つまり、config.phpファイルと同じ場所)に配置する必要があります。

ファイルは常に.htaccessと呼ばれるわけではなく、まったく機能しない可能性があります。サーバ管理者に連絡して確認してください

設定は、次の2つの形式のいずれかで行を追加することによって行われます。

  • php_value 名前の値
  • php_flag 名前のオン/オフ

例:

  • php_value memory_limit 128M
  • php_flag register_globals off

PHP情報

phpinfo表示には、PHPインストールの構成に関する情報が含まれています。これは以下をチェックするのに役立ちます:

  • PHPのインストールがMoodleのシステム要件を満たしていること。
  • サーバのPHPインストールに現在適用されている値(ファイルのアップロード制限など)
  • Moodleが動作するために必要な必須モジュール、例えばLDAP認証用のLDAPモジュールをインストールしたこと。

Moodleでphpinfoを表示する

管理者は、 設定 > サイト管理 > サーバ > PHP情報 から見つけることができます。

Moodle外でのphpinfoの表示

phpinfo情報を表示するには:

  • テキストエディタを使用して、次の1行を含むinfo.phpというファイルを作成します。

<?php phpinfo(); ?>

  • このファイルをinfo.phpとして保存します
  • このファイルをサーバのルートWebアクセス可能フォルダーにアップロードします。
  • このファイルをブラウザで開きます。例えばhttp://<server-name>/info.php。

こちらもご覧ください