www.ulslab.com www.ulslab.ee他のサーバーを刷新、構成変更した

年始の期間等を利用して、さくらのクラウドのサーバーをUbuntu 22.04.1 LTSのクリーンインストール状態にして移行した。同時に、Drupalはmultisite構成に変更し、nginx環境やletsencryptも最新化した。さくらのクラウドのアーカイブからUbuntuのディスクを作成して、まずはテスト環境で以下を実施。

phpは8.1の最新版が使いたいので、ondrejリポジトリを追加登録してインストールした。

    3  sudo apt update
    4  sudo apt upgrade
    5  sudo add-apt-repository ppa:ondrej/php
    6  sudo add-apt-repository ppa:ondrej/nginx-mainline
    7  sudo apt update
    8  sudo apt install -y php8.1
    9  php -v

PHP 8.1.14 (cli) (built: Jan  6 2023 15:23:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.14, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.14, Copyright (c), by Zend Technologies

phpの定番機能を入れてから、apache2を落として、nginxを導入、追加のphp機能を導入し動作を確認した。

この辺りは、How to Install Drupal 9 with Nginx, PHP-FPM 8.1, MySQL, phpMyAdmin on Ubuntu 22.04 - Linode Guideを参考にさせていただいた。

   11  sudo apt install php8.1-mbstring zip unzip php8.1-zip php8.1-curl -y
   12  sudo systemctl stop apache2
   13  sudo systemctl disable apache2
   14  sudo apt install nginx -y
   15  sudo apt install php8.1-fpm php8.1-cli php8.1-gd php8.1-mysql php8.1-xml -y
   16  sudo systemctl restart php8.1-fpm
   22  sudo vim /etc/nginx/sites-available/default # location ~ \.php$ { 部分をphp8.1に対応
   23  sudo nginx -t
   24  sudo systemctl restart nginx
   25  sudo systemctl restart php8.1-fpm
   45  sudo vim /var/www/html/info.php

ついで、mariadbを導入しセットアップ

   51  sudo apt install mariadb-server -y

$ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.6.11-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create user XXXX@localhost identified by 'PASSWORD';
Query OK, 0 rows affected (0.013 sec)

MariaDB [(none)]> grant all privileges on *.* to XXXX@localhost;
Query OK, 0 rows affected (0.013 sec)

MariaDB [(none)]> quit
Bye

その後、composerをインストール

   56  php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
   57  php composer-setup.php
   58  sudo mv composer.phar /usr/local/bin/composer
   59  rm *.php
   61  composer --version

ついで、drupal最新版をテストインストール。自分をwww-dataグループに所属させ、ホームディレクトリをwww-dataグループにし、グループ書き込みを有効にした上で、sudo -u www-dataで実施。

   64  sudo chgrp www-data .
   67  sudo usermod -aG hagi www-data
   70  chmod 775 .
   71  sudo -u www-data composer create-project drupal/recommended-project:9.5.1 test
   72  cd test
   73  sudo -u www-data composer update -W

キャッシュが効いてしまうので、http://IPaddress/index.phpでアクセスすると無事に冒頭の画像が出て、インストールができることが確認できた。

ついでletsencryptをインストール

   84  sudo apt install certbot -y
   85  sudo apt install python3-certbot-nginx -y

後は、旧環境のデータを戻していった。委細は省略

テスト環境で動作確認を終えた後、テスト環境サーバーをshutdownして、さくらのsnapshotを取得し、そこから本番環境のディスクを生成、立ち上げた後hostnameとnetplanのIPアドレスを変更して再立ち上げ。

その後、certbotで証明書関係を再設定して完了

なお、今回ちょっとはまったのは、drupalをmultisite対応する時にsettings.phpのconfigurationのdefaultをサブディレクトリに変更するところ。ここを正しく修正すれば、drush -l www.ulslab.com crなどが問題なく動くようになる。

drupalは9.5.1に、テーマはOliveroに変更した。そのタイミングでCkeditorを5にした。いろいろ苦労もあったが、これですっきり垢が落とせたと思う。

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