【初心者】Moodleのアップグレード(FTPソフト利用)    ~php_extension sodium有効化~

Moodle

Web知識のない私がMoodleの運用を始めて3年。アップグレードの方法がわからず、同じバージョンでMoodleを使い続けていました。セキュリティーなどの観点から、アップグレードが必要なのはわかっているのですが、初心者の私にはハードルが高くて手が出せずにいました。なぜなら、Moodle Docsの説明には、

とあります。私はこれを読んでも理解できずにアップグレードできていませんでした。今回なんとかアップグレードできたのでそのメモを残します。Gitやコマンドからのアップグレードにハードルが高いと感じている方にとっては、この記事が少しは役に立つかもしれません。

Moodleのアップグレードができるか確認する

まずは、今使っているMoodleのバージョンがアップグレードできるかどうかを確認します。Moodleサイトの「サイト管理」▶︎「一般」▶「通知」から、「利用可能な更新をチェックする」をクリックします。利用可能なバージョンがある場合、それが表示されます(写真はMoodle4.1にアップグレードしたときのものです)。

また、「サイト管理」▶「サーバ」▶「動作環境」を表示し、バージョンアップしても問題ないか確認します。問題がある場合は「サーバステータス」の欄に赤で「チェック」が表示されます。私の場合、オレンジのチェックはいくつか入りましたが、アップグレードした後の動作には問題ありませんでした。

アップグレードバージョンのMoodleをダウンロードする

アップグレードしたいバージョンを、利用可能な更新をチェックした際に表示された「ダウンロード」をクリックするか、Moodleのサイトからダウンロードします。ダウンロードしたファイルは解凍(展開)しておきます。そして、解凍したディレクトリ(フォルダ)の名前を、現在サーバにアップしているディレクトリと違う名前にしておきます。おそらく「moodle」となっているので、「moodle2」などとします。

サイトをメンテナンスモードにする

アップグレード中に、学習者がサイトにアクセスしてMoodleを使用することのないよう、メンテナンスモードにします。「サイト管理」▶「サーバ」▶「メンテナンスモード」を「有効にする」にします。

FTPソフトを使って新しいMoodleフォルダをサーバにアップロードする

まず、FTPソフト(私の場合はFileZilla)に接続して、/home/アカウント名/www/ (wwwのディレクトリの中)に新しいバージョンのMoodleディレクトリ「moodle2」をドラッグ&ドロップしてアップロードします。

次に、サーバ側にある旧「Moodle」をドラッグ&ドロップしてダウンロードします。結構時間がかかります(1時間くらい)。Gitなどを使うと、かなり時間が短縮できるようですが・・・

念のために、「moodledata」ディレクトリもPCにダウンロードしておくとよいと思います。「www」の上の階層にあります(/home/アカウント名、のところ)。これがまた相当な時間がかかりました(私の場合は6時間くらい)・・・

古いMoodleのディレクトリを削除して、新しいMoodleに置き換える

まず、サーバ側の旧「moodle」を削除します。右クリック ▶「削除」で削除できます。

次に、 「moodle 2」の名前を「moodle」に変更します。右クリック ▶「名前の変更」で変更できます。

古いMoodleディレクトリ内の「config.php」ファイルを、新しいMoodleディレクトリ内にアップロードする

先ほどPCにダウンロードした古いMoodleディレクトリ内にある「config.php」というファイルを、サーバ側にある新しいMoodleディレクトリにドラッグ&ドロップしてアップロードします。

自分のサイトにアクセスしてアップグレード

これまでと同様に、自分のMoodleのサイトにアクセスすると、アップグレードしています、といったメッセージが出ます。私の場合は、Moodle3.6.3から3.11.5+にアップグレードしました。「続ける」をクリックしてアップグレードを開始します。

サーバ条件が適しているかチェックされます。問題なければ「続ける」をクリックします。

プラグイン(機能を拡張する)ファイルがチェックされます。確認して、「Moodleデータベースを更新する」をクリックします。

プラグイン?気になった方は、以下のサイトに分かりやすく答えてくれています。

できることを増やすためにくっつける機能拡張用のソフトウェアのこと

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典;プラグイン

アップグレードが開始されます。しばらくすると完了するため、下にスクロールして、「続ける」をクリックします。

すると、これまでのように、サイトのログイン画面が表示されます。これまでと同じ管理者用アカウントでログインします。

サイトの登録画面に移行します。必要な事項を入力して「登録を更新する」をクリックします。

これまでに登録していたサイトと同じですが、別々に登録する?、更新する?と聞かれますので、「登録URLを更新する」をクリックします。

以上でアップグレードは完了です。念のために、「サイト管理」▶「通知」▶「利用可能な更新をチェックする」をクリックして確認します。

「あなたのMoodleコードは最新版です!」と表示されることを確認します。

メンテナンスモードをOFFにする

最後に、メンテナンスモードをOFFに戻します(「サイト管理」▶「サーバ」▶「メンテナンスモード」を「No」)。

以上です。ここまで読んでくださりありがとうございました。少しでも役に立つ内容だと嬉しいです。また、間違った情報やもっと便利な情報がありましたらご指摘くださいますと幸いです。

(2024.12.12追記)
この手順でMoodle4.5.1へのアップグレードを実施しようとしましたが、4.2からはphp_sodiumが必須となったようで、4.1.15までのアップグレードとしました。対応策は現在調査中です・・・

(2025.8.14追記)
php_sodiumを有効化し、Moodle4.5.1にアップグレードできました。

1.事前準備

・PuTTY(SSH接続用ソフト)
 → 公式サイト からダウンロード&インストール
・さくらのサーバー情報
 ・ホスト名(例:ドメイン名.sakura.ne.jp
 ・ユーザー名(例:sakura123456
 ・パスワード(FTPと同じことが多い)

2.PuTTYで接続設定を作る

 1)PuTTYを起動
 2)Host Name にホスト名を入力
 3)Port22 のまま
 4)Connection typeSSH を選択
 5)左メニュー「Connection → Data」で Auto-login username にユーザー名を入力
 6)左メニュー「Session」に戻り、「Saved Sessions」にわかりやすい名前(例:Sakura Server)を入力して「Save」

3.サーバーに接続

 1)作成した接続設定を選んで「Open」
 2)黒い画面が出たらパスワードを入力してEnter(入力しても画面には表示されません)

4.黒い画面に% が出ている場合 → 「csh/tcsh 系のシェル」なので、Bash専用の構文に変更する

 ・黒い画面にbashと入力してEnter→ Bash に切り替えられる
 ・プロンプトが %$ に変われば Bash に切り替わっています

5.sodiumインストールスクリプトを実行

 ・以下を丸ごとコピーします。 

#!/bin/bash
# =======================================
# さくらのレンタルサーバ用 sodium インストールスクリプト
# =======================================

# 設定
PHP_VERSION=8.3
LIBSODIUM_VERSION=1.0.20
PHP_SOURCE_VERSION=8.3.8
PREFIX=$HOME/usr/local
EXT_DIR=$PREFIX/php/extensions
PHP_BIN=/usr/local/php/${PHP_VERSION}/bin

# ディレクトリ作成
mkdir -p $PREFIX/src $EXT_DIR

cd $PREFIX/src

echo “=== libsodium ダウンロード&インストール ===”
wget https://download.libsodium.org/libsodium/releases/libsodium-${LIBSODIUM_VERSION}.tar.gz
tar xzvf libsodium-${LIBSODIUM_VERSION}.tar.gz
cd libsodium-${LIBSODIUM_VERSION}
./configure –prefix=$PREFIX
make && make install
cd ..

echo “=== PHPソース取得 ===”
wget https://www.php.net/distributions/php-${PHP_SOURCE_VERSION}.tar.gz
tar xzvf php-${PHP_SOURCE_VERSION}.tar.gz
cd php-${PHP_SOURCE_VERSION}/ext/sodium

echo “=== PHP sodium拡張ビルド ===”
$PHP_BIN/phpize
./configure –with-php-config=$PHP_BIN/php-config \
–with-sodium PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/ \
LDFLAGS=-L$PREFIX/lib/
make

echo “=== sodium.so を配置 ===”
cp modules/sodium.so $EXT_DIR/

echo “=== php.ini に設定追加 ===”
INI_FILE=$HOME/www/php.ini
if [ ! -f “$INI_FILE” ]; then
touch $INI_FILE
fi
if ! grep -q “extension=${EXT_DIR}/sodium.so” “$INI_FILE”; then
echo “extension=${EXT_DIR}/sodium.so” >> $INI_FILE
fi

echo “=== 有効化確認 ===”
$PHP_BIN/php -c $INI_FILE -m | grep sodium && echo “インストール成功!” || echo “インストール失敗…”

・PuTTYの黒い画面(コマンド入力画面)にカーソルを合わせて右クリックします(ペーストされます)。
・スクリプトの最後に インストール成功! と表示され、下に sodium と出ればOKです。

6.有効化を確認

 ・以下をコピペする。


$PHP_BIN/php -c $INI_FILE -m | grep sodium 

sodium と表示されれば成功
・表示されない場合は、変数のパスや PHP バージョンを確認

7.さくらのレンタルサーバ「サーバーコントロールパネル」にアクセス

 1)「スクリプト設定」▶「php.ini設定」
 2)「php.iniファイルパス」に以下を入力

extension_dir = /home/ドメイン名/php_modules/
extension=php_sodium.dll
extension=/home/ドメイン名/usr/local/php/extensions/sodium.so

 3)「保存する」を選択する。

8.Moodleのサイト管理画面で、動作環境を確認

  • 「サイト管理」▶「サーバ」▶「動作環境」
  • 「php_extension sodium」が「OK」になっていることを確認する

    以上を確認したらアップグレードできます。

なお、この方法を試してうまくいかなかった時の責任は負いかねますので、あくまで自己責任で実施してください。

 

コメント

タイトルとURLをコピーしました