Ubuntuのステップバイステップインストールガイド
注意: このドキュメントは、PHP7.2を使用するUbuntu18.04サーバへのMoodle3.7のインストールに関するものです。 |
始める前に
UbuntuとMoodleに使用する必要のあるパスワード(およびユーザ名)を書き留めておくことをお勧めします。
- Ubuntuのrootパスワード
- Moodleが使用するMySQLのユーザ名とパスワード
- Moodleのメイン管理者のユーザ名とパスワード
- 追加の管理者Moodleユーザ名とパスワード
ステップ1:Ubuntuをインストールする
UbuntuデスクトップよりもUbuntuサーバが望ましい理由
- ほとんどのIT専門家は、コマンドラインインターフェイス(CLI)サーバを使用することを好みます。これは、サーバがより安全で、ハッキングされにくいためです。
- アマチュアユーザは、グラフィカル(デスクトップ)インターフェイスを使用する方が簡単だと感じるかもしれません。
- ローカルの実験目的でのみMoodleサーバを使用する場合は、Ubuntuのデスクトップ(64ビット推奨)バージョンをインストールすることをお勧めします。
- CLIのみのサーバをインストールし、後で後悔した場合は、グラフィカルデスクトップを簡単に追加できます。
注意: ほとんどの専門家は推奨しませんが、コマンド'sudo tasksel' または 'sudo apt install ubuntu-desktop' を発行することで、グラフィカルユーザインターフェイス(デスクトップ)install 'Ubuntuデスクトップ 'をインストールできます。ただし、注意して行ってください。GUIが期待どおりに表示されず、CLIさえも使えなくなる場合があります。最初にテストマシンで試してください。 |
Ubuntu14.04よりもUbuntu16.04よりもUbuntu18.04が望ましい(または望ましくない)理由
- 3つすべてがLTS(長期サービス)リリースです。 amd64エディションが推奨されます。 http://www.ubuntu.com/download
- Ubuntu Server 18.04には、必要なすべてのパッケージが含まれています(Apache2、PHP 7.2、MySQL 5.7にデフォルトで付属しています)。 Ubuntu Server 18.04には、16.04および14.04といくつかの小さな違いがあり、主にPHPです。このドキュメントは、これらの変更を反映するように更新されています。
- Moodle3.0.1以降はPHP7.0を使用できます。 Moodle3.7にはPHP7.1が必要です。
- ただし、外部認証または登録プラグインを使用している場合は、Moodle 3.0.1リリース(2015年12月)の時点では、php7ではMSSQLもSQLSRVも使用できないことに注意してください。したがって、プライマリデータベースまたはリモート認証/登録プラグインとしてSQL * Serverを使用している人は、PHP7に移行しないでください。また、構成によっては、一部の拡張機能(memcached [1]、redis、mongodb、xmlrpc ...)が欠落しているか、ディストリビューションで進行中の場合があります、お使いのOSでの正確な可用性をトリプルチェックしてください。
手順
- Ubuntuには、自動更新が失敗し始め、/bootから古いカーネルファイルを自動削除できなくなるまで、自動更新が/bootディレクトリをいっぱいにするというよく知られた問題があります。このため、約5Gbの/bootディレクトリを使用してUbuntuをインストールし、自動クリーンアップを実施することを検討する必要があります。詳細については、こちらをご覧ください - [2]
- VI(軽量エディタ)またはVIM(重量エディタ)のいずれかを使用できますが、VIMを使用する場合はインストールする必要があります
sudo apt-get install vim
- VIまたはVIMコマンド
ファイルを編集するには、Insert キーを押します
編集を終了するには、Esc キーを押します
ファイルを書き込むには、:w を押します。
エディタを終了するには、:q を押します。
:wq を記述して終了することもできます
- Ubuntuでは、インストール中に作成したアカウントである標準ユーザには、多くのディレクトリにインストール/書き込みする権限がありません。以下のチュートリアルでは、ほとんどのコマンドの前に super user do を表す sudo という用語を使用します。
ステップ2:Apache/MySQL/PHPをインストールします
注意: Moodle 3.0.1 [3] は、PHP 7.0のサポートを導入しました。このチュートリアルでは、PHP7.2を使用します |
ターミナルを開き、以下をインストールします。
sudo apt install apache2 mysql-client mysql-server php libapache2-mod-php
'sudo mysql_secure_installation' を実行してmysqlのrootパスワードを設定してください。- どうかどうか、皆様に心からお願いします。パスワードを書き留めてください。後で悲しいことにならないように。手順6で必要になりますので。
ステップ3:追加のソフトウェアをインストールする
sudo apt install graphviz aspell ghostscript clamav php7.2-pspell php7.2-curl php7.2-gd php7.2-intl php7.2-mysql php7.2-xml php7.2-xmlrpc php7.2-ldap php7.2-zip php7.2-soap php7.2-mbstring
モジュールが正しくロードされるようにApacheを再起動します
sudo service apache2 restart
Gitを使用してMoodleコアアプリケーションをインストール/更新します
sudo apt install git
ステップ4:Moodleをダウンロード
ローカルリポジトリをセットアップし、Moodleをダウンロードします。このインストールには/optを使用します。
- Gitはいわゆる バージョン管理システム です。 gitを使用することで、moodleコアアプリケーションの更新がはるかに簡単になります。ステップ5では、moodleコアアプリケーションコードを/optディレクトリに配置する理由についてもう少し詳しく説明します。
cd /opt
Moodleコードとインデックスをダウンロードする
sudo git clone git://git.moodle.org/moodle.git
ダウンロードしたMoodleフォルダにディレクトリを変更します
cd moodle
利用可能な各ブランチのリストを取得します
sudo git branch -a
gitに追跡または使用するブランチを指示します
sudo git branch --track MOODLE_37_STABLE origin/MOODLE_37_STABLE
最後に、指定されたMoodleバージョンをチェックしてください
sudo git checkout MOODLE_37_STABLE
ステップ5:ローカルリポジトリを/var/www/html/にコピーします
sudo cp -R /opt/moodle /var/www/html/
sudo mkdir /var/moodledata
sudo chown -R www-data /var/moodledata
sudo chmod -R 777 /var/moodledata
sudo chmod -R 0755 /var/www/html/moodle
- 説明:
前の手順でローカルリポジトリを設定したので、更新や変更を行った後、それをWebルートにコピーします。/optのように、ローカルリポジトリをWebルートの外部に置くと、より効率的な方法でアップグレードを準備およびステージングできるようになります。たとえば、いくつかの変更を加えたり、いくつかのプラグインを追加したりする場合は、プラグインをダウンロードして、ローカルのmoodleリポジトリにコピーします。プラグインとその他の変更を追加した後、/opt/moodle/.git/info/excludeにあるファイルを編集する必要があります。そのファイル内で、次の sudo git pull を実行するときに更新をプルダウンするときに除外するファイル/フォルダを gitに指示します。エントリの例は、/opt/moodle/mod/certificateにある証明書modであるため、除外ファイル内で最後のコメントの下に /mod/certificate を追加します。変更した可能性のあるプラグインまたはファイルごとに、1行に1つずつエントリを追加します。 favicon.icoファイルを変更する場合は、除外ファイルに favicon.ico を追加するだけです。これで、sudo git pull を実行してmoodleを最新バージョンに更新すると、それらのファイルとディレクトリが無視され、コアmoodleコードが更新されるだけです。アップグレードするためにWebルートにコピーする前に、追加した可能性のあるプラグインの最新バージョンを確認してダウンロードし、コピーする必要があります。
ステップ6:MySQLサーバのセットアップ
まず、デフォルトのストレージエンジンをinnodbに変更し、デフォルトのファイルフォーマットをBarracudaに変更する必要があります。これは、以前のバージョンと比較した新しい設定です。 Barracudaが正しく機能するためには、innodb_file_per_tableも設定する必要があります。参照: https://dev.mysql.com/doc/refman/5.6/en/innodb-compression-usage.html
- innodbをデフォルトのストレージエンジンにする必要はもうありません。最新バージョンのMoodleは、インストール時に自動的に選択します。とにかくデフォルトにすることは常に良い考えです。ただし、デフォルトのファイルフォーマットを設定する必要があります。
- 代わりにVIMを使用することを選択した場合は、vimの代わりにviを使用してください
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]セクションまで下にスクロールし、基本設定の最後のステートメントの下に次の行を追加します。追加したい場合は、キーボードの insert ボタンを押す必要があります。これは通常、delete ボタンの上にあります。これにより、テキストを追加できます。
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
注:Ubuntu 18.04で新しいバージョンのMariaDBを使用すると、構成ファイルでこれらの変更が発生してエラーが発生するため(mysql不明変数 'innodb_file_format = barracuda')、コメントするか、これらの変更を行わないでください。これらの値はデフォルトで取得されます。innodb_file_formatは非推奨になりました。 MariaDB 10.2で、MariaDBで削除されました。
エディタを使用してmy.cnfを保存するには、Esc(エスケープ)キーを押し、次のように順番に入力して:wを保存し、エディタを閉じます:q
:w
:q
変更を有効にするためにMySQLサーバを再起動します
sudo service mysql restart
次に、正しい権限を持つMoodleデータベースとMoodle MySQLユーザを作成する必要があります
手順1で作成したパスワードを使用します
sudo mysql -u root -p
mysql>
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
注意: 絵文字を含むUTF-8のフルレンジ(4バイト)サポートには 'utf8mb4' を使用します('utf8' は3バイトのみをサポートします)。ここで 'utf8mb4' を使用しない場合は、Moodle管理ページに準拠します。 |
moodledude と passwordformoodledude と表示されている場合は、選択したユーザ名とパスワードに変更する必要があります。
mysql>
create user 'moodledude'@'localhost' IDENTIFIED BY 'passwordformoodledude';
mysql>
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodledude@localhost IDENTIFIED BY 'passwordformoodledude';
mysql>
quit;
注 - MySQL5.6以降を使用していて、create userを発行してパスワードハッシュに関するエラーが発生した場合は、ハッシュ値を使用するようにパスワードを調整する必要があります。
あなたは以下に従うことによってこれを得ることができます
mysql>
SELECT password('passwordformoodledude');
これにより、*AD51BAFB2GD003D3480BCED0DH81AB0BG1712535のようなパスワードのハッシュが出力されます。これは、IDENTIFIED BY' の部分で使用する必要があります。
ステップ7:セットアップの完了
- 注 - ターミナルを使用してインストーラーを実行するときに作成する必要のあるconfig.phpファイルを作成することに慣れていない場合は、次のようにして一時的にwebrootを書き込み可能にする必要があります。
sudo chmod -R 777 /var/www/html/moodle
インストーラーを実行し、moodleをセットアップした後、以下のコマンドを使用して書き込み可能でなくなるように、アクセス許可を元に戻す必要があります。
sudo chmod -R 0755 /var/www/html/moodle
ブラウザを開き、http://IP.ADDRESS.OF.SERVER/moodleにアクセスします
プロンプトに従います。
moodledataのパスを変更します
/var/moodledata
データベースタイプ
選択:mysqli
データベース設定
ホストサーバ:localhost
データベース:moodle
ユーザ:moodledude(データベースのセットアップ時に作成したユーザ)
パスワード:passwordformoodledude(作成したユーザのパスワード)
テーブルプレフィックス:mdl_
環境チェック
これは、moodleの実行に必要な要素がインストールされていないかどうかを示します。
次へ次へ...
プロンプトに従い、インストールを確認します
サイト管理者アカウントを作成する
サイト管理者権限を持つmoodleユーザアカウントを作成します。
選択するパスワードは、特定のセキュリティ要件を満たす必要があります。
インストール完了
おめでとうございます!これでMoodleの使用を開始できます!
忘れないでください
Webルートを書き込み可能にした場合は、権限を元に戻します
sudo chmod -R 0755 /var/www/html/moodle
インストール後のシステムパス
Moodleをインストールした後、システムパスを設定する必要があります。これにより、設定しない場合よりもパフォーマンスが向上します。 Moodleの各エントリーには説明があります。
moodleウェブページで、サイト管理 > サーバ > システムパスに移動します
以下を入力してください。
duへのパス:/usr/bin/du
apsellへのパス:/usr/bin/aspell
ドットへのパス:/usr/bin/dot
変更内容を保存
- アンチウイルスソリューションをまだお持ちでない場合はオプション
ステップ3でClamAVもインストールしたので、Moodleでパスを設定する必要があります
最初に検疫ディレクトリを作成します
sudo mkdir /var/quarantine
所有権の変更
sudo chown -R www-data /var/quarantine
サイト管理 > プラグイン > アンチウイルスプラグイン > アンチウイルスプラグインの管理に移動します
ClamAVアンチウイルスを有効にする
設定をクリックします
適切な設定を行う
変更内容を保存
以前のMoodleブランチ: アップロードされたファイルでClamAVを使用する にチェックを入れます ClamAVパス:/usr/bin/clamscan 検疫ディレクトリ:/var/quarantine
変更内容を保存
提案:ZendOpCacheを有効にする/ドキュメントルートを変更する
- Ubuntu Server 14.04LTSをインストールしたので、組み込みのPHP OPcache、https://docs.moodle.org/26/en/OPcacheを使用できます。
sudo vi /etc/php5/apache2/conf.d/05-opcache.ini
注:Ubuntu 16.04では、opcache.iniは次の場所にあります。
/etc/php/7.0/mods-available/opcache.ini
変更を有効にするには、Apacheを再起動します。
sudo service apache2 restart
Zend OpCacheは以上です!
GUIをインストールして、Zend OpCacheのステータスを表示することもできますが、本番サーバでは推奨されません。
cd /var/www/html/moodle/
PHPスクリプトをMoodleディレクトリにダウンロードします。インストールをアップグレードするときに削除されないように、このファイルも/opt/moodle/.git/info/excludeファイルに追加する必要があります。
sudo wget https://github.com/rlerdorf/opcache-status/blob/master/opcache.php
http://ip.address.of.server/moodle/opcache.phpにアクセスします
エンドユーザにhttp://yourserver/moodleと入力せず、単にhttp://youserverに移動させたい場合は、Apacheのサイト構成を編集してApacheに/var/wwwを使用するように指示する必要があります。 /var/www/htmlではなくルートディレクトリとして/html/moodle
Apacheサイトの構成を開き、ドキュメントルートを変更します
sudo vi /etc/apache2/sites-available/000-default.conf
DocumentRootがある行。
変更元:DocumentRoot/var/www/html
変更先:DocumentRoot/var/www/html/moodle
:w
:q
変更を有効にするには、Apacheを再起動します。
sudo service apache2 restart
重要な注意点!
すでにMoodleをインストールしている場合は、以下の変更を行う必要があります。
moodleのconfig.phpを編集する
インストール手順で、'webroot' の推奨設定の1つは 'localhost' です。あなたがしたいのがあなたの新しいMoodleインストールのいくつかのローカルテストであるならば、これは問題ありません。ただし、同じローカルエリアネットワーク上の別のマシンから新しいインストールを表示する場合、またはインターネット上でサイトを表示する場合は、次の設定を変更する必要があります。
ローカルテストの場合、'localhost' はwebroot(config.phpの$CFG->wwwroot)に適しています。 同じローカルエリアネットワーク(LAN)上の他のマシンからサイトをテストする場合は、サービングマシンのプライベートIPアドレス(例:192.168.1.2/moodle)またはサービングのネットワーク名を使用する必要があります。 Webルートとしてのコンピューター(例:network_name_of_serving_machine/moodle)。 LANの設定によっては、(プライベート)IPアドレスではなく、コンピューターのネットワーク名を使用する方がよい場合があります。これは、IPアドレスが随時変更される可能性があるためです。ネットワーク名を使用したくない場合は、ネットワーク管理者に相談して、サービングマシンに永続的なIPアドレスを割り当ててもらう必要があります。 最後に、インターネットを介して新しいインストールをテストする場合は、ドメイン名または永続的な(パブリック)IPアドレス/moodleをWebルートとして使用する必要があります。両方のタイプのアクセスを処理するには、マスカレードを参照してください。
Moodleのconfig.phpを編集する
cd /var/www/html/moodle sudo vim config.php
キーボードの insert ボタンを押してから、必要な変更を加えます。次に、escape を押し、次のように入力して終了し、変更を保存します(引用符を除く):":wq"
$CFG->wwwrootの下で、http://ip.address.of.server/moodleではなくhttp://ip.address.of.serverに変更します
1つのUbuntuサーバで複数のMoodleブランチをホストする
- これは、言語パックのメンテナがいくつかのMoodleブランチで翻訳をテストするのに非常に便利です。
- 開発者がさまざまなMoodleブランチでプラグインをテストすることも非常に便利です。
- Webフォルダ内にインスタンスごとにフォルダを作成するだけで、それで十分です。
- サイトにアクセスするには、フォルダをローカルホストURLに追加するだけです:http://localhost/moodle31
- 1.9から3.1までの各バージョンのインスタンスを持つことができます
- インスタンスごとに個別のデータフォルダと個別のデータベースが必要です(phpmyadminを使用してデータベースを設定できますが、必須ではありません)。各インスタンスを独自のフォルダに追加して、上記のように続行します。別のフォルダで別のサービス(Maharaなど)をホストすることもできます。
例1
- したがって、1つのLinuxラップトップ(実際のサーバの方が多い)上の1つのサンプルフォルダツリーは、次のようになります。
var
--www
----maharadata ----moodlecleandata ----moodlestabledata ----moodlemasterdata ----moodletestingdata ----uswmoodledata ----html ------mahara ------moodleclean ------moodlestable ------moodlemaster ------moodletesting ------uswmoodle
例2
- 単一の(CentOS X)サーバー上に複数のサンドボックス化されたMoodleをすべて異なるバージョンで使用します..セキュリティ修正以上でサポートされているもののみ - 2.7、2.8、2.9、3.0、そして現在は3.1。 テスト用のアドオンなどがたまにある 'ストック' Moodleのほとんど。
- すべてに、個別のコードとデータディレクトリ、および個別のDBがあります。
- ヒント: gitを使用してそれらすべてをインストールおよび保守します...コマンドラインを好まない/好きではない場合でも、サイトを更新および/またはアップグレードするための最も効率的な方法です。
/var/www/html/moodle27/version.php:$release = '2.7.14 (Build: 20160509)' /var/www/html/moodle28/version.php:$release = '2.8.12 (Build: 20160509)' /var/www/html/moodle29/version.php:$release = '2.9.6+ (Build: 20160520)' /var/www/html/moodle30/version.php:$release = '3.0.4+ (Build: 20160603)' /var/www/html/moodle31/version.php:$release = '3.1+ (Build: 20160603)'
- git -bコマンドは、サイトをgitコマンドの残りの部分で提供されるバージョンにロックします...たとえば、長期サポートバージョンである3.1をインストールし、git-bオプションを使用してインストールします。そのアップグレードをアップグレードしたり、アップグレードをテストしたりする予定はありません。
git clone -b MOODLE_31_STABLE git://git.moodle.org/moodle.git moodle31
- そのサーバにある他のすべてのmoodleはgit経由でインストールされています
git clone git://git.moodle.org/moodle.git [nameofdir]
- 次にnameofdirから
git branch --track MOODLE_2#_STABLE origin/MOODLE_2#_STABLE git checkout MOODLE_2#_STABLE
- 2#はバージョン番号です。
- それは人がそのムードルを上向きに行進することを可能にします...より高い枝。したがって、('更新' ではなく)アップグレードをテストできます。
- この2番目の方法 'gits' より多くのコードとバックアップは、すべての古いバージョンのgitのもののために5+ Megの範囲になります3.1ははるかに少ない(3.1ブランチに制限されています):
- 545M ./moodle296-code-20160604145012.tar
- 193M ./moodle31+-code-2016060883737.tar