Moodleは、PHPで書かれた無料のオープンソースの学習管理システムおよびCMSです。 これにより、チューターとインストラクターは学生向けのコースを作成でき、遠隔教育やその他のオンライン学習プログラムをより利用しやすくなります。 Moodleは、ユーザーが現在、過去、または将来のコースにアクセスし、保留中の作業を確認するのに役立つ、シンプルでユーザーフレンドリーなカスタムダッシュボードを提供します。 テクノロジーに精通した教育を提供することを目指す教師や教育者向けに設計されています。
このチュートリアルでは、Ubuntu22.04にNginxとLet’sEncryptSSLを使用してMoodleをインストールする方法を説明します。
前提条件
- Ubuntu22.04を実行しているサーバー。
- サーバーIPを指す有効なドメイン名。
- ルートパスワードはサーバーで構成されます。
入門
まず、システムパッケージを最新バージョンに更新する必要があります。 次のコマンドを実行して、それらすべてを更新できます。
apt-get update -y
サーバーが更新されたら、次の手順に進むことができます。
Nginx、MariaDB、およびPHPをインストールします
開始する前に、Apache、MariaDB、PHP、およびその他のPHPライブラリをシステムにインストールする必要があります。 まず、次のコマンドを使用してApacheおよびMariaDBサーバーをインストールします。
apt-get install nginx mariadb-server -y
デフォルトでは、Ubuntu22.04にはPHP8.1バージョンが付属しており、MoodleはこのPHPバージョンをサポートしていません。 したがって、サーバーにPHP7.4をインストールする必要があります。
まず、次のコマンドを使用して、必要なすべての依存関係をインストールします。
apt install software-properties-common ca-certificates lsb-release apt-transport-https -y
次に、次のコマンドを使用してPHPリポジトリをサーバーに追加します。
add-apt-repository ppa:ondrej/php
次に、次のコマンドを使用してリポジトリを更新します。
apt update
repsoitoryが更新されたら、次のコマンドを使用して、他の必要な拡張機能を備えたPHPをインストールします。
apt install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-soap php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip unzip git curl -y
すべてのパッケージがインストールされたら、php.iniファイルを編集し、いくつかの設定を変更します。
nano /etc/php/7.4/fpm/php.ini
次の行を変更します。
memory_limit = 256M max_input_vars = 6000 cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360 date.timezone = UTC
ファイルを保存して閉じてから、PHP-FPMサービスを再起動して変更を適用します。
systemctl restart php7.4-fpm
終了したら、次のステップに進むことができます。
Moodleのデータベースを作成する
MoodleはデータベースバックエンドとしてMySQLまたはMariaDBを使用するため、Moodleのデータベースとユーザーを作成する必要があります。
まず、次のコマンドを使用してMySQLシェルに接続します。
mysql
ログインしたら、次のコマンドを使用してデータベースとユーザーを作成します。
CREATE DATABASE moodledb;
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';
次に、次のコマンドを使用して、Moodleデータベースにすべての権限を付与します。
GRANT ALL ON moodledb.* TO 'moodle'@'localhost' WITH GRANT OPTION;
次に、特権をフラッシュし、次のコマンドを使用してMySQLを終了します。
FLUSH PRIVILEGES;
EXIT;
次に、MariaDBのデフォルト構成ファイルを編集し、innodb_file_formatを定義します。
nano /etc/mysql/mariadb.conf.d/50-server.cnf
内に次の行を追加します [mysqld] セクション:
[mysqld] innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix = ON
ファイルを保存してから、MariaDBサービスを再起動して変更を適用します。
systemctl restart mariadb
Ubuntu22.04にMoodleをインストールする
まず、ディレクトリをApacheルートディレクトリに変更し、次のコマンドを使用して最新バージョンのMoodleをダウンロードします。
cd /var/www/html
git clone -b MOODLE_400_STABLE git://git.moodle.org/moodle.git moodle
次に、Moodleに適切な許可と所有権を設定します。
mkdir -p /var/www/html/moodledata
chown -R www-data:www-data /var/www/html/moodle
chmod -R 755 /var/www/html/*
chown www-data:www-data /var/www/html/moodledata
終了したら、次のステップに進むことができます。
Moodle用にNginxを設定する
次に、MoodleをホストするためのNginx仮想ホスト構成ファイルを作成する必要があります。
nano /etc/nginx/conf.d/moodle.conf
次の行を追加します。
server { listen 80; root /var/www/html/moodle; index index.php index.html index.htm; server_name moodle.example.com; client_max_body_size 100M; autoindex off; location / { try_files $uri $uri/ =404; } location /dataroot/ { internal; alias /var/www/html/moodledata/; } location ~ [^/].php(/|$) { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
ファイルを保存して閉じ、次のコマンドを使用して構文エラーがないかNginxを確認します。
nginx -t
次の出力が得られるはずです。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
最後に、Nginxサービスを再起動して、変更を適用します。
systemctl restart nginx
次のコマンドを使用して、Nginxサービスのステータスを確認することもできます。
systemctl status nginx
次の出力が表示されます。
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-07-18 07:08:50 UTC; 26s ago Docs: man:nginx(8) Process: 51379 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 51382 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 51383 (nginx) Tasks: 3 (limit: 4579) Memory: 3.6M CPU: 64ms CGroup: /system.slice/nginx.service ??51383 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??51384 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??51385 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" Jul 18 07:08:50 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 18 07:08:50 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
この時点で、NginxはMoodleをホストするように設定されています。 これで、次のステップに進むことができます。
MoodleWebインターフェースにアクセスする
次に、Webブラウザーを開き、URLを使用してMoodleWebインターフェースにアクセスします。 http://moodle.example.com。 Moodleのインストールページが表示されます。
言語を選択してをクリックします 次。 次のページが表示されます。
Moodle Webアドレス、ディレクトリパス、データディレクトリパスを入力し、をクリックします 次。 次のページが表示されます。
データベースドライバの種類を選択し、[次へ]をクリックします。 次のページが表示されます。
データベースホスト、データベース名、ユーザー名、パスワードを入力し、をクリックします 次。 次のページが表示されます。
クリックしてください 継続する すべての条件を確認します。 次のページが表示されます。
必要なすべてのPHP拡張機能がインストールされていることを確認してから、をクリックします 継続する。 次のページが表示されます。
クリックしてください 継続する。 次のページが表示されます。
管理者のユーザー名、パスワード、メールアドレス、国、タイムゾーンを入力して、 アップデート プロフィール。 次のページが表示されます。
フロントページの設定を入力し、[変更を保存]ボタンをクリックして変更を保存します。
Let’sEncryptSSLでMoodleを保護する
次に、CertbotツールをインストールしてLet’s Encrypt SSLをダウンロードし、このSSLを使用するようにNginxを構成する必要があります。
まず、次のコマンドを使用してCertbotをインストールします。
apt-get install python3-certbot-nginx -y
インストールしたら、次のコマンドを実行してすべてのSSLをダウンロードし、それを使用するようにNginxを構成します。
certbot --nginx -d moodle.example.com
有効なメールアドレスを入力し、以下に示すように利用規約に同意するよう求められます。
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for moodle.example.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/moodle.conf
次に、以下に示すように、HTTPトラフィックをHTTPSにリダイレクトするかどうかを選択します。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
2と入力し、Enterキーを押して続行します。 次の出力が表示されます。
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/moodle.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://moodle.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=moodle.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/moodle.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/moodle.example.com/privkey.pem Your cert will expire on 2022-10-19. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le - We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org.
これで、URLhttp://moodle.example.comを使用してMoodleウェブサイトにアクセスできます。
結論
おめでとう! これで、Ubuntu22.04にNginxとLet’sEncryptSSLを使用してMoodleが正常にインストールされました。 これで、Moodleの機能を調べて、独自のオンライン学習管理システムを簡単に作成できます。 ご不明な点がございましたらお気軽にお問い合わせください
The post Nginxと無料でMoodleをインストールする方法Ubuntu22.04にSSLを暗号化しましょう appeared first on Gamingsym Japan.