序章

Mahara は、オープンソースのeポートフォリオおよびソーシャルネットワーキングシステムであり、「学習者中心の個人学習環境」と自称しています。 マハラは、知識と成長をキュレートして共有するためのプラットフォームを学習者に提供する学術機関で特に人気があります。 遠隔学習環境では、マハラは教育者がデジタル教室を育成し、生徒の進歩を整理するのを助けることができます。 従来の学習管理システム(LMS)とは異なり、Maharaはより分散され、ユーザーに重点を置いています。 この量のユーザーの創造性は、他のより制度的なシステムとは対照的です。

マハラには、学生以外の多くのアプリケーションもあります。 これを使用して、ブログ、履歴書ビルダー、ファイルリポジトリ、またはコンピテンシーフレームワークを構築できます。

このガイドでは、Maharaをインストールし、認証ソースとしてPostgresデータベースを使用するように構成します。 完了すると、サーバーベースのePortfolioへの管理アクセスが可能になります。

前提条件

ステップ1—Maharaのデータベースとユーザーを作成する

最初のステップは、MaharaのPostgresデータベースとユーザーを作成することです。

サーバーのコマンドラインから、 postgres ユーザー:

  1. sudo -i -u postgres

The -i スイッチはインタラクティブなシェルを提供しますが、 sudo で使用 -u switchを使用すると、ユーザーを切り替えることができます。

次に、Postgresユーザーを作成します。 必ず交換してください mahara ご希望のユーザー名で:

  1. createuser -SRDP mahara

Postgresはあなたにプロンプトを出します Enter password for a new role:. role ここでは、作成しようとしている新しいユーザーを指します。 選択したパスワードを入力し、プロンプトが表示されたらパスワードを再入力します。

次に、Maharaインストール用のデータベースを作成します。 次のコマンドを使用して、置き換えます maharadb 新しいデータベースの優先名と mahara 作成したばかりの新しいユーザーで:

  1. createdb -O mahara -EUTF8 maharadb

これで、 postgres ユーザー:

  1. exit

注: MaharaデータベースにはPostgresを使用することをお勧めしますが、 MySQL を使用する場合は、Mahara用に新しいユーザーとデータベースを設定する必要があります。 これを行うには、次のコマンドを使用してMySQLrootアカウントにログインします。

  1. mysql -u root -p

アクセスするには、MySQLルートパスワードを入力してください。 次に、Maharaデータベースを作成します。 交換 maharadb 別の名前で:

  1. create database maharadb character set UTF8;

次に、Mahara用の新しいMySQLユーザーを作成し、パスワードを設定して、ユーザーにアクセスを許可します。 maharadb データベース。 代わりに強力なパスワードを提供することを忘れないでください password 交換してください mahara ご希望のユーザー名で:

  1. grant all on maharadb .* to 'mahara '@'localhost' identified by 'password';

これで、Maharaのデータベースが作成され、ロールが作成されました。 これで、Maharaをインストールして構成できます。

ステップ2—マハラをダウンロードする

Mahara用にデータベースを作成して構成したので、Mahara自体をダウンロードしましょう。 標準ビルドはMaharaのサーバーからダウンロードでき、最新のMaharaビルドはここにあります。

あなたが持ったら .tar.gz 最新の安定版リリースへのリンク、を使用してダウンロード wget 指図。 必ず交換してください /19.10/19.10.2/+download/mahara-19.10.2.tar.gz 選択したリリースで:

  1. wget https://launchpad.net/mahara/19.10/19.10.2/+download/mahara-19.10.2.tar.gz

これにより、というラベルの付いた圧縮ファイルがダウンロードされます mahara-19.10.2.tar.gz. 圧縮ファイルを抽出して、Maharaディレクトリ構造を作成します。

  1. tar xzvf mahara-19.10.2.tar.gz
  2. ls

The ls コマンドは抽出をチェックします。 これで、新しいものが表示されます mahara-19.10.2 ディレクトリ:

Output
mahara-19.10.2.tar.gz mahara-19.10.2

マハラをにコピーしましょう /var/www/mahara.your_domain. mahara.your_domain 前提条件セクションの仮想ホスト構成手順で作成したディレクトリと一致する必要があります。

注:Maharaは空のディレクトリにインストールする必要があります。 ここにすでにファイルがある場合は、ファイルを変更することを検討してください DocumentRoot 新しいディレクトリを使用します。

次に、Maharaディレクトリをコピーします。

  1. sudo cp -a mahara-19.10.2/. /var/www/mahara.your_domain/

The -a スイッチは、システムがファイルとフォルダとともにファイルのアクセス許可をコピーすることを保証します。 The . ソースファイルの最後に、隠しファイルを含むソースディレクトリ内のすべてのものが宛先ディレクトリにコピーされるようにします。

Maharaが正しく機能するには、追加のPHP拡張機能が必要です。

次のコマンドを実行して、必要なすべての依存関係をインストールします。

  1. sudo apt update
  2. sudo apt install php-gd php-pgsql php-xmlrpc php-xml php-curl php-mbstring

タイプ y インストールを完了するためのプロンプトが表示されます。

サーバーにMaharaをインストールしました。 次に、datarootディレクトリを作成します。

ステップ3—データルートディレクトリを作成する

Maharaコードを設定したので、datarootディレクトリを作成しましょう。 これは、Maharaがアップロードされたファイルと実行する必要のある他のファイルを書き込む場所です。 したがって、Webサーバーはそれに書き込むことができる必要があります。

datarootディレクトリは、Maharaコードがあるディレクトリの外にもある必要があります。 あなたはそれをあなたの中に持つことを避けるべきです public_html 完全にディレクトリ。

にディレクトリを作成しましょう /var/maharadata:

  1. sudo mkdir /var/maharadata

所有権を更新します chown:

  1. sudo chown -R www-data:www-data /var/maharadata

これにより、Webサーバーがディレクトリに書き込むことができます。 これで、Maharaの構成を完了できます。

ステップ4—Mahara構成ファイルのセットアップ

このステップでは、マハラの最終調整を行います config.php ファイル。 これらの調整により、データベースが接続され、パスワードが暗号化されます。

Maharaコードディレクトリに切り替えます。

  1. cd /var/www/mahara.your_domain/htdocs

あなたの config.php ファイルをコピーして config-dist.php のファイル htdocs ディレクトリ。

ディレクトリを変更し、ファイルをコピーします。

  1. cp config-dist.php config.php

開催中 config.php を使用して nano またはお好みのテキストエディタ:

  1. nano config.php

ファイル内の次のセクションを見つけて、必要な変更を加えます。 離れる $cfg->dbtype なので postgres MySQLを使用している場合を除き、その場合は次のように変更します。 mysql. 変化する maharadb, mahara、 と dbpassword ステップ1でデータベース名、ユーザー、およびパスワードにそれぞれ使用した値と一致させるには、次のようにします。

./htdocs/config.php
...
$cfg->dbtype   = 'postgres';
$cfg->dbhost   = 'localhost';
$cfg->dbport   = null; // Change if you are using a non-standard port number for your database
$cfg->dbname   = 'maharadb';
$cfg->dbuser   = 'mahara';
$cfg->dbpass   = 'dbpassword';
...

同じファイルで、次のセクションを見つけます。

/var/www/mahara/htdocs/config.php
...
$cfg->dataroot = '/path/to/uploaddir';
...

ステップ3で設定したとおりに、Maharaのdatarootディレクトリを指すように変更します。

/var/www/mahara/htdocs/config.php
...
$cfg->dataroot = '/var/maharadata';
...

最後に、を更新しましょう passwordsaltmain ランダムな秘密の文字列を使用します。 これにより、保存されているユーザーパスワードが暗号化されます。 次の行を見つけてコメントを外します。

/var/www/mahara/htdocs/config.php
...
// $cfg->passwordsaltmain = 'some long random string here with lots of characters';
...

OpenSSLを使用できます rand シークレットソルト文字列として使用するランダム文字列を生成する関数。 新しい端末を開き、サーバーに再度接続し、次のコマンドを実行してこの文字列を生成します。

  1. openssl rand -base64 32

The -base64 32 オプションは、32文字の長さのBase64エンコード文字列を保証します。 の値を更新します passwordsaltmainyour_generated_salt:

/var/www/mahara/htdocs/config.php
...
$cfg->passwordsaltmain = 'your_generated_salt';
...

警告:一度設定すると、この文字列を失わないようにする必要があります。そうしないと、すべてのユーザーパスワードをリセットする必要があります。 の安全なバックアップを保持することをお勧めします config.php ファイル

注:設定することをお勧めします productionmode Maharaを開発サイトまたはテストサイトとして使用する場合はfalseになります。 これをfalseに設定すると、テストに役立つ警告とエラーメッセージが画面に表示されます。

ファイルを保存して閉じます。

Maharaを構成すると、ApacheWebサーバーを使用してMaharaにサービスを提供する準備が整います。

ステップ5—Apacheの構成

前提条件で、ドメインを構成し、それをこのサーバーにポイントしました。 また、Apacheをインストールし、Let’sEncryptを使用してHTTPSを設定しました。 次に、Apacheを使用してMaharaにサービスを提供しましょう。

仮想ホスト構成ファイルの名前が mahara.your_domain.conf Let’s Encryptは、という新しい構成ファイルを作成しました mahara.your_domain-le-ssl.conf ドメインのHTTPSリクエストを処理します。

そのファイルを開きます。 必ず交換してください mahara.your_domain ファイルの実際の名前:

  1. sudo nano /etc/apache2/sites-available/mahara.your_domain-le-ssl.conf

ファイルは次のようになります。

/etc/apache2/sites-available/your_domain-le-ssl.conf
...
<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName mahara.your_domain
        DocumentRoot /var/www/mahara.your_domain
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLCertificateFile /etc/letsencrypt/live/mahara.your_domain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mahara.your_domain/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
...

The ServerName ディレクティブは、この仮想ホスト定義に一致する必要があるベースドメインを定義します。 これは、前提条件セクションでSSL証明書を使用して保護するために選択したドメイン名でもある必要があります。

注:Apache構成には次のものが含まれている必要があります ServerAliases. Maharaは、 oneurlを介してアクセスされることを想定しています。 サーバーエイリアスを使用すると、2回ログインする必要がある、シングルサインオン(SSO)機能が機能しなくなるなどの問題が発生します。

ただし、何らかの理由でエイリアスが必要な場合は、上記のディレクティブに加えて、別の2番目のVirtualHostディレクティブを設定できます。

ファイルに次の追加を行います。

/etc/apache2/sites-available/your_domain-le-ssl.conf
...
<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName mahara.your_domain
        DocumentRoot /var/www/mahara.your_domain/htdocs

        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>

        <Directory /var/www/your_domain/htdocs>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLCertificateFile /etc/letsencrypt/live/mahara.your_domain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mahara.your_domain/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
...

まず、更新します DocumentRoot 含める /htdocs. 次に、2つの新しいブロックを追加します。

The <Directory /> ブロックはファイルシステムのルートを指します。 サーバー上のすべてのファイルとディレクトリに適用されるディレクティブを指定します。 このブロックにディレクティブを指定すると、次のようなデフォルトのディレクティブを配置することで、サーバーを侵入から保護できます。 AllowOverride None.

The <Directory /var/www/mahara.your_domain/htdocs> ブロックは、Maharaのドキュメントルートを指します。 ここで宣言されたディレクティブは、 <Directory /> ブロック。 これらのディレクティブは、Apache構成がMaharaにサービスを提供するための基本的な要件です。

ファイルを保存して閉じます。

これで、PHPサービスを構成する準備が整いました。

ステップ6—PHP設定の調整

最後のステップは、Apacheを更新することです。 php.ini ファイル。 これにより、ログの詳細度が変更され、最大アップロードのサイズが変更されます。 POST サイズ。

ファイルを開きます。

  1. sudo nano /etc/php/7.2/apache2/php.ini

これは大きなファイルです。 更新を1つずつ見ていきましょう。

を見つける log_errors 行を入力し、強調表示されたコードと一致することを確認します。

/etc/php/7.2/apache2/php.ini
. . .
log_errors = On
. . .

設定 log_errors オンにすると、PHPは、デバッグを支援するためにMaharaの実行中に発生したエラーをログに記録できるようになります。

ここで、最初の行を見つけます upload_max_filesize = 2M. 交換 2M50M:

/etc/php/<^>7.2<^>/apache2/php.ini
. . .
upload_max_filesize = 50M
. . .

これにより、アップロードファイルの最大サイズが50メガバイトに増加します。

ここで、最初の行を見つけます post_max_size = 8M. 交換 8M100M:

/etc/php/<^>7.2<^>/apache2/php.ini
. . .
post_max_size = 100M
. . .

upload_max_filesize 投稿されたファイルに許可されている最大サイズを考慮します。 post_max_size すべてに許可される最大サイズです POST ボディデータ。 したがって、この2番目の数値を常に高くする必要があります。 これらの設定により、Maharaは設定された最大値でファイルのアップロードを受け入れることができます。

次に、ファイルの最後に移動して、次のディレクティブを追加します。

/etc/php/7.2/apache2/php.ini
...
register_globals = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
magic_quotes_gpc = Off
allow_call_time_pass_reference = Off

register_globals = Off 無効にします register_globals. これを有効にすると、PHPのマニュアルで強調されているようにセキュリティに影響があります。

設定 magic_quotes_runtimeOff PHPが、外部ソースから入ってくる関数からのバックスラッシュで引用符を自動的にエスケープするのを防ぎます(POST/GET). magic_quotes_runtime, magic_quotes_sybase、 と magic_quotes_gpc 非推奨です。

allow_call_time_pass_reference また、非推奨です。

ファイルを保存して閉じます。

次に、Apacheを再起動します。

  1. sudo systemctl restart apache2

これでサーバーのセットアップは完了です。 これで、Maharaインストーラーを実行し、Webブラウザーからeポートフォリオを入力する準備が整いました。

ステップ7—Maharaインストーラーの実行

ApacheとPHPが適切に構成されたら、Webベースのインストーラーを使用してMaharaのインストールを完了します。

ブラウザで、サーバーのドメイン名に移動します。 Maharaのライセンス情報を表示する画面と、インストールを続行するためのボタンが表示されます。

Maharaのインストールボタンをクリックし、インストーラーがすべてのインストールの実行を完了するまで待ちます。 完了したら、下にスクロールします。 あなたは言うセクションが表示されます Maharaのインストールに成功しました。 継続する続行をクリックして続行します。

Maharaは、新しいパスワードとメインの電子メールアドレスを入力するように求めます。 先に進み、フォームを送信してください。

これで、Maharaの使用を開始する準備が整いました。 ただし、新しいePortfolioの探索を開始する前に、いくつかの最終機能を設定することをお勧めします。

メールを設定する

本番環境では、Maharaがメールを送信できることを確認してください。 これは、ユーザーがサイトに登録した後に確認メールなどの通知を送信する場合に便利です。 管理者設定で送信SMTPサーバーを指定できます。 右上のドロップダウンメニューをクリックし、サイトの構成->サイトオプション->メールを選択します。

cronジョブを設定する

最後に、ヒットするcronジョブを設定することを検討してください htdocs/lib/cron.php 毎分。 これを設定しないと、RSSフィードが更新されず、一部の電子メール通知が送信されないことがわかります。 先に進み、次のコマンドを入力します。 選択したエディターを選択するオプションが表示されます。 この例では、 nano 編集者:

  1. sudo crontab -e

ファイルの下部に次の行を追加して置き換えます mahara.your_domain ステップ2でMaharaをインストールしたディレクトリの名前:

* * * * * php /var/www/mahara.your_domain/htdocs/lib/cron.php

電子メールとcronジョブを構成すると、Maharaを使用する準備が整います。

結論

マハラは強力で人気のあるプラットフォームです。 これは、特にリモート学習環境内で、教師と学習者にとって優れたリソースです。 マハラは、ユーザーがブログを作成してビルダーを再開する教育以外でも人気があります。

ユーザーは多数のテーマから選択することもでき、管理者はプラグインの大規模なライブラリを探索できます。

ユーザーインターフェイスに慣れたら、MaharaのWebサイト次のステップの記事に従って他のアイデアを検討してください。