Moodleプラグイン開発環境を構築します。
おおまかにはWindows環境下で動作するMoodleを構築するだけです。主に必要なのは以下。
①WEBサーバー
②DB
③PHP
④Moodle
⑤IDE(今回はNetBeans)
とりあえず私は簡単に作るためにXAMPPを使って近しいバージョンの①~③をWindows環境で用意し、開発したものを本番環境(Linux)に配置して動作させる流れで開発を進めます。
(1)XAMPPインストール(①WEBサーバー/②DB/③PHP)
XAMPPは「①WEBサーバー」に該当するApache、「②DB」に該当するMySQL、「③PHP」がひとまとめになった状態で提供されています。今回はWindows環境にインストールします。
ちなみに私の本番環境(Linux)は以下。
ソフトウェア | バージョン | 備考 |
Apache | 2.4.6 | |
MariaDB | 5.5.44 | |
PHP | 5.4.16 | |
Moodle | 2.9.2+ |
XAMPPはここからダウンロードが可能ですが、なるべく上記の環境に近いものにしたいので古いものを探してみます。ダウンロード画面からXAMPP for WIndowsの「More Downloads >>」リンクを選択。「XAMPP Windows」を選択すると古いバージョンの一覧が表示されます。(ここ)
XAMPP内の各ソフトウェアバージョンの確認には「XAMPPのバージョン一覧」を参考にさせて頂きました。
Moodleの必須環境を満たす必要があるので、必ずリリースノートを確認してからXAMPPのバージョンを決めましょう。(末端を省略したバージョン(今回であれば2.9)のリリースノートに必須環境が記載されています)
(私は最後まで環境構築してからここまで戻る羽目に陥りました。。。)
Moodle | Apache | MySQL | PHP |
2.9(2.9.3+) | (記載なし?) | 5.5.31以上 | 5.4.4以上 |
とりあえず以下が条件を満たしています。
XAMPP | Apache | MySQL | PHP |
1.8.2 | 2.4.10 | 5.6.21 | 5.4.31 |
リンクを選択すると色々なバージョンが表示されますが、とりあえずインストーラ形式のEXEファイル「xampp-win32-1.8.2-6-VC9-installer.exe」をダウンロードしました。
ダウンロードしたファイル「xampp-win32-1.8.2-6-VC9-installer.exe」をダブルクリックし、指示通りインストールを進めます。
以下はウイルス対策ソフトのせいでインストールが阻害されたり、遅くなったりするよという警告画面。インストールを続けるので「Yes」ボタン押下。
以下はUAC(ユーザーアカウント制御)に関する警告なので、無視して「OK」ボタンを押下します。(UACは「次のプログラムにこのコンピュータへの変更を許可しますか?」とか聞いてくるあれです)
とりあえず色々いじらなくてよいなら、あとはひたすら指示に沿ってインストールを進めるだけです。(私は途中でインストールディレクトリが既に存在する警告が出たので、適当なディレクトリにインストールしました)
(2)Moodleインストール(④Moodle)
リンク先(公式サイト)からファイルをダウンロードします。トップページから最新のバージョンが書かれたボタンを押下し、移動先のページで「Moodle installer package for Windows」のリンクを選択。
2.3.2+がない。。。と思いきや、画面右側にある「Other supported releases」リンクで遷移した先のページにありました。「Download ZIP」ボタンを押下。
ダウンロードしたファイル「moodle-latest-29.zip」を展開。「xamppインストールディレクトリ¥htdocs」直下に展開したフォルダ「moodle-latest-29」の中身の「moodle」を移動。
今回は検証用の環境なのでセットアップも以下のようにざっくりやります。
(2-1)文字コード設定
(2-2)データベース作成
(2-3)データディレクトリ作成
(2-4)ウェブベースインストーラ実行
(2-5)Moodle設定
※手順はMoodleインストール時にも使ったMoodleをインストールするを参考にしました
(2-1)文字コード設定
まずは忘れないうちに文字コードの設定から。
(参考サイト:XAMPPのPHP,MySQLの文字コードをUTF-8に設定)
まずはPHPから。
「XAMPPインストールフォルダ\php\php.ini」を開き、以下のように編集して保存。(先頭の;(コメントアウト)削除を忘れないように)
mbstring.internal_encoding = UTF-8 mbstring.http_output = UTF-8 mbstring.encoding_translation = On
次にMySQL。
「XAMPPインストールフォルダ\mysql\bin\my.ini」を開き、以下のように編集して保存。
[client]ブロックに下記の行を追加。
default-character-set=utf8
[mysqld]ブロックに下記の行を追加。(UTF 8 Settingsと書かれたコメント箇所以下を有効化すればいいのですが、「init-connect=\’SET NAMES utf8\’」の行のみ有効化するとエラーが起きるので注意)
collation_server=utf8_unicode_ci character_set_server=utf8 skip-character-set-client-handshake character_sets-dir="XAMPPインストールフォルダ/mysql/share/charsets"
[mysqldump]ブロックに下記の行を追加する
default-character-set=utf8
[mysql]ブロックに下記の行を追加する
default-character-set=utf8
(2)データベース作成
XAMPPコントロール画面でMySQLを起動し、Shellボタン押下。
※batファイルがない旨のエラーが出た場合は「Yes」ボタン押下で作成して貰う
MySQLにログイン。
mysql -u root
今回は初期のセキュリティ対応を飛ばしました。
まずデータベースを作成。
CREATE DATABASE DB名 DEFAULT CHARACTER SET 'utf8';
次にユーザーを作成。
GRANT ALL PRIVILEGES ON DB名.* TO 'ユーザー名'@'接続ホスト' IDENTIFIED BY 'パスワード';
(2-3)データディレクトリ作成
ディレクトリ(フォルダ)を「XAMPPインストールディレクトリ\moodledata」として作成。
(2-4)ウェブベースインストーラ実行
XAMPPコントローラから、Apacheを起動します。ただしWindowsの場合は色々なプログラムを動かしている関係上、80番ポート等が他のプログラムで使用されており、起動エラーになる可能性が高いです(私も起動しませんでした。。。)
検証用の環境なので、適当なポートに変えて起動することにします。
・HTTPポート(80番)の変更
ファイル「XAMPPインストールディレクトリ\apache\conf\httpd.conf」を以下のように変更。
(修正前)
Listen 80
(修正後)
Listen 変更後ポート番号
・HTTPポート(80番)の変更
ファイル「XAMPPインストールディレクトリ\apache\conf\httpd.conf」を以下のように変更。
(修正前)
Listen 80
ServerName localhost:80
(修正後)
Listen 変更後ポート番号
ServerName localhost:変更後ポート番号
・HTTPSポート(443番)の変更
ファイル「XAMPPインストールディレクトリ\apache\conf\extra\httpd-ssl.conf」を以下のように変更して保存。(注意:先ほどとは異なる番号にしないとダメです)
(修正前)
Listen 443
<VirtualHost _default_:443>
ServerName localhost:441
(修正後)
Listen 変更後SSLポート番号
<VirtualHost _default_:変更後SSLポート番号>
ServerName localhost:変更後SSLポート番号
再度、Apacheを起動。
ブラウザを開き、URL「http://localhost:変更後ポート/moodle」にアクセスします。
【設定項目】
・言語選択:日本語(ja)
・データディレクトリ:(2-3)データディレクトリ作成で作成したディレクトリのパス
・データベースドライバ:Improved MySQL(ネイティブ/mysql)
・データベースホスト:localhost
・データベース名:(2-2)データベース作成で作成したデータベース名
・データベースユーザ:(2-2)データベース作成で作成したユーザーのユーザー名
・データベースパスワード:(2-2)データベース作成で作成したユーザーのパスワード
・テーブル接頭辞:mdl(デフォルト)
・データベースポート:3306(特に設定変えていなければ)
最後に、以下2点のサーバーチェック項目が残りました。
1.php_extension:intl:最適な動作のため、インストール及び有効化してください。
2.php_setting:opcache.enable:PHP設定を変更して下さい。
とりあえず問題はあるが、最低限の動作環境は満たしているようなので画面下部の「続ける」ボタンを押下。
(インストール待ちで結構時間がかかります)
画面から管理者のプロファイルを更新。
【設定項目】
・ユーザ名:Moodle管理者ユーザ名
・新しいパスワード:Moodle管理者パスワード(大文字小文字や記号、数字等が必要)
・姓:適当な文字列
・名:適当な文字列
・メールアドレス:適当なメールアドレス
なぜか「http://localhost:変更後ポート番号/moodle」にアクセスするも、「ページの自動転送設定が正しくありません」とエラーが発生。やむを得ず、htdocs直下のmoodleファイルごと一旦削除し、改めて設置してブラウザインストールを再実行。
DB消さずにそのまま使ったせいか、手順が幾つかスキップされて無事Moodleにログインできました。エラーが幾つか出て、以後は問題なく使える状態になりました。
DBも一旦消してから、再度新規作成しておいた方が良いと思います。
(2-5)Moodle設定
管理者でMoodleにログインし、管理->サイト管理->ロケーションを選択。
・デフォルトタイムゾーン:アジア/東京
・デフォルトの国:日本
を設定し、「変更を保存する」ボタン押下。
同じく管理->サイト管理->開発->デバッグを選択。
・デバッグメッセージ:DEVELOPER:開発者のための特別Moodleデバッグメッセージ
・デバックメッセージを表示する:チェックを入れる
・ページ情報を表示する:チェックを入れる
を設定し、「変更を保存する」ボタン押下。
(3)統合開発環境(⑤IDE(今回はNetBeans))
プラグインだけならソース量も少ないのでテキストエディタで開発を進めようと思ったのですが、どうもMoodle本体のソースも追う必要があるようなのでIDEを使う事にします。
IDEはEclipse(PDT)かNetBeans(PHPバンドル)のどちらか、好みで選ぶと良いと思います。私はEclipseにどっぷり浸かっている人間のため、今回は折角なのでNetBeansに慣れてみる事にしました。
環境構築はこちらの記事「NetBeans(PHP開発環境)構築」を参考にしてください。
折を見て、Moodle本体のインポート方法も載せようと思います。
必要ならGitHub環境も作っておくと、テンプレートのDLや地震の作成したプラグインの公開に便利かと思います。
意外と手間がかかりましたが、以上で環境構築終了です。