ubuntu 20.04から22.04への移行中にひっかかったこと

Drupalの実行環境、テスト環境でさくらのクラウドを利用している。

テスト環境の起動ディスクを以下の構成で作り直した。

画像

これまで20.04 lts上で、自分のホームディレクトリの下にdrupal用のディレクトリを作り、www-dataグループが書込み可能な状態にして、composer create-project drupal/recommended-projectをsudo -u www-dataでdrupalを立ち上げてきた。

その上で、/var/www/の下から、シンボリックリンク(ln -s)でwebを指すようにし、そこをDocument Rootとして公開してきた。

ところが、22.04で同等のセットアップをすると、Webは403になるし、sudo -u www-data composerも失敗する。3時間ほどロストした後に、sudo -u www-data /bin/bashを実行したら、自分のホームディレクトリがアクセスできないことに気がついた。調べてみたら、パーミッションが755から750に変わっていたのである。つまり、www-dataではcomposer.jsonにアクセスできず、Document Rootにもアクセスできないので403になるのである。

ちょっと考えてみると、ホームディレクトリを750に設定するのはセキュリティ的には合理的だ。実際、そういう議論は昔からあった(ホームディレクトリのパーミッション変更)ようで、それがデフォルトになったのだろう。

いろいろ考えて、ホームディレクトリのグループをwww-dataにして、それ以外の設定はそのままにした。バックアップには、Google Cloud Storageを利用しているので新環境でもセットアップが必要だが、まだやっていない。時間をみつけてコツコツと作業を継続する。多分、テスト環境は今週中に整うだろう。

クリーンインストールは自分の知識の整理になるので、時々やってみる価値がある。ちなみに、Drupalが必要とするphp8.3を(apache2上で)利用するために、リポジトリの追加が必要になる。

sudo apt-get install ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/apache2

このブログは執筆時点でGCPのe2-micro(Debian)をus-central1-aで運営している。遅いが、無料枠があるので月額300円ちょっとと安価。新たなインスタンスをUbuntuで上げて、切り替える方向で進めるつもり。

本番環境は、gitで更新する形で、直接/var/www以下に配置した方が良いし、サイトのfilesは本番側からアップロードするような運用が良いと思っているのだが、まだフローを確立せずに手運用を続けている。DDEVを使うべきかを含めてもう少し考えたい。

タグ
feedback
こちらに記入いただいた内容は執筆者のみに送られます。内容によっては、執筆者からメールにて連絡させていただきます。