openSUSE TumbleweedでNextcloud

CentOS8で立てたらハシゴ外されてて移民したCentOS Stream8ももうEoLまで2ヶ月切ってたのでなんとかするかのノリで何故かTumbleweed入れてたのでメモ。リバプロ前提の環境ですがリバプロ自体には触れないので各自でよしなにしてください。動くよぐらいのメモ書きで。直叩きしててなんだけどYaSTべったりが正しい気がする

TumbleweedをVMにねじ込む

Hyper-Vで適当に立てます。第2世代でSecurebootのテンプレはMicrosoft UEFI 証明機関にとりあえずセットしてましたがコレで’openSUSE-Tumbleweed-NET-x86_64-Snapshot20240321-Media.iso’は起動してきてました。

サーバーモードで適当にガチャガチャしてインストールすると良いです。このときはデータvhdxは繋いでないです。

まずはSSH

confは/usr/etc/sshにあるらしい。なんで?

使ってる証明書からauthorized keysで使う公開鍵を引っぺがす
今回は適当にアレしたYubikeyの証明書を使ってます

openssl x509 -in y.crt -inform pem -pubkey -noout > y.pub.pem
ssh-keygen -i -m pkcs8 -f y.pub.pem

パスワード認証がきれないと思ったらPasswordAuthenticationだけではなくUsePAMも切らんとダメでした。ハイ

Firewallの設定変えて任意のPortのアクセスを許可する

勿論勝手にやってくれるわけではないので適当に変更

firewall-cmd --permanent --zone=public --add-port=1222/tcp

https://firewalld.org/documentation/howto/open-a-port-or-service.html

この後nginxを立てるときにも使う。

https://inaba.hatenablog.com/entry/2017/02/26/040218
がわかりやすかった

うっかり日本語でセットアップしちゃってttyが化けた

export LANG="C"`

NetworkManager

でネットワーク設定出来るので
/etc/NetworkManager/system-connectionsにある該当するconfigを適当に書き換えてnmcliのrestartなりreload鳴り唱える(https://zenn.dev/technicarium/articles/9d3ee150a3cf04#%E8%A8%AD%E5%AE%9A%E3%82%92%E5%8F%8D%E6%98%A0)

移行準備

移行元の環境を思い出す

nginx version: nginx/1.14.1
PHP 8.1.27 (cli) (built: Dec 19 2023 20:35:55) (NTS gcc x86_64)
mariadb Ver 15.1 Distrib 10.5.9-MariaDB, for Linux (x86_64) using EditLine wrapper
Linux version 4.18.0-540.el8.x86_64 (mockbuild@x86-05.stream.rdu2.redhat.com) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-21) (GCC)) #1 SMP Fri Feb 9 14:58:00 UTC 2024

mariadbは10.5から11.2とかにいきなり変えてコケても切り分けが面倒なのでdockerで10.6を、他は割と最新で大丈夫なのでそのまま動かすことにします。

横着するため既存のVMからデータぶち抜き

  • nginx
    confと/var/www/html以下を
  • php
    remiを使ってたのでconfをぶち抜き(今となってはremiじゃなくてもよかったんだなあ)

ここまで出来たら、旧VMで使ってたデータ用VHDを新VMに繋ぎ直し(勿論バックアップは取る)

nginxは適当にcpしてきてconf差し替えればOK

CentOS Stream8からだと/var/wwwが/srv/wwwになるぐらい。

phpは入れ直したのでまずはsockを設定し直す

なんかコケたけど進研ゼミで見たっていおうとしてそもそもphp-fpmが上がらない状態だったのでそれ以前だった

どうやらAppArmorであれこれ制御掛かってるぽくて適当なファイル名だとコケます。

現状のconfig見た限りでは、/var/run/php-fpm/php-fpm.sockみたいにすればOKっぽい。(うっかりwww.sockとかやるとしにます。)

これ最後まで付き合うことになるので、良く考えましょう(切ろうとは言わない人)

以下でmatchするpathにするか

@{run}/php{,-fpm}/php*-fpm.sock rwlk,

適当に追記するか。結局追記することにはなるので適当にやれば良いと思います。

何度やってもうまく行かないと思ったらdbに接続出来ないのはphp8-mysqlがなかっただけでした……(このへんの抜けが無いかは確認しましょう……

phpのmoduleは警告出てから入れ直そうより、先に入れた方がいいです。最終的に入れてあったモジュールはおまけにおいておくので適当に見たり見なかったりしてください(ここを見る前に公式見た方がいいです)
特にdatabase関係でコケた場合はoccでこんな普通にコケるだけで直接モジュールがないよとは言ってくれないので。

https://docs.nextcloud.com/server/latest/admin_manual/installation/php_configuration.html

yuzuki-geeko:/srv/www/nextcloud # php8 occ
An unhandled exception has been thrown:
Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: could not find driver in /srv/www/nextcloud/lib/private/DB/Connection.php:140
Stack trace:
#0 /srv/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1531): OC\DB\Connection->connect()
#1 /srv/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1029): Doctrine\DBAL\Connection->getWrappedConnection()
#2 /srv/www/nextcloud/lib/private/DB/Connection.php(262): Doctrine\DBAL\Connection->executeQuery()
#3 /srv/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php(345): OC\DB\Connection->executeQuery()
#4 /srv/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(280): Doctrine\DBAL\Query\QueryBuilder->execute()
#5 /srv/www/nextcloud/lib/private/AppConfig.php(421): OC\DB\QueryBuilder\QueryBuilder->execute()
#6 /srv/www/nextcloud/lib/private/AppConfig.php(187): OC\AppConfig->loadConfigValues()
#7 /srv/www/nextcloud/lib/private/AppConfig.php(377): OC\AppConfig->getApps()
#8 /srv/www/nextcloud/lib/private/legacy/OC_App.php(803): OC\AppConfig->getValues()
#9 /srv/www/nextcloud/lib/private/Server.php(737): OC_App::getAppVersions()
#10 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\Server->OC\{closure}()
#11 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#12 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(138): Pimple\Container->offsetGet()
#13 /srv/www/nextcloud/lib/private/ServerContainer.php(171): OC\AppFramework\Utility\SimpleContainer->query()
#14 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(65): OC\ServerContainer->query()
#15 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(193): OC\AppFramework\Utility\SimpleContainer->get()
#16 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#17 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#18 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(138): Pimple\Container->offsetGet()
#19 /srv/www/nextcloud/lib/private/ServerContainer.php(171): OC\AppFramework\Utility\SimpleContainer->query()
#20 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(65): OC\ServerContainer->query()
#21 /srv/www/nextcloud/lib/private/Server.php(1131): OC\AppFramework\Utility\SimpleContainer->get()
#22 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\Server->OC\{closure}()
#23 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#24 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(138): Pimple\Container->offsetGet()
#25 /srv/www/nextcloud/lib/private/ServerContainer.php(171): OC\AppFramework\Utility\SimpleContainer->query()
#26 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(65): OC\ServerContainer->query()
#27 /srv/www/nextcloud/lib/private/Server.php(2090): OC\AppFramework\Utility\SimpleContainer->get()
#28 /srv/www/nextcloud/lib/private/Files/View.php(107): OC\Server->getLockingProvider()
#29 /srv/www/nextcloud/lib/private/Server.php(471): OC\Files\View->__construct()
#30 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(171): OC\Server->OC\{closure}()
#31 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#32 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(138): Pimple\Container->offsetGet()
#33 /srv/www/nextcloud/lib/private/ServerContainer.php(171): OC\AppFramework\Utility\SimpleContainer->query()
#34 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(65): OC\ServerContainer->query()
#35 /srv/www/nextcloud/lib/private/Server.php(1492): OC\AppFramework\Utility\SimpleContainer->get()
#36 /srv/www/nextcloud/lib/base.php(635): OC\Server->boot()
#37 /srv/www/nextcloud/lib/base.php(1196): OC::init()
#38 /srv/www/nextcloud/console.php(48): require_once('...')
#39 /srv/www/nextcloud/occ(11): require_once('...')
#40 {main}

ログインで無限ループはsessionsが原因なのでアクセス権を持つユーザーに合わせてあげて直しましょう
https://diary.tana3n.net/2020/03/16/nextcloud-memo/ の最後のと一緒

今回は移行なのもあってpermissionでハマりがちな気がした。

Mariadb

services:
  mariadb:
    image: mariadb:10.6.17
    ports:
      - target: 3306
        published: 33306
        host_ip: 127.0.0.2
        protocol: tcp
        mode: ingress
    restart: unless-stopped
    volumes:
      - type: bind
        source: database
        target: /opt/database
      - type: bind
        source: ./db_data
        target: /var/lib/mysql
    environment:
       MARIADB_ROOT_PASSWORD: example

portsをよく忘れるのでメモ
Services top-level elements | Docker Docs

調べるのが面倒で、dumpを転がしてるフォルダをマウントして手動で叩き込んでしまったんですが、よくよくみたらinitdb.dがちゃんとあるぽいのでそっち使った方が良さそうな気がします。(前はなかったっぽいけど5.5系ぽいので仕方ない気もする)

https://github.com/MariaDB/mariadb-docker/blob/master/10.6/docker-entrypoint.sh

動いたら適当にdumpしたsqlを食わせてユーザー作り直してあげればOKです。Nextcloudのdocumentにあった感じでOK(https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/linux_database_configuration.html)ですが、hogehoge@localhostで作るとホストからdocker内のdbに繋いでも入れないので要注意。これsockでなんとかできねえかなぁ

更新自体は
https://mariadb.com/kb/en/upgrading/

の通りで、このぐらいやってあれば動いた気がします。10.5→10.6→10.11は特に問題なさそうでした。

動いたら

envはこの通りです./etc/php8/fpm/php-fpm.d/www.confを適当に直してあげてください

https://docs.nextcloud.com/server/27/admin_manual/installation/source_installation.html#php-fpm-tips-label

新規でちゃんとdocument読んで立てるとphp-fpmのconfigは出来上がるんですが、こうやって移設で横着すると大体忘れられられるので気をつけましょう(1敗)

アップロードが出来ない!

> Nextcloudクライアントからの想定ファイルサイズは、280059 bytes ですが、Nextcloudストレージへの書き込みファイルサイズは 8192 bytes でした。送信側のネットワークの問題またはサーバー側のストレージへの書き込みに問題がある可能性があります。

これはtmp内でのmknodがAppArmorで蹴っ飛ばされるからなので書けば直ります。

設定画面のシステム欄が全然出ない

これもAppArmorで蹴っ飛ばされてます.適当にacceptになる条件を書くか忘れましょう

shell_exec()を使いたくない云々のissueがあってやっぱそうか……に
shell_exec · Issue #169 · nextcloud/serverinfo

cronが動いてないよ!

適当に直しちゃったんですがこれはsystemd-timerに移行しちゃってもいい気がします。のでしました。

Background jobs — Nextcloud latest Administration Manual latest documentation

redis

systemctl enable redis –nowが出来ないと思ったらconf選んどけって事らしいです(以下を見て理解した)

systemctl enable redis@default --now

https://gist.github.com/5470×3/c7b5833a2a91c0bfde0c88c79f46653c

それでもcache周りを使おうとすると502画面を拝むことになってしまうのでなんでだろうなぁって思ったらphp8-memcacheがありませんでした。入れたら直った。

sockでやりたいなって思ったので/etc/redis/default.confにある

unixsocket /var/run/redis/redis.sock
unixsocketperm 770

みたいな行を見つけて↑みたいな感じにする。要らないならTCPのListenは閉じる。

yuzuki-geeko:~ # usermod -aG redis nginx
yuzuki-geeko:~ # groups nginx
nginx : nginx redis
yuzuki-geeko:~ # systemctl restart redis@default.service
yuzuki-geeko:~ # ls /var/run/redis/redis.sock -al
srwxrwx--- 1 redis redis 0 Mar 24 21:06 /var/run/redis/redis.sock

なんでか一旦だめだったのでnginxとphp-fpmを再起動して完

sockファイルのパーミッションを770にしてredisなグループにphp-fpmあたりが動いてるユーザーを追加してあげればOK

参考: https://wiki.archlinux.jp/index.php/Redis#.E3.82.BD.E3.82.B1.E3.83.83.E3.83.88.E3.82.92.E4.BD.BF.E3.81.86

2024/03にこれをやったときに出来上がった環境は大体こんな感じ

nginx version: nginx/1.25.4

PHP 8.2.17 (cli) (built: Mar 19 2024 06:04:43) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.17, Copyright (c) Zend Technologies
with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies

mysql Ver 15.1 Distrib 10.11.7-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper

Linux version 6.8.1-1-default (geeko@buildhost) (gcc (SUSE Linux) 13.2.1 20240206 [revision 67ac78caf31f7cb3202177e6428a46d829b70f23], GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.42.0.20240130-2) #1 SMP PREEMPT_DYNAMIC Tue Mar 19 07:32:20 UTC 2024 (d922afa)

壮大にぶっ壊すのが先か、飽きるのが先か……

追記:Nextcloud27のまま運用してたらphp8.3の更新で無事爆死したのでphpをDocker化しました
(TBD)

おまけ

php8-*なパッケージ一覧

yuzuki-geeko:~ # zypper pa --installed-only | grep php
i  | メインリポジトリ (オープンソース)   | php8                                       | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8                                       | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-APCu                                  | 5.1.23-1.2                           | x86_64
i+ | openSUSE-20240321-0                 | php8-APCu                                  | 5.1.23-1.2                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-bcmath                                | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-bcmath                                | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-cli                                   | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-cli                                   | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-ctype                                 | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-ctype                                 | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-curl                                  | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-curl                                  | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-dom                                   | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-dom                                   | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-exif                                  | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-exif                                  | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-fileinfo                              | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-fileinfo                              | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-fpm                                   | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-fpm                                   | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-gd                                    | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-gd                                    | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-gmp                                   | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-gmp                                   | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-iconv                                 | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-iconv                                 | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-imagick                               | 3.7.0-3.1                            | x86_64
i+ | openSUSE-20240321-0                 | php8-imagick                               | 3.7.0-3.1                            | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-intl                                  | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-intl                                  | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-mbstring                              | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-mbstring                              | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-memcache                              | 8.2-1.5                              | x86_64
i+ | openSUSE-20240321-0                 | php8-memcache                              | 8.2-1.5                              | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-memcached                             | 3.2.0-4.6                            | x86_64
i+ | openSUSE-20240321-0                 | php8-memcached                             | 3.2.0-4.6                            | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-mysql                                 | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-mysql                                 | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-opcache                               | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-opcache                               | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-openssl                               | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-openssl                               | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-pcntl                                 | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-pcntl                                 | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-pdo                                   | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-pdo                                   | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-posix                                 | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-posix                                 | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-redis                                 | 6.0.2-1.2                            | x86_64
i+ | openSUSE-20240321-0                 | php8-redis                                 | 6.0.2-1.2                            | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-smbclient                             | 1.1.1-1.5                            | x86_64
i+ | openSUSE-20240321-0                 | php8-smbclient                             | 1.1.1-1.5                            | x86_64
i  | メインリポジトリ (オープンソース)   | php8-sqlite                                | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-sqlite                                | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-sysvsem                               | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-sysvsem                               | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-tokenizer                             | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-tokenizer                             | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-xmlreader                             | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-xmlreader                             | 8.2.17-1.1                           | x86_64
i  | メインリポジトリ (オープンソース)   | php8-xmlwriter                             | 8.2.17-1.1                           | x86_64
i  | openSUSE-20240321-0                 | php8-xmlwriter                             | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-zip                                   | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-zip                                   | 8.2.17-1.1                           | x86_64
i+ | メインリポジトリ (オープンソース)   | php8-zlib                                  | 8.2.17-1.1                           | x86_64
i+ | openSUSE-20240321-0                 | php8-zlib                                  | 8.2.17-1.1                           | x86_64

php-fpmのwww.confとか

yuzuki-geeko:/etc/php8/fpm/php-fpm.d # diff www.conf www.conf.bak
28,29c28,29
< user = nginx
< group = nginx
---
> user = wwwrun
> group = www
43c43
< listen = /var/run/php-fpm/php-fpm.sock
---
> listen = 127.0.0.1:9000
62c62
< listen.acl_users = nginx
---
> ;listen.acl_users =
129c129
< pm.max_children = 8
---
> pm.max_children = 5
134c134
< pm.start_servers = 4
---
> pm.start_servers = 2
139c139
< pm.min_spare_servers = 4
---
> pm.min_spare_servers = 1
144c144
< pm.max_spare_servers = 8
---
> pm.max_spare_servers = 3
148c148
< ; Note: Mandatory when p:m is set to 'dynamic'
---
> ; Note: Mandatory when pm is set to 'dynamic'
161c161
< pm.max_requests = 2000
---
> ;pm.max_requests = 500
463,467c463,467
< env[HOSTNAME] = $HOSTNAME
< env[PATH] = /usr/local/bin:/usr/bin:/bin
< env[TMP] = /tmp
< env[TMPDIR] = /tmp
< env[TEMP] = /tmp
---
> ;env[HOSTNAME] = $HOSTNAME
> ;env[PATH] = /usr/local/bin:/usr/bin:/bin
> ;env[TMP] = /tmp
> ;env[TMPDIR] = /tmp
> ;env[TEMP] = /tmp

php.iniとか

適当なので参考にしないように

yuzuki-geeko:~ # diff /etc/php8/fpm/php.ini /etc/php8/fpm/php.ini.bak
409c409
< max_execution_time = 3600
---
> max_execution_time = 30
419c419
< max_input_time = 600
---
> max_input_time = 60
435c435
< memory_limit = 2G
---
> memory_limit = 128M
703c703
< post_max_size = 20G
---
> post_max_size = 8M
855c855
< upload_max_filesize =10G
---
> upload_max_filesize = 2M
858c858
< max_file_uploads = 100
---
> max_file_uploads = 20
979c979
< date.timezone ="Asia/Tokyo"
---
> date.timezone = 'UTC'
1975,1991d1974
< ;
< opcache.enable=1
< opcache.enable_cli=1
< opcache.interned_strings_buffer=64
< opcache.max_accelerated_files=10000000
< opcache.memory_consumption=512
< opcache.save_comments=1
< opcache.revalidate_freq=60
< opcache.jit=on
< opcache.jit_buffer_size=512M
< opcache.jit = 1255
<
< apc.enable_cli=1
< apc.shm_size=32M
< apc.ttl=7200

/etc/apparmor.d/php-fpm

パスは各自差し替えて貰って

cat /var/log/audit/audit.log | grep DENIED | grep php-fpm
vim /etc/apparmor.d/php-fpm
apparmor_parser -r /etc/apparmor.d/php-fpm

↑もうちょっと良いgrepのかき方があるはずなので真似しないように

/srv/www/nextcloud** rwlk,
/mnt/data** rwlk,
/proc/uptime r,
/sys/class/thermal** r,
/usr/sbin/** ix,
/usr/bin/** rix,
/usr/bin/** ix,
/sys/devices/** rix,
/proc/** r,
/dev/tty wr,
/var/lib/php8/sessions/ r,
/tmp/** rwlk,
/usr/libexec/libheif** rm,
/etc/ImageMagick-** r,
/usr/share/ImageMagick-** r,

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください