前言

在使用nextcloud的过程中,后台日志总会出现警告:

1
Could not connect to appstore: cURL error 28: Operation timed out after 60000 milliseconds with 1191922 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://apps.nextcloud.com/api/v1/apps.json

虽然这个警告是因为nextcloud的API无法访问,是一个常见的问题,无伤大雅,不影响使用。

但是看着有点心烦,索性通过以下方法把它去掉。

方法

  1. 打开nextcloud的文件夹,找到如下文件:/path/to/nextcloud/lib/private/Installer.php

  2. 查找 $timeout = $this->isCLI ? 0 : 120; 这一行

    1
    2
    3
    4
    5
    // Download the release
    $tempFile = $this->tempManager->getTemporaryFile('.tar.gz');
    $timeout = $this->isCLI ? 0 : 120;
    $client = $this->clientService->newClient();
    $client->get($app['releases'][0]['download'], ['sink' => $tempFile, 'timeout' => $timeout]);
  3. 120 这个数值调大,或者直接注释掉这行

最后

当然,建议还是将这个数值调大,改成 300 或者 500 给服务器充分的连接时间,如果直接注释掉可能会导致服务器始终在尝试连接,从而影响服务器性能。

因为这是老问题,好几年了,这个方法也是治标不治本。