カテゴリー: nextcloud Page 1 of 3

Nextcloud、PHPのアップロードファイルサイズを変更。

概要

Nextcloudの管理画面から出てくるPHPの最大アップロードファイルサイズを変更します。

環境

2024/03/26現在

  • Ubuntu 20.04
  • Apache 2.4.58
  • Nextcloud 28.0.3
  • PHP 8.1.27

手順

現在のファイルサイズを確認

  • upload_max_filesize
cat /etc/php/8.1/apache2/php.ini |grep max_filesize
upload_max_filesize = 2M
  • post_max_size
cat /etc/php/8.1/apache2/php.ini |grep max_size
post_max_size = 8M

それぞれ、筆者の環境です。

バックアップ取得

  • バックアップ
sudo cp -pi /etc/php/8.1/apache2/php.ini /path/to/backup/directory/php.ini.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

  • バックアップ取得確認
diff -u /etc/php/8.1/apache2/php.ini /path/to/backup/directory/php.ini.$(date +%Y%m%d)

エラーが出なければ(差分がなければ)バックアップはできています。

ファイル書き換え

  • ファイル書き換え
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/; s/post_max_size = 8M/post_max_size = 120M/' /etc/php/8.1/apache2/php.ini

※upload_max_filesize = 2Mとpost_max_size = 8Mは、自分の設定を入れてください。

  • ファイル書き換えの差分表示
diff -u /path/to/backup/directory/php.ini.$(date +%Y%m%d) /etc/php/8.1/apache2/php.ini

先ほどバックアップしたファイルを指定します。

 ; https://php.net/post-max-size
-post_max_size = 8M
+post_max_size = 120M

 ; Automatically add files before PHP document.
 ; https://php.net/auto-prepend-file
@@ -847,7 +847,7 @@

 ; Maximum allowed size for uploaded files.
 ; https://php.net/upload-max-filesize
-upload_max_filesize = 2M
+upload_max_filesize = 100M

設定反映

  • apacheのステータス確認
systemctl status apache2.service

active(running)を確認します

  • apache再起動
sudo systemctl restart apache2.service
  • apacheのステータス確認
systemctl status apache2.service

active(running)を確認します

設定反映確認

先ほど修正を行ったNextcloudに管理者権限でアクセスします。

管理>システムに進みます。

最大アップロードファイルサイズが修正した値になっていれば設定完了です。

Nextcloud、Recognizeのエラー解消。(機械学習モデルのダウンロード)

環境

  • Ubuntu 22.04
  • Nextcloud 28.03

の環境で、画像の自動タグ付けアプリ『Recognize』を利用しています。

Nextcloudを28.03にアップデート後、以下のエラーが出たので対処を行います。

エラー内容

管理者権限でログイン後、管理>Recognizeと進むと以下が出てきました。

The machine learning models still need to be downloaded.

対処

こちらのサイトに出てきた方法をそのまま使いました。

https://help.nextcloud.com/t/machine-learning-models-still-need-to-be-downloaded/151566

ディレクトリ移動

cd /home/www-data/nextcloud/ && pwd

Nextcloudがインストールされているディレクトリに移動します。

occ実行

sudo -u www-data php occ  recognize:download-models

※5~10分ぐらい時間がかかりました。

エラー解消確認

上記コマンド終了後、再びNextcloudにログインして管理>Recognizeと進みます。

機械学習モデルのダウンロードが正常に終了しました。

と出たのでエラーは解消です。

Ubuntu 22.04に構築したNextcloudとClamAVを連携させる。

概要

NextcloudとClamAVを連携させます。

環境

  • Ubuntu 22.04
  • Nextcloud 28.02
  • ClamAV 0.103

さっくりとした手順

  1. clamav-daemonを有効化します。
  2. ウイルス定義ファイル(freshclam)を定期的に実行させます。
  3. NextcloudにAntivirusを導入します。
  4. NextcloudのAntivirusを連携させます。

参考にした手順:
https://rair.dev/nextcloud-clamav-antivirus/

前提

  • 性質上、かなりリソースを消費します。ある程度のマシンスペックを覚悟してください。
  • ClamAVをインストールしていることが条件です。

ClamAVを有効化します。

  • ClamAV daemon 状況確認
sudo systemctl status clamav-daemon.service

実行結果

○ clamav-daemon.service - Clam AntiVirus userspace daemon
     Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/clamav-daemon.service.d
             └─extend.conf
     Active: inactive (dead)
  Condition: start condition failed at Tue 2024-02-20 16:09:56 JST; 19h ago
             └─ ConditionPathExistsGlob=/var/lib/clamav/daily.{c[vl]d,inc} was not met
       Docs: man:clamd(8)
             man:clamd.conf(5)
             https://docs.clamav.net/

最初はエラーになったので、再起動をします。

  • ClamAV daemon 再起動
sudo systemctl restart clamav-daemon.service
  • 再起動後の状況確認
sudo systemctl status clamav-daemon.service
● clamav-daemon.service - Clam AntiVirus userspace daemon
     Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/clamav-daemon.service.d
             └─extend.conf
     Active: active (running) since Wed 2024-02-21 11:44:33 JST; 4s ago
       Docs: man:clamd(8)
             man:clamd.conf(5)
             https://docs.clamav.net/
    Process: 54279 ExecStartPre=/bin/mkdir -p /run/clamav (code=exited, status=0/SUCCESS)
    Process: 54280 ExecStartPre=/bin/chown clamav /run/clamav (code=exited, status=0/SUCCESS)
   Main PID: 54281 (clamd)
      Tasks: 1 (limit: 18920)
     Memory: 955.7M
        CPU: 4.215s
     CGroup: /system.slice/clamav-daemon.service
             └─54281 /usr/sbin/clamd --foreground=true

今度はOKです。この結果を見てもわかるように、消費メモリが1GBほど。

  • ソケットがリッスンされていることを確認
netstat -a|grep clam
unix  2      [ ACC ]     STREAM     LISTENING     1516341  /var/run/clamav/clamd.ctl

freshclamを定期実行させます。

  • サービススクリプトを作成
cat <<- __EOF__ | sudo tee -a /etc/systemd/system/freshclam.service
[Unit]
Description=Freshclam virus database updater

[Service]
Type=simple
ExecStart=/usr/bin/freshclam -d -c 4
# -c 数字で 頻度を指定します。ここでは日に4回(6時間おき)に更新します

[Install]
WantedBy=multi-user.target
__EOF__
  • 実行権付与
sudo chmod +x /etc/systemd/system/freshclam.service
  • サービス反映
sudo systemctl daemon-reload
  • サービス開始
sudo systemctl start freshclam.service
  • 自動起動有効化
sudo systemctl enable freshclam.service
  • サービス開始確認
systemctl status freshclam.service

Active :inactive (dead)と表示されますが、 freshclam.service: Deactivated successfully.と出ていれば動作に問題はありません。

NextcloudでAntiVirusをインストール

  1. Nextcloudに管理者権限でログインします。
  2. アプリから「Antivirus for files」を検索してインストールします。

Nextcloud Antivirus for files設定

  1. 管理者メニューの「セキュリティ」に進みます。
  2. ファイルのウイルス対策で、以下の通り設定します。
  • モード: ClamAV Daemon (Socket)
  • ソケット: /var/run/clamav/clamd.ctl
  • ストリームの長さ: 262144000 (アップロードできるファイルの容量に合わせます)
  • File size limit for periodic background scans and chunked uploads, -1 means no limit:-1
  • Check only first bytes of the file, -1 means no limit :-1
  • バックグラウンドスキャン中に感染ファイルが見つかった場合: ログのみ (運用に合わせます)

設定後、「保存」をクリックして、設定完了です。

Nextcloud 28.02のエラー「メンテナンス

概要

Ubuntu 22.04でも稼働を始めたNextcloud。28.02にアップグレード後、管理者画面から以下の警告が出てきました。

サーバーにはメンテナンスウィンドウの開始時間が設定されていません。これは、リソースを多く使用する日常のバックグラウンドジョブが、メインの利用時間中にも実行されることを意味します。利用者がこれらの重いタスクによる負荷の影響を受けにくくするために、低い利用時間に設定することをおすすめします。 詳細については、ドキュメント↗を参照してください。

対処

https://docs.nextcloud.com/server/28/admin_manual/configuration_server/background_jobs_configuration.html

上記の通りに行うこととします。

以下、NextcloudがインストールされているサーバにSSHログイン(または直接コンソール接続)での操作です。

環境

  • Ubuntu 22.04
  • php 8.1
  • Apache 2.4

手順

root昇格

Nextcloudは、コンフィグ系が全てWeb実行ユーザ(www-data)等に統一されているため、

sudo su -

での操作を行います。

バックアップ取得

  • ディレクトリ移動
cd /home/www-data/nextcloud/config && pwd
  • バックアップ
cp -pi config.php /path/to/backup/directory/config.php.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

  • バックアップ確認
diff -u config.php /path/to/backup/directory/config.php.$(date +%Y%m%d)

エラーが出なければ(差分がなければ)バックアップ成功です。

config.php修正

以下のファイルを、以下の通り追記します。

/home/www-data/nextcloud/config/config.php

  • 追記内容
  'default_timezone' => 'Asia/Tokyo',
  'maintenance_window_start' => 1,
  • 差分
+  'default_timezone' => 'Asia/Tokyo',
+  'maintenance_window_start' => 1,

config.phpでタイムゾーンを指定済みであれば、追記は下の行だけで大丈夫です。

修正反映

  • Apache再起動
systemctl restart apache2.service
  • rootから抜ける
exit

解消確認

ブラウザから上記の処置を施したNextcloudにアクセス。管理者画面で「サーバーにはメンテナンスウィンドウの開始時間が設定されていません~」が出なければOKです。

2023年の主な出来事-サーバ編-

概要

2023年もじきに終わるということで、今年のまとめ。趣味のサーバ運用という点では大きなものがいくつかありました。

新たにインターネット上に構築したサイト

公開用Redmine作成

これが一番大きいです。

推しの名前でドメインが取得できたことにより、「これでWebを公開しよう」と思い立ち、正月休みから行動スタート。

ゲーム『ライザのアトリエ3』リリースに間に合わせ、様々な攻略情報を載せることができました。

Redmine自身の各種情報も掲載できたのも満足です。

アクセス解析システム:matomo作成

  • 非公開

公開用サイトのアクセス状況を知りたくて、このシステムをインストール。

Redmineとの連携はView_Customize_Pluginでなんとかなりましたし、その際、本邦のRedmineメンテナ様自身直々のアドバイスをいただけたことが印象に残っています。

フォトアルバムサイト:piwigo作成

フォトアルバムもついでに作成。

写真の拡充を図っていくのが来年度の目標になりそうです。

ドキュメント保存システム:BookStack作成

Redmineのプラグイン「knowlegebase」に代わるシステムを探していたら見つけました。

  • 本棚や本という概念
  • Markdownフレンドリー
  • 見出しに合わせたスクロール

など、おおよその欲しかった機能が備わっていて、今後のメインウェポンとなる予感です。

ローカルに構築したサイト

Nextcloud

2022年から継続利用。

Growi

2022年から利用しているマークダウンエディタ、growi。

2023年はmermaid.jsにようやく対応したので、デジタルでのメモ残しに大きく貢献しました。

firefly-iii

つい先日ではありますが、この財務管理システムを知ったおかげで「お金関係のロギング」を始められるようになりました。

来年度の目標

Ubuntu 20.04リプレース。

LTSのEOL2025年に備えます。そのためのボトルネックとなっている

  • Redmineのメジャーバージョンアップ
  • およびknoledgebaseの代替システム(現状候補はBookStack)

と検証を進めます。

サーバのスペックアップ

これに関しては予算と相談しながら。

Nextcloud、ブルートフォースの誤検知対応(occ実行)

エラー内容

Nextcloudで以下のエラーが出たので対応を行います。

あなたのIPアドレスは、 "xxx.xxx.xxx.xxx" として認識されており、現在ブルートフォース対策機能により様々なリクエストのパフォーマンスが低下しています。IPアドレスがあなたのアドレスでない場合、プロキシが正しく設定されていない可能性があります。詳細はドキュメントをご覧ください

エラーとなった原因

ファイル共有機能の検証を行っており、その際に共有/非共有の設定を繰り返していたなどの不審な動きがあったからだと思います。(現に、通常に使用している限りではエラーは発生しませんでした)

エラー解消

エラーが出たNextcloudサーバにSSH接続して対応します。

ディレクトリ移動

cd /home/www-data/nextcloud && pwd

occ実行

sudo -u www-data php occ security:bruteforce:reset [IPアドレス]

上記エラーで出てきたIPアドレスを指定します。

エラー解消確認

  1. Nextcloudに管理者権限でログインします。
  2. 管理画面を開きます。
  3. 以下のように、エラーが解消されていることを確認します。

ChromebookでNextcloudのファイルを参照。

使う機会があったので調べてみました。

背景

出先(宿泊先)にChromebookしか持っていない状態でNextcloudのファイルを参照したい状況が発生しました。

Chrome拡張Nextcloud (unofficial)

https://chrome.google.com/webstore/detail/nextcloud-unofficial/kkbmcejbjlhkmljcafiaofajcbgkobcd/related

こちらをChromebookに入れてみます。

導入後、Chromebookのファイルの縦メニューを開くと

Nextcloud(unofficial)というリンクが出てきます。

接続

※予めNextcloudにログインします。

  • Name:任意の名前
  • Server domain:Nextcloudのドメイン名

を入れて「Login」をクリックします。そうすると、Nextcloudにログインしているブラウザが表示され、アクセス権の確認が出ます。

その後、接続。

接続後の挙動

エクスプローラーのように、ファイルが表示されます。プレビューはでないものの、ファイルをダウンロードすることなく閲覧が可能になりました。

ブラウザからファイルを保存する際、このNextcloudのディレクトリを指定することはできませんが、

  1. 一度ダウンロードディレクトリに保存
  2. その後、ファイルアプリからNextcloudの任意のディレクトリに保存

の手順でOKとなりました。

レシピとインポート。(Nextcloudアプリ『CookBook』)

面白いアプリを見つけました。

CookBook

https://apps.nextcloud.com/apps/cookbook

A library for all your recipes. It uses JSON files following the schema.org recipe format. To add a recipe to the collection, you can paste in the URL of the recipe, and the provided web page will be parsed and downloaded to whichever folder you specify in the app settings.

と、料理のレシピを書いてくれるもの。

導入

Nextcloud 27.1.4で確認しました。

管理メニュー>アプリ

から、「CookBook」で検索後、「ダウンロードして有効」をクリックするだけ。その後、画面をリフレッシュしてダッシュボードに戻ると、メニューに「料理本」が現れます。

入力・編集

「レシピを作成」をクリックすると、このような入力画面が出てきます。

料理に必要な材料のみならず、使う器具も追記できて、手順は並べ替えも自由です。

レシピのインポート

このアプリ最大の特徴は、レシピサイトからそのままインポートできること。

https://help.nextcloud.com/t/working-urls-for-cookbook/61612

海外のサイトが主ですが、そのURLを引っ張ることができます。

https://www.jamieoliver.com/recipes/drink-recipes/english-garden-mocktail/

このレシピをインポートしてみます。

上記、Nextcloudにインストールした「料理本」から、

URLからレシピをダウンロードのところに、上記URLを貼り付けてEnter

すると、このようにレシピが現れます。

サイト内のキーワードも用意してくれる周到さ。

かなり使えるメモ帳として機能します。

Redis-ServerでPIDが作られない問題に対処。

Nextcloudを導入する際、Redis-Serverを組み込むところを行いました。

その中に気になるメッセージがあったので対処します。

Starting Advanced key-value store...
redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after s>
 Started Advanced key-value store.

手順1. IPv6無効化

参考にしたURL:
https://ubuntu.perlzemi.com/blog/20200225174004.html

1-1.設定ファイルのバックアップを取ります。

  • ディレクトリ移動
cd /etc/redis && pwd
  • 設定ファイルバックアップ
sudo cp -pi redis.conf /path/go/backup/directory/redis.conf.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

  • バックアップ確認
diff -u redis.conf /path/go/backup/directory/redis.conf.$(date +%Y%m%d)

差分がなければ(エラーがなければ)バックアップ完了です。

1-2. 設定ファイルを編集します。

  • ファイル編集

次のファイルを、以下の差分になるように編集します。

/etc/redis/redis.conf
  • 差分
-bind 127.0.0.1 ::1
+bind 127.0.0.1

手順2. 起動スクリプトの編集

参考URL:
https://github.com/redis/redis/issues/7361

2-1.設定ファイルのバックアップを取ります。

  • ディレクトリ移動
cd /etc/systemd/system && pwd
  • 設定ファイルバックアップ
sudo cp -pi /etc/systemd/system/redis.service /path/to/backup/directory/redis.service.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

  • バックアップ確認
diff -u /etc/systemd/system/redis.service /path/to/backup/directory/redis.service.$(date +%Y%m%d)

差分がなければ(エラーがなければ)バックアップ完了です。

2-2.設定ファイルを編集します。

次のファイルを、以下の差分になるように編集します。

/etc/systemd/system/redis.service
-PIDFile=/run/redis/redis-server.pid
+#PIDFile=/run/redis/redis-server.pid
+ExecStop=/bin/kill -s TERM $MAINPID
+ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid" 

2-3. 設定ファイルを反映させます。

sudo systemctl daemon-reload

3. 修正を確認します。

  • redis-serverサービス再起動
sudo systemctl restart redis-server.service
  • 設定反映確認
systemctl status redis-server.service

次のように、PIDが作られていれば設定完了です。

    Process: 531 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
    Process: 653 ExecStartPost=/bin/sh -c echo $MAINPID > /var/run/redis/redis.pid (code=exited, status=0/SUCCESS)
   Main PID: 652 (redis-server)
      Tasks: 4 (limit: 4671)
     Memory: 4.4M
     CGroup: /system.slice/redis-server.service
             └─652 /usr/bin/redis-server 127.0.0.1:6379

Steam保存場所の変更とNextcloudの連携。

Steamが稼働しているPCの保存領域を少し減らすため、スクリーンショットの保存場所を変更しました。

Steamツールバーから「表示→スクリーンショット」へと進みます。

ゲーム中タブから「スクリーンショットの非圧縮コピーを保存する」を有効にします。

非圧縮スクリーンショットフォルダーをNextcloudの共有フォルダーに変更します。

後はゲームを立ち上げてスクリーンショットを撮影するだけ。
Nextcloudの画像ファイルに勝手に登録してくれます。

登録日時やシステムタグも登録するので便利です。

Page 1 of 3

Powered by WordPress & Theme by Anders Norén