Ubuntu18.04にMaharaをインストールして構成する方法
序章
Mahara は、オープンソースのeポートフォリオおよびソーシャルネットワーキングシステムであり、「学習者中心の個人学習環境」と自称しています。 マハラは、知識と成長をキュレートして共有するためのプラットフォームを学習者に提供する学術機関で特に人気があります。 遠隔学習環境では、マハラは教育者がデジタル教室を育成し、生徒の進歩を整理するのを助けることができます。 従来の学習管理システム(LMS)とは異なり、Maharaはより分散され、ユーザーに重点を置いています。 この量のユーザーの創造性は、他のより制度的なシステムとは対照的です。
マハラには、学生以外の多くのアプリケーションもあります。 これを使用して、ブログ、履歴書ビルダー、ファイルリポジトリ、またはコンピテンシーフレームワークを構築できます。
このガイドでは、Maharaをインストールし、認証ソースとしてPostgresデータベースを使用するように構成します。 完了すると、サーバーベースのePortfolioへの管理アクセスが可能になります。
前提条件
- ルート以外の1つのUbuntu18.04サーバー
sudo
ユーザーとファイアウォール。 手順については、Ubuntu18.04初期サーバーセットアップガイドに従ってください。 - Postgresリレーショナルデータベース管理システムがインストールされています。 手順については、 Ubuntu18.04ガイドにPostgreSQLをインストールして使用する方法に従ってください。 ステップ1—PostgreSQLをインストールするだけで十分です。
- ApacheとPHPがインストールされています。 手順については、 Linux、Apache、MySQL、PHP(LAMPスタック)をUbuntu18.04ガイドにインストールする方法に従ってください。 MaharaはMySQLではなくPostgresを使用することを推奨していますが、このガイドのステップ2に従って、代わりにMySQLをインストールして使用することができます。
- サーバーを指すように構成されたドメイン名。 ドメインをDigitalOceanドロップレットにポイントするには、 Common DomainRegistrarsガイドからDigitalOceanネームサーバーをポイントする方法に従ってください。 このチュートリアルでは、
mahara.your_domain
例として。 - を使用してドメイン用に構成された仮想ホスト
ServerName
指令。 ガイドについては、 Ubuntu 18.04にApacheWebサーバーをインストールする方法のステップ5—仮想ホストのセットアップ(推奨)にジャンプしてください。 - Ubuntu 18.04でLet’sEncryptを使用してApacheを保護する方法ガイドに従って、構成したドメインに設定されたLet’sEncrypt証明書。
ステップ1—Maharaのデータベースとユーザーを作成する
最初のステップは、MaharaのPostgresデータベースとユーザーを作成することです。
サーバーのコマンドラインから、 postgres
ユーザー:
- sudo -i -u postgres
The -i
スイッチはインタラクティブなシェルを提供しますが、 sudo
で使用 -u
switchを使用すると、ユーザーを切り替えることができます。
次に、Postgresユーザーを作成します。 必ず交換してください mahara
ご希望のユーザー名で:
- createuser -SRDP mahara
Postgresはあなたにプロンプトを出します Enter password for a new role:
. role
ここでは、作成しようとしている新しいユーザーを指します。 選択したパスワードを入力し、プロンプトが表示されたらパスワードを再入力します。
次に、Maharaインストール用のデータベースを作成します。 次のコマンドを使用して、置き換えます maharadb
新しいデータベースの優先名と mahara
作成したばかりの新しいユーザーで:
- createdb -O mahara -EUTF8 maharadb
これで、 postgres
ユーザー:
- exit
注: MaharaデータベースにはPostgresを使用することをお勧めしますが、 MySQL を使用する場合は、Mahara用に新しいユーザーとデータベースを設定する必要があります。 これを行うには、次のコマンドを使用してMySQLrootアカウントにログインします。
- mysql -u root -p
アクセスするには、MySQLルートパスワードを入力してください。 次に、Maharaデータベースを作成します。 交換 maharadb
別の名前で:
- create database maharadb character set UTF8;
次に、Mahara用の新しいMySQLユーザーを作成し、パスワードを設定して、ユーザーにアクセスを許可します。 maharadb
データベース。 代わりに強力なパスワードを提供することを忘れないでください password
交換してください mahara
ご希望のユーザー名で:
- 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
選択したリリースで:
- wget https://launchpad.net/mahara/19.10/19.10.2/+download/mahara-19.10.2.tar.gz
これにより、というラベルの付いた圧縮ファイルがダウンロードされます mahara-19.10.2.tar.gz
. 圧縮ファイルを抽出して、Maharaディレクトリ構造を作成します。
- tar xzvf mahara-19.10.2.tar.gz
- ls
The ls
コマンドは抽出をチェックします。 これで、新しいものが表示されます mahara-19.10.2
ディレクトリ:
Outputmahara-19.10.2.tar.gz mahara-19.10.2
マハラをにコピーしましょう /var/www/mahara.your_domain
. mahara.your_domain
前提条件セクションの仮想ホスト構成手順で作成したディレクトリと一致する必要があります。
注:Maharaは空のディレクトリにインストールする必要があります。 ここにすでにファイルがある場合は、ファイルを変更することを検討してください DocumentRoot
新しいディレクトリを使用します。
次に、Maharaディレクトリをコピーします。
- sudo cp -a mahara-19.10.2/. /var/www/mahara.your_domain/
The -a
スイッチは、システムがファイルとフォルダとともにファイルのアクセス許可をコピーすることを保証します。 The .
ソースファイルの最後に、隠しファイルを含むソースディレクトリ内のすべてのものが宛先ディレクトリにコピーされるようにします。
Maharaが正しく機能するには、追加のPHP拡張機能が必要です。
次のコマンドを実行して、必要なすべての依存関係をインストールします。
- sudo apt update
- 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
:
- sudo mkdir /var/maharadata
所有権を更新します chown
:
- sudo chown -R www-data:www-data /var/maharadata
これにより、Webサーバーがディレクトリに書き込むことができます。 これで、Maharaの構成を完了できます。
ステップ4—Mahara構成ファイルのセットアップ
このステップでは、マハラの最終調整を行います config.php
ファイル。 これらの調整により、データベースが接続され、パスワードが暗号化されます。
Maharaコードディレクトリに切り替えます。
- cd /var/www/mahara.your_domain/htdocs
あなたの config.php
ファイルをコピーして config-dist.php
のファイル htdocs
ディレクトリ。
ディレクトリを変更し、ファイルをコピーします。
- cp config-dist.php config.php
開催中 config.php
を使用して nano
またはお好みのテキストエディタ:
- nano config.php
ファイル内の次のセクションを見つけて、必要な変更を加えます。 離れる $cfg->dbtype
なので postgres
MySQLを使用している場合を除き、その場合は次のように変更します。 mysql
. 変化する maharadb
, mahara
、 と dbpassword
ステップ1でデータベース名、ユーザー、およびパスワードにそれぞれ使用した値と一致させるには、次のようにします。
...
$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';
...
同じファイルで、次のセクションを見つけます。
...
$cfg->dataroot = '/path/to/uploaddir';
...
ステップ3で設定したとおりに、Maharaのdatarootディレクトリを指すように変更します。
...
$cfg->dataroot = '/var/maharadata';
...
最後に、を更新しましょう passwordsaltmain
ランダムな秘密の文字列を使用します。 これにより、保存されているユーザーパスワードが暗号化されます。 次の行を見つけてコメントを外します。
...
// $cfg->passwordsaltmain = 'some long random string here with lots of characters';
...
OpenSSLを使用できます rand
シークレットソルト文字列として使用するランダム文字列を生成する関数。 新しい端末を開き、サーバーに再度接続し、次のコマンドを実行してこの文字列を生成します。
- openssl rand -base64 32
The -base64 32
オプションは、32文字の長さのBase64エンコード文字列を保証します。 の値を更新します passwordsaltmain
に your_generated_salt
:
...
$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
ファイルの実際の名前:
- sudo nano /etc/apache2/sites-available/mahara.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ディレクティブを設定できます。
ファイルに次の追加を行います。
...
<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
サイズ。
ファイルを開きます。
- sudo nano /etc/php/7.2/apache2/php.ini
これは大きなファイルです。 更新を1つずつ見ていきましょう。
を見つける log_errors
行を入力し、強調表示されたコードと一致することを確認します。
. . .
log_errors = On
. . .
設定 log_errors
オンにすると、PHPは、デバッグを支援するためにMaharaの実行中に発生したエラーをログに記録できるようになります。
ここで、最初の行を見つけます upload_max_filesize = 2M
. 交換 2M
と 50M
:
. . .
upload_max_filesize = 50M
. . .
これにより、アップロードファイルの最大サイズが50メガバイトに増加します。
ここで、最初の行を見つけます post_max_size = 8M
. 交換 8M
と 100M
:
. . .
post_max_size = 100M
. . .
upload_max_filesize
投稿されたファイルに許可されている最大サイズを考慮します。 post_max_size
すべてに許可される最大サイズです POST
ボディデータ。 したがって、この2番目の数値を常に高くする必要があります。 これらの設定により、Maharaは設定された最大値でファイルのアップロードを受け入れることができます。
次に、ファイルの最後に移動して、次のディレクティブを追加します。
...
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_runtime
に Off
PHPが、外部ソースから入ってくる関数からのバックスラッシュで引用符を自動的にエスケープするのを防ぎます(POST
/GET
). magic_quotes_runtime
, magic_quotes_sybase
、 と magic_quotes_gpc
非推奨です。
allow_call_time_pass_reference
また、非推奨です。
ファイルを保存して閉じます。
次に、Apacheを再起動します。
- sudo systemctl restart apache2
これでサーバーのセットアップは完了です。 これで、Maharaインストーラーを実行し、Webブラウザーからeポートフォリオを入力する準備が整いました。
ステップ7—Maharaインストーラーの実行
ApacheとPHPが適切に構成されたら、Webベースのインストーラーを使用してMaharaのインストールを完了します。
ブラウザで、サーバーのドメイン名に移動します。 Maharaのライセンス情報を表示する画面と、インストールを続行するためのボタンが表示されます。
Maharaのインストールボタンをクリックし、インストーラーがすべてのインストールの実行を完了するまで待ちます。 完了したら、下にスクロールします。 あなたは言うセクションが表示されます
Maharaは、新しいパスワードとメインの電子メールアドレスを入力するように求めます。 先に進み、フォームを送信してください。
これで、Maharaの使用を開始する準備が整いました。 ただし、新しいePortfolioの探索を開始する前に、いくつかの最終機能を設定することをお勧めします。
メールを設定する
本番環境では、Maharaがメールを送信できることを確認してください。 これは、ユーザーがサイトに登録した後に確認メールなどの通知を送信する場合に便利です。 管理者設定で送信SMTPサーバーを指定できます。 右上のドロップダウンメニューをクリックし、サイトの構成->サイトオプション->メールを選択します。
cronジョブを設定する
最後に、ヒットするcronジョブを設定することを検討してください htdocs/lib/cron.php
毎分。 これを設定しないと、RSSフィードが更新されず、一部の電子メール通知が送信されないことがわかります。 先に進み、次のコマンドを入力します。 選択したエディターを選択するオプションが表示されます。 この例では、 nano
編集者:
- sudo crontab -e
ファイルの下部に次の行を追加して置き換えます mahara.your_domain
ステップ2でMaharaをインストールしたディレクトリの名前:
* * * * * php /var/www/mahara.your_domain/htdocs/lib/cron.php
電子メールとcronジョブを構成すると、Maharaを使用する準備が整います。
結論
マハラは強力で人気のあるプラットフォームです。 これは、特にリモート学習環境内で、教師と学習者にとって優れたリソースです。 マハラは、ユーザーがブログを作成してビルダーを再開する教育以外でも人気があります。
ユーザーは多数のテーマから選択することもでき、管理者はプラグインの大規模なライブラリを探索できます。
ユーザーインターフェイスに慣れたら、MaharaのWebサイトの次のステップの記事に従って他のアイデアを検討してください。