PHP
PHPは、Moodleの開発に使用されているスクリプト言語です。PHPはウェブサーバに統合されています。ウェブサーバは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以降が必要です
- Moodle 3.9では、PHP 7.2から7.4が必要です
- Moodle 3.11および4.0では、PHP 7.3から8.0が必要です
- Moodle 4.1(LTS)では、PHP 7.4から8.1が必要です
- Moodle 4.2では、PHP 8.0から8.2が必要です
- Moodle 4.3では、PHP 8.0から8.2が必要です
- Moodle 4.4では、PHP 8.1から8.3が必要です
- Moodle 4.5(LTS)では、PHP 8.1から8.3が必要です
- Moodle 5.0では、PHP 8.2から8.4が必要です
- Moodle 5.1では、PHP 8.2から8.4が必要です
- Moodle 5.2では、PHP 8.3から8.4が必要です
- 今後リリース予定のMoodle 5.3(LTS)では、PHP 8.3から8.4が必要です
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はOFFにする必要があります。(PHP 5.3.0で非推奨となり、PHP 7.0.0で削除されました。)
- file_uploadsはONにする必要があります。
- session.auto_startはOFFにする必要があります。
- 一時フォルダが定義されていて、ウェブサーバユーザが書き込み可能である必要があります。
- エラーの表示/ログ記録のセクションを確認してください。設定がサーバの用途に適していることを確認してください。
- post_max_sizeおよびupload_max_filesizeは、アップロードできる最大ファイルサイズを制限します。
- [mail function]セクションおよびデータベースのセクション(選択したデータベース用)を確認し、サーバの設定と一致していることを確認してください。
正しいphp.iniの見つけ方
php.iniファイルの場所がわかりにくいことや、複数見つかることもあります。確実に知るには、「phpinfo」を実行してください(下記参照)。php.iniファイルのパスは、最上部のセクションの数行下にあります。
なお、cron(またはその他の処理)の実行にコマンドライン(CLI)のPHPを使用している場合、そのPHPは別のphp.iniファイルで設定されている可能性があります。確認するには、次のコマンドを実行します:
php -i | grep php.ini
PHPの拡張モジュールとライブラリ
次のPHP拡張モジュールが必須または推奨です(一部、たとえばiconv、ctypeおよびtokenizerは、現在ではデフォルトでPHPに含まれています)。その他の拡張モジュールは、インストールまたは選択する必要があります。
必須の拡張モジュール
- ctype
- curl
- dom
- gd
- iconv
- intl
- json
- mbstring
- pcre
- simplexml
- spl
- xml
- zip
- 選択したデータベースに適した拡張モジュールも必要です(pgsql、mysqli、sqlsrv、oci8またはpdo)。
- Moodleのオプション機能、特に外部認証や登録をサポートするために、その他のPHP拡張モジュールが必要になる場合があります(たとえば、LDAP認証にはLDAP拡張モジュール、チャットサーバにはsockets拡張モジュールが必要です)。
推奨の拡張モジュール
- openssl(ネットワーキングおよびウェブサービスに必要)
- soap(ウェブサービスに必要)
- sodium(PHP 8以降で必要)
- tokenizer
- xmlrpc(ネットワーキングおよびウェブサービスに必要)
(不足している)拡張モジュールのインストール
これは、マシンにPHPがどのようにインストールされたか、およびどのようなアクセス権があるかによって異なります。考えられる方法は次のとおりです:
- 拡張モジュールがインストールされていても、有効になっていない場合があります。その場合は、php.iniで
extension=<extension-name>ディレクティブを使用して有効にできます。 - ホスティングされているサーバの場合は、管理者またはホスティング業者に依頼する必要があるでしょう。
- PHPをソースからコンパイルした場合は、「configure」の設定を変更して再コンパイルする必要があります。ソースからのPHPのコンパイルをご覧ください。
- パッケージを使用してインストールした場合(一般的にLinux)は、必要なパッケージをインストールできます(Linuxディストリビューションのドキュメントをご覧ください)。
- Windowsを使用している場合は、php.iniで該当するDLLファイルのコメントを解除するだけです。
変更や追加を行った後は、ウェブサーバを再起動することを忘れないでください。
.htaccessファイル
php.iniファイルにアクセスできない場合や、同じサーバ上の他のPHPアプリケーションと要件が競合する場合は、.htaccessファイルでPHPの設定を変更できることがあります。このファイルは、Moodleインストールの「ルート」(つまり、config.phpファイルと同じ場所)に配置してください。
このファイルは必ずしも.htaccessという名前ではなく、まったく動作しない場合もあります。確実に知るには、サーバ管理者に問い合わせてください。
設定は、次の2つの形式のいずれかで行を追加することで行います:
- php_value name value
- php_flag name on/off
例:
- 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の情報を表示するには:
- テキストエディタを使用して、次の1行を含むinfo.phpというファイルを作成します:
<?php phpinfo(); ?>
- このファイルをinfo.phpとして保存します。
- このファイルを、サーバ上のウェブからアクセス可能なルートフォルダにアップロードします。
- ブラウザでこのファイルを開きます。例:http://<server-name>/info.php
関連項目
- ソースからのPHPのコンパイル
- 開発者ドキュメントのMoodle and PHP7
- http://www.php.net/ - PHPのウェブサイト
- http://php.iis.net/ - IIS用のMicrosoft PHPインストーラ
- スタイルガイド#PHP構文のハイライト:PHP構文をハイライトする方法
- コード構文のハイライト:GeSHi(Generic Syntax Highlighter)フィルタを使用します。