タグ: Linux Page 25 of 29

mkcertのエラーを解消。

ローカル環境でのSSL通信を可能にするmkcert。単純な設定ミスを見つけました。

発生した現象

Kaspersky Antivirusで「もうこうな証明書のSSL接続が検知されました」のエラーを検知。理由は「この証明書チェーンは不完全です」

というもの。

原因

  • nginxの設定
  • mkcertの証明書の内容

は問題なしでした。(そもそも、他のドメインで同じように作ったときにはこんなエラーを検知しませんでした)

そこで、どんなコマンドを打っていたかの履歴をたぐります。

mkcert -install

mkcert -key-file [証明書秘密鍵].key.YYYYMM -cert-file [証明書].crt.YYYYMM ドメイン 

とすべきところを、

mkcert -install

sudo mkcert -key-file [証明書秘密鍵].key.YYYYMM -cert-file [証明書].crt.YYYYMM ドメイン 

と、root権限を付けていたことが原因。

  • ローカル証明局:一般ユーザ
  • SSL証明書:root

だったため、齟齬を起こしていたという次第。

対処

  1. 「sudo」で作っていた証明書を削除。
  2. 再度、一般権限でmkcertでローカル証明書を作成。
  3. 証明書ファイル差し替え

により、冒頭で述べたエラーは消えました。

こちらで紹介した手順では、このエラーが発生しないように差し替え済みです。

新規インストールしたLinux Mint 20.03にgrowiをインストール。-3-

growiとnginxを連携させ、ポート番号をブラウザに入力することなくアクセスできるよう設定します。

前提

この作業を行う場合は、サーバ名とIPアドレスが名前解決できることが必須となります。

mkcertのインストール

sudo su -

curl -s https://api.github.com/repos/FiloSottile/mkcert/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi - \
    && mv mkcert-v*-linux-amd64 mkcert \
    && chmod a+x mkcert \
    && mv mkcert /usr/local/bin/

exit

mkcert 認証局作成

mkcert -install

mkcert -CAROOT
# 指定通りの場所にあるかを確認します
# このディレクトリにある「rootCA.pem」はブラウザにインポートすることによって「信頼された情報局」であると示すことができます

mkcertでローカル証明書を作成

cd ~

mkcert -key-file [証明書秘密鍵].key.YYYYMM -cert-file [証明書].crt.YYYYMM ドメイン 
mkcert -key-file corn.wall.key.202204 -cert-file corn.wall.crt.202204 corn.wall penzance.corn.wall "*.corn.wall" 
# ワイルドカード証明書も作成できます

openssl x509 -text -noout -in ./corn.wall.crt.202204 |grep DNS
# DNSの蘭に登録した証明書のローカルドメイン名があることを確認します

ローカル証明書を格納

sudo mkdir /etc/certs

sudo cp -pi ./*.crt* /etc/certs/

sudo mkdir /etc/private

sudo cp -pi ./*.key* /etc/private/

ローカル証明書のシンボリックリンク化

mkcertsはあくまでもローカル環境での証明書を作成するツールなので、更新サイクルが3ヶ月程度となっています。
そこで、後のメンテナンスがしやすいようにシンボリックリンクを張ります。

実行例

cd /etc/certs/

ln -s corn.wall.crt.202204  corn.wall.crt

cd /etc/private/

ln -s corn.wall.key.202204 corn.wall.key

nginxインストール

sudo aptitude install nginx

リバースプロキシー化事前設定

sudo mkdir /etc/old

sudo cp -pi /etc/hosts /etc/old/hosts.`date +%Y%m%d`

sudo sed -i 's/127.0.1.1/127.0.0.1/g' /etc/hosts
# Ubuntu系はhost名のローカルアドレスを127.0.1.1と記載するので書き換えます
sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048
# 環境によっては5分以上かかります

sudo mkdir /var/log/nginx/growi

sudo chown www-data:www-data /var/log/nginx/growi

nginx設定ファイル作成

※ コマンド実行の前に[ ]でくくった箇所を自分の環境に置き換えてください。

以下の順番で行うとやりやすいです。

  1. 以下のコマンド全行(cat - ~ 最下行のEOFまで)をコピーする
  2. 任意のテキストエディタに貼り付ける
  3. [ ]でくくった箇所を置き換えて編集する(このとき、[ ] も外します)
  4. 置き換えて編集したコマンド全行をコピー
  5. ターミナルに貼り付けて実行する
cat <<- 'EOF' | sudo tee -a /etc/nginx/sites-available/growi.conf
upstream [growiを公開するサブドメイン(e.g. growi)] {
       server [growiサーバのIPアドレス]:3000;
}

server {
        listen 80;
        server_name [公開するWebドメイン(e.g. growi.example.test)];
        server_tokens off;
        return  301 https://$host$request_uri;
        access_log /var/log/nginx/growi/access.log;
        error_log /var/log/nginx/growi/error.log warn;
}

server {
        listen 443 ssl http2;
        server_name [公開するWebドメイン(e.g. growi.example.test)];
        server_tokens off;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_dhparam /etc/nginx/dhparam.pem;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers off;
        add_header Strict-Transport-Security 'max-age=63072000';

        ssl_certificate [証明書が格納されているディレクトリ/証明書ファイル];
        ssl_certificate_key [秘密鍵が格納されているディレクトリ/秘密鍵ファイル];

        ssl_stapling on;
        ssl_stapling_verify on;
        # mkcert以外のきちんとした証明書を用いる時に使うオプションです

        access_log /var/log/nginx/growi/ssl_access.log;
        error_log /var/log/nginx/growi/ssl_error.log warn;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_max_temp_file_size 10240m;
        client_max_body_size 10240m;
        proxy_redirect off;

       set $proxy_target  '[growiを公開するサブドメイン(upstreamの行で設定したもの)]';

       location / {
          proxy_pass http://$proxy_target;
       }

       location /socket.io/ {
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          proxy_cache_bypass $http_upgrade;
          proxy_pass http://$proxy_target/socket.io/;
       }
}
EOF

コンフィグファイルの有効化

cd /etc/nginx/sites-enabled
sudo unlink default
# nginxの基本設定を無効化します
sudo ln -s /etc/nginx/sites-available/growi.conf growi.conf
# 先ほど作成したコンフィグファイルを有効化します

起動確認

sudo nginx -t
# syntax is ok と test is successful を確認します

sudo systemctl restart nginx

sudo systemctl enable nginx

systemctl status nginx
# (runnning) と enabled を確認します

確認後、

http://[指定したドメイン名]

で、

  • Growiのログイン画面が見えること(:3000を付ける必要がないこと)
  • SSL通信(httpsにリダイレクトされること)を確認してください

新規インストールしたLinux Mint 20.03にgrowiをインストール。-2-

ここでは、インストールしたGrowiをサービス化して、サーバを再起動しても自動実行されるようにします。

起動スクリプト化

※ cat ~ EOFまで全行を実行します。

※ コマンド実行の前に[ ]でくくった箇所を自分の環境に置き換えてください。

以下の順番で行うとやりやすいです。

  1. 以下のコマンド全行(cat - ~ 最下行のEOFまで)をコピーする
  2. 任意のテキストエディタに貼り付ける
  3. [ ]でくくった箇所を置き換えて編集する(このとき、[ ] も外します)
  4. 置き換えて編集したコマンド全行をコピー
  5. ターミナルに貼り付けて実行する
cat <<- 'EOF' | sudo tee -a /var/growi/growi-start.sh
#!/bin/sh
cd /var/growi
NODE_ENV=production \
AUDIT_LOG_ENABLED=true \
FORCE_WIKI_MODE=private \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=[ランダムな文字列を指定する] \
FILE_UPLOAD=local \
npm start
EOF

また、上記は筆者の環境に合わせています。不要な場合は削除ください。

  • AUDIT_LOG_ENABLED=true \
    • v5.1.10から実装された監査ログを有効化する機能
  • FORCE_WIKI_MODE=private \
    • 強制的に全てのページを非公開にする

起動スクリプトに実行権限を付与

sudo chmod +x /var/growi/growi-start.sh

ls -l /var/growi/growi-start.sh
# 実行権限がついていることを確認

サービスとして登録

cat <<- 'EOF' | sudo tee -a /etc/systemd/system/growi.service

[Unit]
Description = growi
After=network-online.target mongod.service
ConditionPathExists=/var/growi

[Service]
ExecStart=/var/growi/growi-start.sh
Restart=no
Type=simple

[Install]
WantedBy=multi-user.target

EOF

登録したサービスを有効化

sudo systemctl daemon-reload

sudo systemctl start growi.service

sudo systemctl enable growi.service

sudo systemctl status growi.service
# (running)とenabledを確認

起動確認

起動後(3分ぐらいかかります)、
http://[IPアドレス/dns登録名]:3000

にアクセスすることで、growiのログイン画面が出てきます。この段階で利用可能です。

次にご紹介するリバースプロキシー有効化などは、ローカル運用と割り切ってしまえば不要なオプション設定です。

新規インストールしたLinux Mint 20.03にgrowiをインストール。-1-

コンテナ環境だともっと楽なのでしょうけれど、きちっとオンプレで運用したいので、こういう方法をとりました。

前提

  • インストールするサーバはUbuntu 20系のLinux Mint 20.03を用います。(22系はMongoDBで詰まりました)
  • 他にWebサーバを稼働していないサーバにて実施しています。
  • ローカルNW内で運用するため、サーバのセキュリティ設定は低くなっています。
  • インストールするディレクトリは「/var/growi」とします。
  • ここではあくまでもインストールと起動確認を行うまでです。
  • エディタによる編集は極力使わず、コマンドのコピー&ペーストで完結するようにしています。
  • ここではインストールと動作確認にとどめます。

参考にしたURL

  • Ubuntu Server 20.04 LTSにGROWIをインストール

https://qiita.com/BigTree777/items/4a67d36c4111a1fb50e7

  • Ubuntu18.04にGrowiをインストール

https://qiita.com/hawk777/items/0916024c1bd7b24904ae

手順

別途、記載がない限りは

  • 1行空いているコマンドは、1行ずつ実行します。
  • 空白行がない一連のコマンドは全てをコピー&ペーストして実行します。

必要に応じて:aptitudeのインストール

sudo apt-get install aptitude
# 本項ではパッケージ管理にaptitudeを用いますので、導入されていない場合はインストール。
# ポリシーによりaptを用いる場合は読み替えてください。

事前準備 - nginx リポジトリの追加

sudo add-apt-repository ppa:ondrej/nginx
# これを先に実施しないと、mongodbのバージョン固定に失敗しました

Node.js/npm/yarnのインストール

cd ~

curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh

sudo bash nodesource_setup.sh

sudo aptitude install nodejs
Node.jsとnpmのインストール確認
node -v

npm -v
# インストールしたバージョンを確認

yarnのインストール

sudo npm install -g yarn

yarn -v
# インストールしたバージョンを確認

Elasticsearchのインストール

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

sudo aptitude install apt-transport-https

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

sudo aptitude update && sudo aptitude install elasticsearch

dpkg -l |grep elasticsearch
#インストールしたバージョンを確認
Elasticsearchに割り当てるメモリを調整
sudo mkdir /etc/elasticsearch/old
# 切り戻しができるように、設定ファイルのバックアップを格納するディレクトリを作ります

sudo cp -pi /etc/elasticsearch/jvm.options /etc/elasticsearch/old/jvm.options.`date +%Y%m%d`
# .`date +%Y%m%d`をつけることで、バックアップファイルは当日日付(YYYY/MM/DD形式)で記録されます

echo -e "-Xms256m\n-Xmx256m" | sudo tee -a /etc/elasticsearch/jvm.options
メモリ調整確認
sudo diff -u /etc/elasticsearch/old/jvm.options.`date +%Y%m%d` /etc/elasticsearch/jvm.options

diffの出力結果(差分)が以下であることを確認します。

+-Xms256m
+-Xmx256m
Elasticsearchの自動起動の有効化
sudo systemctl start elasticsearch

sudo systemctl enable elasticsearch

sudo systemctl status elasticsearch
# (running) と enabledを確認

Growiに必要なElasticsearchプラグインのインストール

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu

sudo systemctl restart elasticsearch

Redisのインストール

sudo add-apt-repository ppa:chris-lea/redis-server

sudo aptitude update && sudo aptitude install redis-server
インストール後の確認
redis-cli --version

redis-server --version
# インストールしたバージョンが表示されることを確認

sudo systemctl start redis-server

sudo systemctl enable redis-server

sudo systemctl status redis-server
# (running) と enabledを確認

MongoDBのインストール

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

sudo aptitude update && sudo aptitude install mongodb-org=4.4.13 mongodb-org-server=4.4.13 mongodb-org-shell=4.4.13 mongodb-org-mongos=4.4.13 mongodb-org-tools=4.4.13

MongoDBのバージョン固定

echo "mongodb-org hold" | sudo dpkg --set-selections

echo "mongodb-org-server hold" | sudo dpkg --set-selections

echo "mongodb-org-shell hold" | sudo dpkg --set-selections

echo "mongodb-org-mongos hold" | sudo dpkg --set-selections

echo "mongodb-org-tools hold" | sudo dpkg --set-selections
インストール後の確認
redis-cli --version

mongod --version
# インストールしたバージョンが表示されることを確認

sudo systemctl start mongod

sudo systemctl enable mongod

sudo systemctl status mongod
# (running) と enabledを確認

Growiのインストール

sudo aptitude install git build-essential

sudo git clone https://github.com/weseek/growi /var/growi

cd /var/growi

sudo git tag -l
# 2022/09/15での最新版は5.1.4

sudo git checkout -b v5.1.4 refs/tags/v5.1.4

sudo yarn

Growi起動確認

ここでは「PASSWORD_SEED」を「GOLDEN_SEED」と設定します。任意のランダム文字列を指定してください。

先頭のsudo から最終行のnpm startまで全てコピー&ペーストで実行します。

sudo \
NODE_ENV=production \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=GOLDEN_SEED\
FILE_UPLOAD=local \
npm start

以下の表示が出たら起動は成功です。

> growi@(インストールしたバージョン) start /var/growi
> yarn app:server

ブラウザで

http://IPorホスト名:3000

に接続し、ログインページ表示を確認します。(ここではまだログインをしないでください)

ログインページ表示を確認後、[Ctrl]+[C]で抜けます。

これからの流れ

最終的に以下を行います。

  • mkcertによるSSL取得と常時SSL化
  • nginxによるリバースプロキシー
  • growiの起動スクリプト化

Growiの管理者パスワードリセット。

あらまし

検証の繰り返しで再作成する羽目になったgrowi。幸いDBデータは残っていたのでデータそのものは無事だったのですが、管理者パスワードを忘れてしまいました。

そこで、以下の通りにパスワードをリセットさせました。

前提

  • Growiのバージョンは2022年9月時点で最新の5.1.4。
  • 登録の制限:公開(だれでも登録可能)

手順

参考:
https://blog.akky.me/blog/change-growi-password-manually/

上記URLにあるように、環境変数'PASSWORD_SEED'を確認しようとしましたが、再作成の際に変数を失念。

なので、搦め手を用いました。

ユーザー登録を行います。(Growi Web画面)

Growiのトップ画面「新規登録はこちら」から

  • ユーザーID
  • 名前
  • メールアドレス (管理者と同じメールアドレスは登録できないので注意してください)
  • パスワード

を設定して新規登録します。このとき、パスワードは「リセットを行いたい管理者パスワード(上書きを行いたいパスワード)」にします。

ログインできることを確認したので、ここからはターミナルでの操作になります。

mongodbに接続します。(Growiがインストールされたサーバ)

管理者権限で実施しました。

mongo growi

上記で新規登録をしたユーザのデータを確認します。(Growiがインストールされたサーバ)

db.users.find({email: "上記登録をしたメールアドレス"});

パスワードのハッシュ値を確認します。(Growiがインストールされたサーバ)

出力されたデータの以下の値を確認します。アカウント情報がずらっと出てくる中で、

"password" : "ハッシュ化されたパスワード値",

これを控えておきます。

管理者パスワードを上書きます。(Growiがインストールされたサーバ)

db.users.update({email: "管理者のメールアドレス"}, {$set: {password: "先程控えておいたパスワードのハッシュ値"}}); 
# WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) と表示されればOKです

上書きしたパスワードでログインします。(Growi Web画面)

この手順でなんとか管理者でログインできました。

後処理を行います。(Growi Web画面)

管理>ユーザー管理 へと進み、一時的に作成したユーザを停止したり管理者に昇格させたりしてください。

Ubuntu系Linuxの最初の設定。

検証にしろなんにしろ、最初に行っている作業のメモ書きです。

サーバ名をドメイン込みで再設定

hostnamectl set-hostname [サーバ名]
uname -n
# 指定したサーバ名が表示されることを確認

Ubuntu系Linuxは、ドメイン込みでサーバ名を登録してもフルネームで登録されません。ここで最初にサーバ名を確定させます。

~/.bashrc末尾に以下を追記

PS1="[\u@\H \W]\\$ "
HISTSIZE=50000

→ これにより、ユーザ名とホスト名のフルネームがプロンプトに表示されます。また、コマンド「history」で記憶させる上限を増やします。

/etc/bash.bachrcに以下を追記

export HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '

→ これはほぼ必須です。コマンド「history」を実行したときの日時を指定することでその後の証跡が追いやすくなります。

検証: redmine 4.2のデータを別サーバに完全移行。

以前書いた

の、うち、「バックアップしたデータを新しいサーバに移設する」が成功したので、その備忘録になります。

やったこと

現行で稼働しているredmineサーバを、新規LinuxMintサーバにデータを流し込み、復元させた。

以降元と移行先サーバ

共にLinux Mint20.03が稼働しています。

手順

基本的に管理者権限で行っていますが、ユーザーで行う場合はそれを追記します。

移行先で行う作業-redmine構築-

新規にRedmine 4.2を作ります。最初に作成するときにもお世話になった

https://eco.senritu.net/ubuntu20-04%E3%81%B8redmine4-2-x%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

こちらを用いましたが、以下、異なる部分があります。

Apacheのバージョンを脆弱性対応版に上げる
mysql_secure_installationが正常に動かない問題に対処する
vi /etc/mysql/mysql.conf.d/mysqld.cnf
追記内容
末尾に以下を追加
default_authentication_plugin=mysql_native_password

設定後にmysqlサービス再起動

systemctl restart mysql

MySQL rootパスワード設定

mysql -u root -p
# 未設定のためパスワードは不要です
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
#パスワードは任意のものを入力ください
flush privileges;
exit

後は参考サイトの手順に沿ってredmine4.2を起動させます。 このとき、database.ymlやconfiguration.ymlは以降元に合わせます。また、rubyのバージョンは2.7系にしています。

移行元で行う作業-redmineバックアップと転送-

DBのバックアップ

※こちらは通常ユーザで実行しました。

mysqldump redmine(DB名) --no-tablespaces -u redmine(DBユーザ) -p > redmine_backup

を実行し、DB全体のバックアップを取ります。

redmineデータのバックアップ

ここからは管理者権限で実施します。

cd /var/lib/redmine
# インストールされているredmineディレクトリに移動

このうち、

  • /redmine/files
  • /redmine/plugins
  • /redmin/public/thems

の3ディレクトリが移行先に流し込むデータとなります。

  • rsyncやscpを用いてのデータ転送
  • 一度圧縮して転送

など、任意のものを用います。

移行先で行う作業-redmineデータのリストア-

上段で述べた

  • files
  • plugins
  • public/themes

を、移行元と同じように配置します。このとき、ディレクトリやファイルの所有権が元と同じ(通例はwww-data)になるようにします。

そして、sqldumpで取得したDBも移行先に持っていきます。

プラグインのマイグレーション

cd /var/lib/redmine
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

DBのリストア

 mysql -u redmine -p redmine < redmine_backup

を実施後、

systemctl restart apache2.service

を行うことで

以降元、移行先、共に

  • 同じテーマ
  • 同じプラグイン
  • 同じ添付ファイル

が見えることを確認しました。

前回、ちょっとしたDBのリストアを行いましたが、プラグインや添付ファイルを含めた完全な移行テストは初めて。

これで、もしもの時のためのリストア手順が整いました。

Apache脆弱性対応。(リポジトリを用いたパッケージアップデート)

AWS Lightsailを用いてインターネット接続されている自分用のredmine。

いわゆる

  • Linux
  • Apache
  • MySQL
  • Ruby

で動いておりますが、その中のApacheに脆弱性があるので対応しました。

Apache HTTP Server 2.4における複数の脆弱性に対するアップデート

https://jvn.jp/vu/JVNVU94306894/

手順

全て管理者権限で実行しています。

Ubuntu 20.04の標準パッケージでインストールされているApacheのバージョンを確認します。

apache2 -v

# 以下、脆弱性を受けるバージョンです。
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2022-06-14T13:30:55

リポジトリを追加します。

add-apt-repository ppa:ondrej/apache2
# 途中、Press[Enter]と表示されるので空エンターを打ちます。

パッケージを更新します。

aptitude update
aptitude upgrade
# 確認の前に、パッケージ一覧を確認します。

パッケージ更新後のApacheのバージョンを確認します。

apache2 -v
Server version: Apache/2.4.54 (Ubuntu)
Server built:   2022-06-08T15:59:07
# 最新版である2.54であることを確認します。

サービスを再起動し、既存サイトが問題なく動くかを確認します。

systemctl restart apache2.service 

これで、ひとまずは安心です。

自宅サーバ増設と今後の予定。

こちらの件を一歩進めました。

Chuwi Herobox pro到着

結局、現行2台と同じ機種にしました。

  • ファンレス無音
  • 省電力
  • 夏、日中にエアコンを切っていても稼働していた

などの実績からこちらです。

To Do

redmineのリストア

まっさらの機体が手に入ったので、「自宅環境のコアとなっているシステム」redmineが別の機体でも移行できるかを試します。

フォトアルバムリプレース

現状、Lycheeを使っておりますが、このほかのフォトアルバムも検証します。

Nextcloud検証

上記の後の本命。自宅にDropbox的なオンラインストレージを用意することでデータの冗長化を目指します。

PHPアップデート後の処理。(7.4 → 8.1)

検証で動かしていたUbuntu 20.04系サーバで

sudo aptitude update
sudo aptitude upgrade

と実施するとphpパッケージが8.1にアップグレードされていました。

その後、apache/PHPで稼働しているサイトが[Server Error]となったので、その対処方法をメモしました。

手順

今まで動いていたPHP7.4を無効化します。

a2dismod php7.4

PHP8.1を有効化します。

a2enmod php8.1

サービス再起動し、稼働することを確認します。

systemctl restart apahce2

これにより、正常稼働を確認です。

以前にインストールした

  • Lychee フォトアルバム
  • Snipe-IT

はいずれも稼働していました。

新たな問題

完全に見落としていましたが、Zabbix 5.0はphp 8.1では動かず、以下のように表示されます。

これに関してはバージョンアップを見据えつつ、対処していく必要があります。

Page 25 of 29

Powered by WordPress & Theme by Anders Norén