ウェブサイト検索

RHEL 7 サーバーに Moodle 3.2 をインストールする


導入

Moodle は、教育機関に単一の統合システムを提供するように設計された学習プラットフォームです。
この製品は、世界中、特にヨーロッパと北米の数万の環境、合計 235 か国およびロンドン スクール オブ エコノミクスを含む無数の教育センターに電力を供給しています。このプロジェクトは Moodle HQ によって開発および主導され、GNU 一般公衆利用許諾書に基づいて配布されています。
完全にカスタマイズ可能で、ユーザーは利用可能なプラグインを作成またはインストールできます。
このチュートリアルでは、Web サーバーとして NGINX を使用する Red Hat Enterprise Linux 7 サーバーに Moodle 3.2 をインストールする方法について説明します。

はじめる

NGINX をインストールする

NGINX yum リポジトリを追加し、新しいファイルを作成します

/etc/yum.repos.d/

:

$EDITOR /etc/yum.repos.d/nginx.repo

そのファイルに、次の構成を貼り付けます。

[nginx]
name=NGINX repo
baseurl=http://nginx.org/packages/rhel/7/x86_64/
gpgcheck=0
enabled=1

yum を使用して NGINX をインストールします。

yum install nginx

を使用してNGINXを起動します

systemd

:

systemctl start nginx

テストのために、次のコマンドを実行します。

curl -Ss http://localhost

そして、次のメッセージが出力されるはずです。

<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>

ブート時に NGINX が起動できるようにします。

systemctl enable nginx

PHP-FPMをインストールする

に必要な PHP バージョンは 5.6.5 以降です。バージョン 7 を使用することも可能ですが、エンジンにいくつかの制限がある可能性があります。

PHP 5.6.5 をインストールする方法を見てみましょう。まず、Webtatic リポジトリを追加します。

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

次に、PHP-FPM (およびその他のモジュール) をインストールします。

yum

:

# yum install php56w-fpm php56w-cli php56w-pspell php56w-curl php56w-gd php56w-intl php56w-mysql php56w-xml php56w-xmlrpc php56w-ldap php56w-zip php56w-json php56w-opcache php56w-readline php56w-mbstring php56w-soap

インストール プロセスの最後に、PHP 構成ファイルをテキスト エディタで開きます。

$EDITOR /etc/php.ini

を検索してください

cgi.fix_pathinfos

行のコメントを解除し、次のように編集します。

cgi.fix_pathinfos=0

保存して終了。

PHP-FPM を開始します。

systemctl start php-fpm.service

MariaDB をインストールして構成する

Moodle は PostgreSQL、MySQL、MariaDB、Microsoft SQL Server、Oracle Database をサポートしています。このチュートリアルでは、MariaDB を使用するように Moodle を設定します。このデータベースをインストールするには

yum

:

yum install mariadb-server

MariaDB を起動します。

systemctl start mariadb

次に、次のコマンドを実行して MariaDB ルート アカウントを設定します。

mysql_secure_installation
Set root password? [Y/n] 
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!
Remove anonymous users? [Y/n] 
 ... Success!
Disallow root login remotely? [Y/n] 
 ... Success!
Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

次に、

/etc/my.cnf.d/server.cnf

ファイル :

$EDITOR /etc/my.cnf.d/server.cnf

以下の内容を下に置きます

[mysqld]

ブロック :

default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda

MariaDB サービスを保存して終了し、再起動します。

systemctl restart mariadb

コマンドを実行する

netstat -plntu | grep mysql

そして出力を確認してください:

[root@rhel ~]# netstat -plntu | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8006/mysqld

この出力は、MariaDB が正しくインストールされ、起動されたことを意味します。次のステップは、Moodle 用の新しいデータベースを作成することです。次のコマンドを実行します。

mysql -u root -p

次のクエリを実行します。

MariaDB [(none)]> CREATE DATABASE moodle_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE USER moodle_usr@localhost IDENTIFIED BY 'usr_strong_password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON moodle_db.* TO moodle_usr@localhost IDENTIFIED BY 'usr_strong_password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> EXIT;
Bye

ムードルのインストール

Moodleの入手

Moodle を入手するには 2 つの方法があります。

  1. アーカイブをダウンロードして解凍します。
  2. 使用

    git

このチュートリアルでは 2 番目のオプションを使用します。これは開発者に最適で、Moodle のアップグレードが簡単になります。この方法を使用するには、インストールします

git

:

yum install git

次に、Web サーバーのルート ディレクトリにリポジトリのクローンを作成します。

cd /var/www
git clone --single-branch -b MOODLE_32_STABLE git://git.moodle.org/moodle.git

git がコードのダウンロードを完了したら、次のコマンドを実行してコードを保護します。

chown -R root /var/www/moodle 
chmod -R 0755 /var/www/moodle 
find /var/www/moodle -type f -exec chmod 0644 {} \;

データディレクトリを作成する

Moodle には、すべてのファイルを保存するためのディレクトリが必要です。このディレクトリ、

moodledata

、セキュリティ上の理由から、ウェブ ルート ディレクトリまたは Moodle プログラム ファイル ディレクトリの外に配置されます。

このディレクトリを次の場所に作成します

/var/

ウェブサーバーは次の内容を書き込むことができる必要があることに注意してください。

mkdir /var/moodledata
chmod 0777 /var/moodledata

注:

moodledata

Web 経由で直接アクセスできないようにする必要があります。ただし、これを回避する方法がない場合は、

.htaccess

以下で説明するようにファイルを作成します。すでに Web から非表示になっている場合は、 この手順を無視してください。

確保用

moodledata

を作成します。

.htaccess

その中のファイル:

$EDITOR /var/moodledata/.htaccess

そのファイルに次の行を貼り付けます。

order deny,allow
deny from all

保存して終了。

SSL証明書を生成する

HTTPS 接続を使用するには、SSL 証明書が必要です。自己署名付きのものを作成します。

mkdir -p /etc/nginx/certs
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/certs/moodle.crt -keyout /etc/nginx/certs/moodle.key

次に、秘密キーのアクセス許可を必ず変更してください。

chmod 600 /etc/nginx/certs/moodle.key

仮想ホスト ファイルを作成する

次に、Moodle 用の新しい仮想ホスト構成ファイルを作成します。

$EDITOR /etc/nginx/conf.d/unixmen-moodle.conf

そのファイルに、次の内容を貼り付けます。

PHP Upstream Handler
upstream php-handler {
    server unix:/run/php/php7.0-fpm.sock;
}
 
Nginx redirect HTTP to HTTPS
server {
    listen 80;
    server_name moodle.mydomain.com;
    # enforce https
    return 301 https://$server_name$request_uri;
}
 
HTTPS Configuration
server {
        server_name          moodle.mydomain.com;
 
        listen               *:443 ssl http2;
        listen               [::]:443 ssl http2;
 
        # SSL Configuration    
        ssl  on;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        ssl_session_tickets off;
        #ssl_stapling on;
        #ssl_stapling_verify on;
        resolver_timeout 5s;
        ssl_certificate /etc/nginx/certs/moodle.crt;
        ssl_certificate_key /etc/nginx/certs/moodle.key;
        
        # Root Moodle Data DIrectory
        root /var/www/moodle;
        rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last;
 
        location ^~ / {
                try_files $uri $uri/ /index.php?q=$request_uri;
                index index.php index.html index.htm;
 
                location ~ \.php$ {
                        include snippets/fastcgi-php.conf;
                        fastcgi_pass php-handler;
                }
        }
}

保存して終了。

次に、バックアップします

default.conf

ファイル :

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.old
cp /etc/nginx/conf.d/unixmen-moodle.conf /etc/nginx/conf.d/default.conf

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

systemctl restart nginx

ムードルのインストール

最後のステップでは、Web ブラウザを開いて次の URL にアクセスします。

https://moodle.mydomain.com

。ブラウザに Moodle のインストール ページが表示されます。必要なフォームに記入するだけで準備完了です。

結論

Moodle は世界中の教育機関で事実上の標準となっており、何千人ものユーザーがいます。このチュートリアルでは、MariaDB、NGINX、および PHP-FPM を使用して、RHEL 7 ベースのサーバーにインストールして構成する方法を説明しました。

関連記事: