PHP
PHPはMoodleが開発されているスクリプト言語です。 Webサーバーと統合されています。 Webサーバーはphpページを(拡張子で)検出し、実行するためにPHPに送信します。 Moodleを効果的に(またはまったく)機能させるには、PHPを正しくインストールして設定する必要があります。
- Moodle 3.0.1以降はPHP 7をサポートします
- Moodle 3.4以降には PHP 7.0以降が必要です
内容
PHPの設定
php.iniまたは.htaccessファイルでこれらの設定を確認してください(Apacheを使用している場合)。値としてON / OFFを使用する設定の場合は、必要に応じて1をONに、0をOFFに置き換えることができます。 php.iniを変更した場合は、必ずサーバーを再起動してください。
- memory_limitは最低96Mである必要があります(ただし、これが低いと一部の機能が機能しない場合があります)。低い場合、Moodleはインストールを拒否します。 128Mをお勧めします。大規模システムではさらに高い設定が必要になる場合があります。
- session.save_handlerをFILESに設定する必要があります。
- magic_quotes_runtimeはOFFにする必要があります。
- file_uploadsをONにする必要があります。
- session.auto_startはOFFにする必要があります。
- 一時フォルダーはWebサーバーユーザーによって定義され、書き込み可能でなければなりません
- エラー表示/ロギングセクションを確認してください。設定がサーバーの使用に適していることを確認してください。
- post_max_sizeとupload_max_filesizeは、アップロードできる最大ファイルサイズを制限します。
- [メール機能]とデータベースセクション(選択したデータベース用)を調べて、それらがサーバー構成と一致していることを確認してください。
HTTP_RAW_POST_DATAエラー
MNETサーバー間で接続を確立したり、AJAX Webサービス要求をしたりするときに、$ HTTP_RAW_POST_DATA関連のエラーが発生するユーザーがいます。
Request for server name returned empty response 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を実行しているユーザに影響を与えています。これは、 always_populate_raw_post_dataのデフォルト値を0に設定したPHPのバグです。
上記のエラーメッセージを回避するには、php.iniファイルの設定に従って値を変更してください。
- always_populate_raw_post_dataを-1に変更する必要があります。
このバグの詳細については、 https : //bugs.php.net/bug.php?id = 66763を参照してください。
正しいphp.iniを探す
php.iniファイルの場所や、複数のファイルが見つかることさえあるかもしれません。確実に実行するためには 'phpinfo'を実行してください - 下記参照。 php.iniファイルのパスは、一番上のセクションの数行下にあります。
cron(または他のもの)を実行するためにコマンドライン(CLI)PHPを使用している場合は、 異なる php.iniファイルを使用して設定することができます。確認するには、次のコマンドを実行します。
php -i | grep php.ini
PHPの拡張機能とライブラリ
次のPHP拡張モジュールが必要または推奨されています(たとえば、iconv、ctype、tokenizerなどがデフォルトでPHPに含まれています)。他のものをインストールまたは選択する必要があります。
- iconv拡張子が必要です。
- mbstring拡張子をお勧めします。
- カールエクステンションが必要です(ネットワーキングとWebサービスに必要です)。
- openssl拡張モジュールを推奨します(ネットワーキングとWebサービスに必要です)。
- トークナイザ拡張をお勧めします。
- xmlrpc拡張子が推奨されます(ネットワークとWebサービスに必要です)。
- 石鹸の拡張子をお勧めします(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情報で PHP情報を見つけることができます。
Moodleの外でphpinfoを表示する
phpinfo情報を表示するには
- この単一行を含むテキストエディタを使用してinfo.phpというファイルを作成します。
<?php phpinfo ( ) ; ?>
- このファイルをinfo.phpとして保存します
- このファイルをサーバーのルートWebアクセス可能フォルダーにアップロードしてください。
- ブラウザでこのファイルを開きます。たとえば、http:// <サーバー名> /info.phpです。
関連情報
- ソースからPHPをコンパイルする
- 開発者向けドキュメントのMoodleとPHP7
- https://www.php.net/ - PHPのWebサイト
- https://php.iis.net/ - IIS用Microsoft PHPインストーラ
- MoodleDocs:Style_guide# PHP構文を強調するためのPHP_syntax_highlighting
- GeSHi(Generic Syntax Highlighter)フィルタを使ったコードシンタックスハイライト。