2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] Exception thrown: 'doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/lib/util/gnusocial.php on line 145'
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #0 doom(string,string,string,integer) called at [/var/www/lib/util/gnusocial.php:145]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #1 GNUsocial::addPlugin(string,array) called at [/var/www/lib/util/framework.php:114]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #2 addPlugin(string,array) called at [/var/www/config.php:48]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #3 include(string) called at [/var/www/lib/util/gnusocial.php:459]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #4 GNUsocial::loadConfigFile(NULL) called at [/var/www/lib/util/gnusocial.php:199]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #5 GNUsocial::init(NULL,NULL,NULL) called at [/var/www/lib/util/common.php:33]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #6 require_once(string) called at [/var/www/html/index.php:173]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] ServerErrorAction: 500 doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/lib/util/gnusocial.php on line 145
#0 /var/www/lib/util/gnusocial.php(145): doom('8192', 'Creation of dyn...', '/var/www/lib/ut...', 145)
#1 /var/www/lib/util/framework.php(114): GNUsocial::addPlugin('TranslateNotice', Array)
#2 /var/www/config.php(48): addPlugin('TranslateNotice', Array)
#3 /var/www/lib/util/gnusocial.php(459): include('/var/www/config...')
#4 /var/www/lib/util/gnusocial.php(199): GNUsocial::loadConfigFile(NULL)
#5 /var/www/lib/util/common.php(33): GNUsocial::init(NULL, NULL, NULL)
#6 /var/www/html/index.php(173): require_once('/var/www/lib/ut...')
#7 {main}
@TechnicalSuwako Dockerのトップ画面 (localhostドメイン直下) です。
以下のログになっていました。
```
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] Exception thrown: 'doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/lib/util/gnusocial.php on line 145'
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #0 doom(string,string,string,integer) called at [/var/www/lib/util/gnusocial.php:145]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #1 GNUsocial::addPlugin(string,array) called at [/var/www/lib/util/framework.php:114]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #2 addPlugin(string,array) called at [/var/www/config.php:48]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #3 include(string) called at [/var/www/lib/util/gnusocial.php:459]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #4 GNUsocial::loadConfigFile(NULL) called at [/var/www/lib/util/gnusocial.php:199]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #5 GNUsocial::init(NULL,NULL,NULL) called at [/var/www/lib/util/common.php:33]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] #6 require_once(string) called at [/var/www/html/index.php:173]
2023-09-03 05:50:35 LOG_ERR: [localhost:26.e4c1cceb GET /] ServerErrorAction: 500 doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/lib/util/gnusocial.php on line 145
#0 /var/www/lib/util/gnusocial.php(145): doom('8192', 'Creation of dyn...', '/var/www/lib/ut...', 145)
#1 /var/www/lib/util/framework.php(114): GNUsocial::addPlugin('TranslateNotice', Array)
#2 /var/www/config.php(48): addPlugin('TranslateNotice', Array)
#3 /var/www/lib/util/gnusocial.php(459): include('/var/www/config...')
#4 /var/www/lib/util/gnusocial.php(199): GNUsocial::loadConfigFile(NULL)
#5 /var/www/lib/util/common.php(33): GNUsocial::init(NULL, NULL, NULL)
#6 /var/www/html/index.php(173): require_once('/var/www/lib/ut...')
#7 {main}
```
指摘したように、Dockerはディレクトリーを分けて、元のdockerのファイルは残してほしいです。DockerでPHP7とPHP8を両方確認できるようにしたいです。
① この「TranslateNotice」というプラグインって、どんなプラグインですか?
プラグインのソースコードがありますか?
gnusocialのレポジトリが入っていませんから。
② /var/www/htmlは何ですか?
それも、gnusocialのレポジトリが入っていません。
@senooken
① この「TranslateNotice」というプラグインって、どんなプラグインですか?<br />
プラグインのソースコードがありますか?
gnusocialのレポジトリが入っていませんから。
② /var/www/htmlは何ですか?<br />
それも、gnusocialのレポジトリが入っていません。
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] Exception thrown: 'doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/local/plugins/Markdown/MarkdownPlugin.php on line 17'
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #0 doom(string,string,string,integer) called at [/var/www/local/plugins/Markdown/MarkdownPlugin.php:17]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #1 MarkdownPlugin->initialize() called at [/var/www/lib/util/event.php:89]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #2 Event::handle(string) called at [/var/www/lib/util/gnusocial.php:308]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #3 GNUsocial::initModules() called at [/var/www/lib/util/gnusocial.php:211]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #4 GNUsocial::init(NULL,NULL,NULL) called at [/var/www/lib/util/common.php:33]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #5 require_once(string) called at [/var/www/html/index.php:173]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] ServerErrorAction: 500 doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/local/plugins/Markdown/MarkdownPlugin.php on line 17
#0 /var/www/local/plugins/Markdown/MarkdownPlugin.php(17): doom('8192', 'Creation of dyn...', '/var/www/local/...', 17)
#1 /var/www/lib/util/event.php(89): MarkdownPlugin->initialize()
#2 /var/www/lib/util/gnusocial.php(308): Event::handle('InitializePlugi...')
#3 /var/www/lib/util/gnusocial.php(211): GNUsocial::initModules()
#4 /var/www/lib/util/common.php(33): GNUsocial::init(NULL, NULL, NULL)
#5 /var/www/html/index.php(173): require_once('/var/www/lib/ut...')
#6 {main}
@TechnicalSuwako
1 ああ。すみません。ローカルで確認していて、他のプラグインの読み込みが干渉していたようです。[TranslateNotice](https://github.com/chimo/gs-translate
)は開発・修正中別のリポジトリーなんですけど、同様の[Markdown](https://notabug.org/gnusocialjp/Markdown)プラグインを読み込んで (config.phpに`addPlugin('Markdown');`) ドメイン直下の表示でだいたい同じエラーになりました。Markdownプラグインで確認してほしいです。
「[設置: GNU socialのプラグイン | GNU social JP](https://web.gnusocial.jp/post/2023/01/20/3762/)」がプラグインのインストール手順です。ExampleをMarkdownに置換してインストールできます。
```
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] Exception thrown: 'doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/local/plugins/Markdown/MarkdownPlugin.php on line 17'
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #0 doom(string,string,string,integer) called at [/var/www/local/plugins/Markdown/MarkdownPlugin.php:17]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #1 MarkdownPlugin->initialize() called at [/var/www/lib/util/event.php:89]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #2 Event::handle(string) called at [/var/www/lib/util/gnusocial.php:308]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #3 GNUsocial::initModules() called at [/var/www/lib/util/gnusocial.php:211]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #4 GNUsocial::init(NULL,NULL,NULL) called at [/var/www/lib/util/common.php:33]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] #5 require_once(string) called at [/var/www/html/index.php:173]
2023-09-03 07:08:18 LOG_ERR: [localhost:20.139bad79 GET /plugins/Markdown/css/markdown.css] ServerErrorAction: 500 doom(): Argument #3 ($line) must be of type int, string given, called in /var/www/local/plugins/Markdown/MarkdownPlugin.php on line 17
#0 /var/www/local/plugins/Markdown/MarkdownPlugin.php(17): doom('8192', 'Creation of dyn...', '/var/www/local/...', 17)
#1 /var/www/lib/util/event.php(89): MarkdownPlugin->initialize()
#2 /var/www/lib/util/gnusocial.php(308): Event::handle('InitializePlugi...')
#3 /var/www/lib/util/gnusocial.php(211): GNUsocial::initModules()
#4 /var/www/lib/util/common.php(33): GNUsocial::init(NULL, NULL, NULL)
#5 /var/www/html/index.php(173): require_once('/var/www/lib/ut...')
#6 {main}
```
doom関数の引数の型があっていないのが原因のようで、既存プラグインに影響あるのは困るので、できれば回避してほしいです。
プラグイン側がPHP8対応が必要になるなら、教えてください。きりがないので、PHP8に必要な対応内容を整理してドキュメントに残して、プラグイン側の対応は見送って取り込むことにします。
2 /var/www/htmlはgnusocial/publicへのシンボリックリンクです。
Dockerの対応について、仮想機械で確認してみると思います。
Dockerをインストールするには、systemdは必須だと思いますが、今docker.comで「The owner of this website (www.docker.com) has banned your access based on your browser's signature」ってメッセージが発生しますので、このエラーを修正されるまで確認出来ません。
Dockerの対応について、仮想機械で確認してみると思います。
Dockerをインストールするには、systemdは必須だと思いますが、今docker.comで「The owner of this website (www.docker.com) has banned your access based on your browser's signature」ってメッセージが発生しますので、このエラーを修正されるまで確認出来ません。
Web Archiveで保存できていないWithout systemd固有の部分のHTMLは以下です。
Without package
If you do not have permission to run package managers like apt-get and dnf,
consider using the installation script available at
https://get.docker.com/rootlessopen_in_new.
Since static packages are not available for s390x, hence it is not supported for s390x.
content_copy
$ curl -fsSL https://get.docker.com/rootless | sh
...
[INFO] Creating /home/testuser/.config/systemd/user/docker.service
...
[INFO] Installed docker.service successfully.
[INFO] To control docker.service, run: `systemctl --user (start|stop|restart) docker.service`
[INFO] To run docker.service on system startup, run: `sudo loginctl enable-linger testuser`
[INFO] Make sure the following environment variables are set (or add them to ~/.bashrc):
export PATH=/home/testuser/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
The binaries will be installed at ~/bin.
Without-systemd'
To run the daemon directly without systemd, you need to run dockerd-rootless.sh instead of dockerd.
The following environment variables must be set:
$HOME: the home directory
$XDG_RUNTIME_DIR: an ephemeral directory that is only accessible by the expected user, e,g, ~/.docker/run.
The directory should be removed on every host shutdown.
The directory can be on tmpfs, however, should not be under /tmp.
Locating this directory under /tmp might be vulnerable to TOCTOU attack.
「[Run the Docker daemon as a non-root user (Rootless mode) | Docker Docs](https://docs.docker.com/engine/security/rootless/)」にあるように、docker自体はsystemdは必須ではないです。systemdなくても動作します。ただ、多くのGNU/Linuxがsystemdを使っているので、推奨されています。
[Web Archive](https://archive.li/uTvJc)で保存できていないWithout systemd固有の部分のHTMLは以下です。
## Without package
<div aria-role="tab" :class="selected !== 'Without-packages' && 'hidden'" class=""><p>If you do not have permission to run package managers like <code>apt-get</code> and <code>dnf</code>,
consider using the installation script available at
<a class="link" href="https://get.docker.com/rootless" target="_blank" rel="noopener">https://get.docker.com/rootless<span class="ml-1 align-top text-[1em] material-symbols-rounded">open_in_new</span></a>.
Since static packages are not available for <code>s390x</code>, hence it is not supported for <code>s390x</code>.</p><div class="group relative"><button x-data="{ code: 'Y3VybCAtZnNTTCBodHRwczovL2dldC5kb2NrZXIuY29tL3Jvb3RsZXNzIHwgc2gKLi4uCltJTkZPXSBDcmVhdGluZyAvaG9tZS90ZXN0dXNlci8uY29uZmlnL3N5c3RlbWQvdXNlci9kb2NrZXIuc2VydmljZQouLi4KW0lORk9dIEluc3RhbGxlZCBkb2NrZXIuc2VydmljZSBzdWNjZXNzZnVsbHkuCltJTkZPXSBUbyBjb250cm9sIGRvY2tlci5zZXJ2aWNlLCBydW46IGBzeXN0ZW1jdGwgLS11c2VyIChzdGFydHxzdG9wfHJlc3RhcnQpIGRvY2tlci5zZXJ2aWNlYApbSU5GT10gVG8gcnVuIGRvY2tlci5zZXJ2aWNlIG9uIHN5c3RlbSBzdGFydHVwLCBydW46IGBzdWRvIGxvZ2luY3RsIGVuYWJsZS1saW5nZXIgdGVzdHVzZXJgCgpbSU5GT10gTWFrZSBzdXJlIHRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBzZXQgKG9yIGFkZCB0aGVtIHRvIH4vLmJhc2hyYyk6CgpleHBvcnQgUEFUSD0vaG9tZS90ZXN0dXNlci9iaW46JFBBVEgKZXhwb3J0IERPQ0tFUl9IT1NUPXVuaXg6Ly8vcnVuL3VzZXIvMTAwMC9kb2NrZXIuc29jaw==' }" class="material-symbols-rounded hidden group-hover:block absolute top-3 right-3 text-gray-light-300 dark:text-gray-dark-600" title="Copy" @click="window.navigator.clipboard.writeText(atob(code));
$el.textContent='check_circle';
setTimeout(() => $el.textContent='content_copy', 2000);">
content_copy</button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> curl -fsSL https://get.docker.com/rootless <span class="p">|</span> sh
</span></span><span class="line"><span class="cl"><span class="go">...
</span></span></span><span class="line"><span class="cl"><span class="go">[INFO] Creating /home/testuser/.config/systemd/user/docker.service
</span></span></span><span class="line"><span class="cl"><span class="go">...
</span></span></span><span class="line"><span class="cl"><span class="go">[INFO] Installed docker.service successfully.
</span></span></span><span class="line"><span class="cl"><span class="go">[INFO] To control docker.service, run: `systemctl --user (start|stop|restart) docker.service`
</span></span></span><span class="line"><span class="cl"><span class="go">[INFO] To run docker.service on system startup, run: `sudo loginctl enable-linger testuser`
</span></span></span><span class="line"><span class="cl"><span class="go"></span><span class="err">
</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="go">[INFO] Make sure the following environment variables are set (or add them to ~/.bashrc):
</span></span></span><span class="line"><span class="cl"><span class="go"></span><span class="err">
</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="go">export PATH=/home/testuser/bin:$PATH
</span></span></span><span class="line"><span class="cl"><span class="go">export DOCKER_HOST=unix:///run/user/1000/docker.sock
</span></span></span></code></pre></div></div><p>The binaries will be installed at <code>~/bin</code>.</p></div>
## Without-systemd'
<div aria-role="tab" :class="selected !== 'Without-systemd' && 'hidden'" class=""><p>To run the daemon directly without systemd, you need to run <code>dockerd-rootless.sh</code> instead of <code>dockerd</code>.</p><p>The following environment variables must be set:</p><ul><li><code>$HOME</code>: the home directory</li><li><code>$XDG_RUNTIME_DIR</code>: an ephemeral directory that is only accessible by the expected user, e,g, <code>~/.docker/run</code>.
The directory should be removed on every host shutdown.
The directory can be on tmpfs, however, should not be under <code>/tmp</code>.
Locating this directory under <code>/tmp</code> might be vulnerable to TOCTOU attack.</li></ul></div>
2023-09-05 13:30:47 LOG_DEBUG: [gs.senooken.f5.si:4709.ff92c17f POST /main/remotefollowsub] Performing discovery for "acct:test@gnusocial.jp" (normalized "acct:test@gnusocial.jp")
2023-09-05 13:30:47 LOG_DEBUG: [gs.senooken.f5.si:4709.ff92c17f POST /main/remotefollowsub] action.php - Server error '500' on 'remotefollowsub': Class "XML_XRD" not found
なお、最初に報告したこのエラーは、こちらの環境のPHPのモジュール不足が原因でした。
Fatal error: Uncaught Error: Undefined constant "DB_DATAOBJECT_ERROR_NODATA" in /var/www/gnusocial/public/index.php:104
#13 に対応するPRです。諏訪湖のmainを使って、Debian 11でPHP v8.2をインストールして、PHPのバージョンを置換してトップ画面を開くと以下のエラーが出ました。
なお、PHP v7.4だと以下のエラーが出ました。
心当たりありますか?PHP 7.4でも動作するようにしてほしいです。特にPHP v8.2でのエラーはローカルの修正のコミット忘れに見えます。何か忘れていませんか?あるいは、私の環境の問題でしょうか?
@tak4 などにも確認してもらいたいです。PHPのサーバーは使っていなくてApacheのサーバーを使っています。
念のためDockerでも確認しました。動作が変わりました。以下のエラーが出ました。
ただ、この前段階で、以下の修正が必要です。
DockerのDBのバージョンをなぜ上げたのですか?私が用意したdockerのPHPとDBのバージョンは、GNU socialの稼働に必要な最も古いバージョンです。最も古いバージョンでの動作は最低限確認したいのです。
今回、PHP8用にdockerを用意するならば、development-php8のようなディレクトリーを作って、そちらに分離したいです。PHP 7.4はまだ必要です。PHP 7.4の対応が終了したり、WordPressでの対応が終わったタイミングで一緒に最低バージョンをPHP 8にします。
なお、上記のmysqld→mariadbdの修正はphp 7.4のほうにあっても問題ないです。
https://notabug.org/gnusocialjp/gnusocial/src/main/docker/development にDockerでの起動方法があります。
docker compose up -d
を実行するだけでlocalhostでアクセスできます。私とあなたとの環境の違いを排除したいので、dockerのインストールだけ頑張って、それでdockerでも簡単に動作確認してくれませんか?
PHP 7.4 のサーバー(Nginxですが)で確認してみます。
PHP 7.4 で再現しました。
関数「elementStart」の引数「$attrs」の型宣言を無くすと(PHP 7.4では)上記のエラーが起きなくなりました。
他の関数では「$attrs」に型宣言が無い様に見え、PHP8.2でエラーにならなければ型宣言は不要なはずです。
PHP 8.2の GNU social 環境をすぐに用意できないので、確認は @senooken さんか @TechnicalSuwako さんにお願いしたいです。
修正内容:
@tak4 早速の確認ありがとうございます。PHP 8での確認は他のエラーが出るので、そちらを修正してからの確認になりますね…引数の型指定の
|
はPHP8で入ったのでしょうね。やっぱり、PHP8や本番環境用のdockerほしいです。実稼働でdockerは私も要らないと思っていますけど、開発で動作・確認環境を統一したいので。 #16 に登録しました。
@senooken
直しました。( @tak さん、有難う御座います )
どのページで起こっていますか?
PHP 8以降で、
assert()
は存在していませんので、私作ったdebug.php
ファイルを追加して、doom()
という関数のせいですが、social-dev
で8.1も、7.4も起こっていません。@TechnicalSuwako Dockerのトップ画面 (localhostドメイン直下) です。
以下のログになっていました。
指摘したように、Dockerはディレクトリーを分けて、元のdockerのファイルは残してほしいです。DockerでPHP7とPHP8を両方確認できるようにしたいです。
@senooken
① この「TranslateNotice」というプラグインって、どんなプラグインですか?
プラグインのソースコードがありますか? gnusocialのレポジトリが入っていませんから。
② /var/www/htmlは何ですか?
それも、gnusocialのレポジトリが入っていません。
@TechnicalSuwako 1 ああ。すみません。ローカルで確認していて、他のプラグインの読み込みが干渉していたようです。TranslateNoticeは開発・修正中別のリポジトリーなんですけど、同様のMarkdownプラグインを読み込んで (config.phpに
addPlugin('Markdown');
) ドメイン直下の表示でだいたい同じエラーになりました。Markdownプラグインで確認してほしいです。「設置: GNU socialのプラグイン | GNU social JP」がプラグインのインストール手順です。ExampleをMarkdownに置換してインストールできます。
doom関数の引数の型があっていないのが原因のようで、既存プラグインに影響あるのは困るので、できれば回避してほしいです。
プラグイン側がPHP8対応が必要になるなら、教えてください。きりがないので、PHP8に必要な対応内容を整理してドキュメントに残して、プラグイン側の対応は見送って取り込むことにします。
2 /var/www/htmlはgnusocial/publicへのシンボリックリンクです。
@senooken 両方修正しました、結局簡単でした。
Markdown
MarkdownPlugin.php
問題は、
$this->parser
です。PHP8より、動的にプロパーティを作る事がNGですので、classの中に
public $parser;
を追加して下さい。TranslateNotice
TranslateNoticePlugin.php
下記に変えて下さい:
この「/local」は不要です。
そうして:
Pluginと一致様にする事が必須ですので、下記に変えて下さい:
もしかして、この2つのプラグインはgnusocialのレポジトリに入っては良いじゃないですか?
@TechnicalSuwako 確認ありがとうございました。プラグイン側の問題ということで理解しました。suwakoの修正を取り込んだ後に、「PHP8への移行の文書」をこちらで残してそれで対応とします。
サードパーティープラグインを本体に取り込むかどうかは、検討が必要なので今は保留にします。
こちらで他に問題がないかもう少し動作確認しますのでお待ちください。また、Dockerの対応はしてくれないようなので、マージ後にこちらで対応します。
Dockerの対応について、仮想機械で確認してみると思います。 Dockerをインストールするには、systemdは必須だと思いますが、今docker.comで「The owner of this website (www.docker.com) has banned your access based on your browser's signature」ってメッセージが発生しますので、このエラーを修正されるまで確認出来ません。
「Run the Docker daemon as a non-root user (Rootless mode) | Docker Docs」にあるように、docker自体はsystemdは必須ではないです。systemdなくても動作します。ただ、多くのGNU/Linuxがsystemdを使っているので、推奨されています。
Web Archiveで保存できていないWithout systemd固有の部分のHTMLは以下です。
Without package
If you do not have permission to run package managers like
apt-get
anddnf
, consider using the installation script available at https://get.docker.com/rootlessopen_in_new. Since static packages are not available fors390x
, hence it is not supported fors390x
.The binaries will be installed at
~/bin
.Without-systemd'
To run the daemon directly without systemd, you need to run
dockerd-rootless.sh
instead ofdockerd
.The following environment variables must be set:
$HOME
: the home directory$XDG_RUNTIME_DIR
: an ephemeral directory that is only accessible by the expected user, e,g,~/.docker/run
. The directory should be removed on every host shutdown. The directory can be on tmpfs, however, should not be under/tmp
. Locating this directory under/tmp
might be vulnerable to TOCTOU attack.@TechnicalSuwako php8.2状態で、他のサーバーにプロフィールからリモートフォローしようとすると、500になりました。確認お願いします。
ログは以下です。念のため、social-dev.076.moeからでも再現しました。連合周りは相手もいるので慎重にやらないといけません…
なお、最初に報告したこのエラーは、こちらの環境のPHPのモジュール不足が原因でした。
sudo apt install php8.2-bcmath php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-xml
で不足分をインストールしたら動作しました。dockerは最初に行ったとおり、ひとまず修正前の元のdevelopmentディレクトリーは残しておいて、今回修正した分をdevelopment-php8など別のディレクトリーにしてほしいです。動作確認はしなくていいです。
今後、php7がサポート終了になるまで、php7/php8での動作確認がしばらくは必要になるからです。suwakoの修正マージ後に、見落としでトラブル起こる可能性が高いと思っています。
@TechnicalSuwako 2023-09-06に以下のコメントがあったと思ったら削除されています。
今作業中なんですか?後回しにしているのか、断念したのか、状況を教えてください。
間違ってテストしましたから、このコメントを削除しました。
状況について、最後4日は凄く忙しかったですので、その時より何も変わりません。
本日は他のISPの工事さんが来ますので、その後で開発に再開すると思います。
@TechnicalSuwako ありがとうございます。状況がわかり安心しました。無理せずお願いします。
@TechnicalSuwako この課題、これ以上やる気がないなら、来年私が続きをやるので、作業内容を覚えている間に他の人が作業できるように以下をお願いしたいです。
@senooken お待たせいたしまして、大変申し訳ありませんでした。
8月から転職が必要になりましたので、あんま時間がありませんですた。
2週間前はやっと内定が届きましたが、このMRを忘れましたので、今週週末は修正すると思います。
テストなし、バグありコードをマージすることはありません。私の気が散るので一度クローズします。
レビューの指摘にも対応する気がないなら、対応する気になってからオープンしてください。