どんな取り組みか
本記事では、AWS Lightsail上のLinuxインスタンスにMoodleをコマンドライン操作のみでインストールする手順を解説します。通常、Moodleのインストールプロセスでは最終段階でウェブブラウザを使用しますが、本記事ではPHPスクリプトを活用することで、このプロセスをコマンドライン上で完結させる方法を提案しています。
使われた技術スタック
本記事で利用される主な技術スタックは以下の通りです。
- OS: AWS Lightsail Linux
- アプリケーション: Moodle 4.5
- Webサーバー: Apache
- データベース: MariaDB
- プログラミング言語: PHP
- バージョン管理システム: Git
実装のポイント
Moodleをコマンドラインだけでインストールするための具体的な手順とポイントは以下の通りです。
- AWS Lightsailインスタンスの準備: 2GB以上のメモリを持つLinuxインスタンスを作成します。BlueprintとしてはLAMPなどが推奨されています。
- システムアップデート: インスタンス作成後、
sudo apt -y update、sudo apt -y upgrade、sudo rebootを実行してシステムを最新の状態に保ちます。 - PHP CLIのインストール: コマンドラインでPHPを実行するために
sudo apt -y install php8.2-cliを実行します。 - インストールスクリプトの作成:
md45-aws.phpという名前でPHPスクリプトを作成します。このスクリプトには、Moodleのインストールに必要な各種パッケージのインストール、PHP設定の変更(max_input_varsを5000に設定)、Moodle本体のダウンロードと配置、データディレクトリの作成、データベースとユーザーの作成、そしてMoodleの非対話型インストールコマンドなどが含まれています。 - Moodle本体のダウンロードと配置: Gitを使用してMoodleリポジトリからソースコードをダウンロードし、指定されたディレクトリに配置します。
- データディレクトリの作成と権限設定: Moodleのデータ保存用ディレクトリを作成し、適切な所有者と権限を設定します。
- データベースのセットアップ: MariaDBにMoodle用のデータベースを作成し、専用のユーザーとパスワードを設定します。
- Moodleの非対話型インストール: 作成したPHPスクリプト内の
admin/cli/install.phpを使用して、ライセンス同意、言語設定、Webルート、データルート、データベース情報、管理者情報などを指定してインストールを実行します。 - 権限の再設定: インストール完了後、セキュリティのためにMoodleディレクトリの所有権とパーミッションを元に戻します。
- cronジョブの設定: Moodleの定期的なタスク実行のために、cronジョブの設定を推奨しています。
- (オプション)Let’s EncryptによるSSL設定: 必要に応じて、Let’s Encrypt を使用したSSL証明書の取得と設定を行う手順も紹介されていますが、AWS Lightsailの場合はコンソールでのネットワーク設定が優先される場合があることに注意が必要です。
スクリプト内で設定するパラメータ(ホストIPアドレス、Moodle管理者パスワード、管理者メールアドレスなど)は、実際の環境に合わせて編集する必要があります。また、スクリプトはGitHubからも入手可能であることが示唆されています。
得られた成果や学び
本記事の手法を用いることで、Moodleのインストールプロセスを自動化し、サーバー管理者がウェブブラウザにアクセスすることなく、コマンドラインだけでMoodle環境を構築できるようになります。これは、サーバー構築の効率化や、自動化されたデプロイメントパイプラインへの組み込みに貢献する可能性があります。また、PHPスクリプトによるMoodleの非対話型インストールは、Moodleのカスタマイズや大規模展開における重要なノウハウとなり得ます。
まとめ
AWS Lightsail Linux環境において、Moodle 4.5をコマンドライン操作のみでインストールする具体的な方法が示されました。PHPスクリプトを活用することで、インストールプロセスを効率化し、自動化への道を開く実装ノウハウが提供されています。
出典: https://qiita.com/t-kita/items/c8c299f3bee1270fe82d
Related Certifications
この記事に関連する技術領域の認定資格
AWS 関連資格
- AWS Certified Cloud Practitioner
- AWS Certified Solutions Architect – Associate
- AWS Certified Developer – Associate
- AWS Certified Solutions Architect – Professional
- AWS Certified DevOps Engineer – Professional
- AWS Certified Machine Learning – Specialty
※ 認定資格は技術スキルの体系的な学習に役立ちます。試験の出題範囲や受験要件は変更される場合があるため、受験前に必ず公式サイトで最新情報をご確認ください。
PR / Recommended
技術ブログ運営におすすめのレンタルサーバー
エンジニアが技術記事を発信するなら、表示速度と安定性が重要です。WordPressで技術ブログを始める方には、初期費用無料・かんたんセットアップに対応した以下2社が定番です。
PR / Recommended
プライバシー保護に役立つVPNサービス
公衆Wi-Fi利用時の通信保護やプライバシー確保にはVPNが効果的です。NordVPNは世界中で利用されている定番VPNサービスで、強力な暗号化と高速接続を両立しています。
SF Tech & Win
Salesforce × AWS × AI 連携の実装ノウハウ
SIer・スタートアップ・中小企業のDX推進に役立つアーキテクチャ事例・実装パターン・最新アップデート情報を毎朝配信。


コメント