Drupal9をマイナーアップデートします

先日、Drupal9をインストールしました。
https://minokamo.tokyo/2021/05/01/3622/
少し時間が経過し、管理画面にDrupalのバージョンを更新できるという表示がされたので、アップデートします。


Drupal自体のアップデートはブラウザではできないので、ssh接続してcomposerを使用します。
Drupalをインストールしたディレクトリにcomposer関連のファイルがあるので、ここに移動してコマンド入力をします。

composer update drupal/core 'drupal/core-9.1.8' --with-all-dependencies

エラーが発生しました。

file_put_contents(./composer.lock): Failed to open stream: Permission denied

composerはrootでの実行を推奨してないとのことです。この環境は私一人しか使用してないので常に管理者としてコマンドを入力していました。そこでNGINXが実行したことにするコマンドを入力してみます。

下の例は、drupalのインストールディレクトリに移動して、composerコマンドを入力します。
sudo su - nginx -s /bin/bash -c "cd /usr/share/nginx/html/drupal && composerコマンド"

sudo su - nginx -s /bin/bash -c "cd /usr/share/nginx/html/drupal && composer update drupal/core 'drupal/core-9.1.8' --with-all-dependencies"

エラーが発生しましたが、色が黄色なのでそれほど深刻ではありません。無視すれば進めますが、コマンド自体が間違ってました。どうやら、この警告に表示されているディレクトリに適切な権限がないみたいです。

Cannot create cache directory /var/cache/nginx/.cache/composer/repo/https—packages.drupal.org-8/, or directory is not writable. Proceeding without cache

先に述べたように、NGINXが実行したことにするので、このディレクトリの権限をNGINXに変更しました。

sudo chown -R nginx:nginx /var/cache/nginx

再度、コマンドを入力します。今度はうまくいきました。その後、ブラウザで管理画面を見たら更新内容は消えました。

sudo su - nginx -s /bin/bash -c "cd /usr/share/nginx/html/drupal && composer update drupal/core-recommended --with-all-dependencies"

教育

Posted by admin