RedHat Linuxのインストール
注意: このドキュメントは、RedHat Enterprise Linux(RHEL)8へのMoodle3.7のインストールに関するものです |
サーバのインストール
- Webサーバ
- Moodle3.7にはPHP7.1が必要です。 RHEL8にはPHP7.2が付属しています。[1]
- データベース
- Moodle3.7にはMariaDB5.5またはMySQL5.6が必要です。 RHEL8にはMariaDB10.3とMySQL8.0が付属しています(同時にインストールすることはできません)。[2]
- 'GUIを備えたサーバ' オプションに注意してください。期待どおりに機能しない場合があります。
注:必要に応じてファイアウォールを設定してください。違いがわからない限り、サーバマシンへのHTTP/HTTPS(およびおそらくFTPとSSH)アクセスを有効にするだけでよいでしょう。
ネットワークインターフェース
インストール中、システム -> ネットワークとホスト名 で、NICを有効にすることを忘れないでください。デフォルトでは有効になっていません。
ホスト名とドメイン名を構成します
system-config-networkと入力して、GUIエディタを開きます。 DNSタブをクリックします。DNS検索パス に、myuniversity.eduなどのドメイン名を入力します。次に、ホスト名 に使用するコンピューター名が含まれていることを確認し、アクティブ化をクリックして変更を加えます
システム登録
- パッケージの更新を受け取るには、redhat.comでユーザアカウントを作成し、 https://developers.redhat.com/ でログインして開発者として登録します。
- 次の方法でシステムをサブスクライブします。
subscription-manager register --auto-attach
要求に応じてユーザ名とパスワードを入力します。
- システムを更新してから再起動します
yum update reboot
[3]を参照してください
SELinux
デフォルトのRedHatEnterprise Linuxには、SELinuxが 'enforcing' に設定されています。ただし、これにより、デフォルトディレクトリ(/var/www/html)以外のディレクトリに配置されたWebコンテンツへのアクセスにユーザの問題が発生したり、その他のアクセスの問題が発生したりする可能性があります。 SELinuxとパーミッションの設定に慣れていない場合は、SELinuxレベルを 'permissive' または 'disabled' に下げる方が簡単です(安全性は低いかもしれませんが)。
# vi /etc/sysconfig/selinux SELINUX=disabled
CentOS [4]を参照してください。
ファイアウォール
内部ファイアウォール(バージョン7では 'firewalld' [5]を使用しているためRHEL)はデフォルトでオンになっています。 Webサーバへのアクセスをブロックします。接続をテストするために、最初に停止することができます。
service firewalld stop
次に、それを無効にします。
chkconfig firewalld off
または、永続的なHTTPアクセスを有効にする場合は、HTTPSも有効にすることをお勧めします。
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https
ファイアウォールを再起動して、許可ステータスを確認します。
service firewalld restart firewall-cmd --zone=public --list-services
Firewalldの代わりにiptablesを使用するには、[6]を参照してください。
MariaDB / MySQL
- 少なくとも 'mariadb' および 'mariadb-server' パッケージがインストールされていることを確認してください。
- (MySQLには mysql と mysql-server を使用します)
yum install mariadb mariadb-server
- 次にデーモンを実行します。デフォルトでは実行されていません。そして、それを自動起動に設定します。 [7]も参照してください。
- (MySQLには mysqld を使用)
service mariadb start; chkconfig mariadb on
- /etc/my.cnfを編集します(MySQLでは異なる場合があります)(MariaDB 10.3はすでにデフォルト設定であるため、これは必要ありません。)
vi /etc/my.cnf
[mysqld]セクションまで下にスクロールし、基本設定 の下で、最後のステートメントの下に次の行を追加します。
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix
- まだrootとして使用していない場合は、MariaDB/MySQLのrootパスワードを変更し、インストールも保護します
- mysql_secure_installation
- 次に、MariaDB / MySQLデータベースをセットアップします(詳細については、http://moodle.org/doc/?file=install.html#Database を参照してください)。
- MariaDB/MySQLをrootとして起動します
- mysql -u root -p
- (パスワードプロンプトで、上からパスワードを入力します)
- mysql -u root -p
- '>' MariaDB/MySQLプロンプトで、次のコマンドを入力します(MariaDB/MySQLコマンドは ';' で終了します)
- CREATE DATABASE mymoodle CHARSET'utf8mb4 ';
- ( 'mymoodle' は使用したいデータベースの名前です。後でMoodle 'config.php' に入力されます)
- GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON mymoodle.* TO moodleuser@localhost IDENTIFIED BY 'moodlepass';
- (上記のように、'mymoodle'、'moodleuser'、および 'moodlepass' は後でMoodle 'config.php' に入力されます)
- flush privileges;
- quit
- CREATE DATABASE mymoodle CHARSET'utf8mb4 ';
- (! MariaDB/MySQLのセキュリティを検討してください - ここでは取り上げません。ファイアウォールを実行している場合は、それほど心配する必要はありません。)
Moodleのセットアップ
(私は/usr/moodleの下にインストールし、データは/usr/moodle_dataにあります)
ダウンロード
- moodle.orgからお気に入りのバージョンのMoodleをダウンロードします(.zipアーカイブが最も簡単です)
- ルートとして/usrの下にフォルダを作成し、zipをコピーします
- su
- mkdir /usr/moodle
- mkdir /usr/moodle_data
- cp moodle_111.zip /usr/moodle
- 必要に応じて、GITバージョンを直接インストールしてすべての最新機能を利用できます。 zipファイルをダウンロードしてコピーする代わりに。詳細については、[8]を参照してください。
- cd /usr
- git clone git://git.moodle.org/moodle.git
- または、必要に応じて、CVSバージョンを直接インストールしてすべての最新機能を利用できます。 zipファイルをダウンロードしてコピーする代わりに。
- cd /usr/moodle
- cvs -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle login
- cvs -z3 -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle co moodle
ファイルのアクセス許可などを解凍して設定します
- それでもrootとして、moodleを解凍し、適切な名前に変更します(moodleを複数インストールしているため、このセットアップ)。これをインストールmymoodleと呼びます。
- cd /usr/moodle
- unzip moodle_xxx.zip
- mv moodle mymoodle
- (オプションの手順 - /usr/moodleの下に複数のインストールがあります)
- mkdir /usr/moodle_data/mymoodle
- (上記のmoodleインストールと同じ名前)
- chown -R apache:apache /usr/moodle
- (! ApacheにMoodleプログラムへの完全な権利を与えることは安全ではありません。本番環境を保護する方法に関する推奨事項についてはフォーラムをチェックしてください。)
- chown -R apache:apache /usr/moodle_data
config.phpのセットアップ
- ルートコピーとして構成ファイルを編集する場合でも、サーバのホスト/ドメイン名を知っておく必要があります
- cd / usr/moodle/mymoodle
- cp config-dist.php config.php
- vi config.php(またはお気に入りのエディタが何であれ!)
- config.phpの設定は次のようになります...
- dbtype = 'mariadb'(MySQLには 'mysqli'を使用)
- dbhost = 'localhost'
- dbname = 'mymoodle'
- dbuser = 'moodleuser'
- dbpass = 'moodlepass'(<--これを独自のものにする方がよい)
- プレフィックス= 'mdl_'
- (同じサーバ上にMoodleのインスタンスが複数あり、データベースを共有する予定の場合は、異なるプレフィックスを使用してください)
- wwwroot = 'http://myhost.mydomain'
- (moodleを試してみたいだけで、他のマシンからアクセスしない場合は、'http://localhost/mymoodle' を使用できます)
- dataroot = '/usr/moodle_data/mymoodle'
- 変更を保存して、エディタを終了します
Apache
- まだインストールされていない場合は、インストールしてください。
yum install httpd
またはすべて
yum install httpd*
- 起動し、再起動後に自動起動するようにします。
service httpd start; chkconfig httpd on
- Webブラウザーを開き、インストールされているWebサーバとサーバのデフォルトポート(80)に接続できることを確認します。接続できない場合は、ファイアウォールによってブロックされている可能性があります(上記を参照)。続行する前に問題を修正してください。
- Apache構成ファイルを編集します
/etc/httpd/conf/httpd.conf
- ファイルの最後に次の行を追加します。
- <Directory "/usr/moodle/mymoodle">(Moodleのインストール中に使用されるディレクトリ)
- DirectoryIndex index.php
- AcceptPathInfo on
- AllowOverride None
- Options None
- Order allow,deny
- Allow from all
- </Directory>
- Alias /mymoodle "/usr/moodle/mymoodle"
- "allow,deny" にスペースを挿入しないでください(よくある間違いです!)
- 構成ファイルの残りの部分を実行して、他の(明らかな)変更(管理者の電子メールなど)を行うこともできます。しかし、重要ではありません。
- サービスアプリケーションを実行します(Mysqlの場合と同じ)- httpd にチェックマークを付けて開始し、変更を保存して終了します。
ドキュメントルートの設定
編集
/etc/httpd/conf/httpd.conf
変更元:DocumentRoot /var/www/html
変更先:DocumentRoot /var/www/html/mymoodle
Webサイトを http://www.whatever.com ではなく http://www.whatever.com/mymoodle として提供する場合は変更せず、それに応じてMoodle 'config.php' ファイルの 'wwwroot' パラメーターを変更してください。
PHP
- PHPをインストールします:
yum install php php-cli php-common php-fpm php-gd php-intl php-json php-mbstring php-mysqlnd php-opcache php-pdo php-xml php-xmlrpc php-pecl-zip php-soap
- インストールされているPHPのバージョンを確認してください。
# php -v
- PHPが機能し始めるように、Webサーバを再起動します。
service httpd restart
- /var/www/html ディレクトリ内(またはApacheの DocumentRoot が指す場所)に、次の内容の phpinfo.php ファイルを作成します。
<?php phpinfo(); ?>
次に、Webブラウザーを開き、http://webserver/phpinfo.php を参照して、PHPがWebサーバで機能していることを確認します。次に、セキュリティ上の理由からファイルを削除します。
Moodleをインストールする
これですべての準備が整いました。 Webブラウザを使用して http://webserver/mymoodle/install.php を開き、インストールを開始します。
cronジョブを設定します
rootユーザがvi(または別のエディタ)を使用して/etc/crontabファイルを編集するか、rootユーザの "personal" crontabに行を追加できます(両方を行わないでください!)。
CLIバージョン
注意: Moodleのドキュメントによると、Webバージョンは将来削除される可能性があるため、ユーザは可能であればCLIバージョンを使用する必要があります。[9] |
- rootユーザのcrontabにエントリを配置する場合は、次を使用します。
crontab -e
- 次の行を追加します。
*/5 * * * * /usr/bin/php /path/to/mymoodle/admin/cli/cron.php
5分ごとにコマンドを実行します。
ウェブバージョン
注意: 可能であればCLIバージョンを使用してください。 |
- rootユーザのcrontabにエントリを配置する場合は、次を使用します。
- crontab -e
- 次の行を追加します。
- */5 * * * * /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php
- (サイトに応じてURLを変更してください)
- */5 * * * * /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php
---
- /etc/crontabにエントリを追加する場合:
- /etc/crontabファイルをエディタで開きます(vi)。
- 次の行を追加します。
- */5 * * * * root /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php
- (サイトに応じてURLを変更してください)
- */5 * * * * root /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php
---
- いずれの場合も、ファイルを保存して終了することを忘れないでください(viでは<Esc>、次に ':wq')
新しいインストールを試してください
http://myhost.mydomain/admin または http://myhost.mydomain/mymoodle/admin
または、同じマシンでブラウザを実行している場合
http://localhost/admin または http://localhost/mymoodle/admin
SSL証明書のインストール
SSL証明書をインストールした後、Moodleの 'config.php' ファイルの 'wwwroot' パラメータで 'http' を 'https' に変更します。