This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
程序运行相关
1. Class 'GuzzleHttp\Client' not found
错误
程序启动时出现错误如下,
[202X-XX-XX XX:XX:XX] Bilibili.ERROR: MSG: Class 'GuzzleHttp\Client' not found CODE: 0 FILE: ...\src\core\Curl.php LINE: 209
[202X-XX-XX XX:XX:XX] Bilibili.ERROR: MSG: Class 'GuzzleHttp\Client' not found CODE: 0 FILE: ...\src\core\Curl.php LINE: 209
[202X-XX-XX XX:XX:XX] Bilibili.ERROR: MSG: Class 'GuzzleHttp\Client' not found CODE: 0 FILE: ...\src\core\Curl.php LINE: 209
[202X-XX-XX XX:XX:XX] Bilibili.INFO: 开始启动程序...
原因
未运行 Composer 获取运行相关依赖包
解决
确认已经安装好 Composer, 在程序根目录运行命令 composer install
PS. 如果你觉得仍然有问题,可以删除程序根目录下 vendor 文件夹和 composer.lock 文件,并在程序根目录下重新运行命令 composer clearcache 和 composer install
2. cURL error 60: SSL certificate problem
错误
程序启动时出现错误如下,
[202X-XX-XX XX:XX:XX] Log.WARNING CURl -> RETRY: 0 ERROR: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) ERRNO: 0 STATUS: Waiting for recovery!
[202X-XX-XX XX:XX:XX] Log.WARNING CURl -> RETRY: 1 ERROR: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) ERRNO: 0 STATUS: Waiting for recovery!
[202X-XX-XX XX:XX:XX] Log.WARNING CURl -> RETRY: 2 ERROR: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) ERRNO: 0 STATUS: Waiting for recovery!
[202X-XX-XX XX:XX:XX] Log.WARNING CURl -> RETRY: 3 ERROR: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) ERRNO: 0 STATUS: Waiting for recovery!
原因
参见 https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html#verify
解决
如下所示,修改配置文件 user.conf 中 VERIFY_SSL 参数为 false
# 验证SSL证书|请求时验证SSL证书行为
VERIFY_SSL=false
3. 检查令牌失败、重新生成令牌失败、空白的账号和口令
错误
程序启动时出现错误如下,
[202X-XX-XX XX:XX:XX] Bilibili.INFO: 开始启动程序...
[202X-XX-XX XX:XX:XX] Bilibili.INFO: 正在检查令牌合法性...
[202X-XX-XX XX:XX:XX] Bilibili.ERROR: 检查令牌失败 {"msg":"user not login"}
[202X-XX-XX XX:XX:XX] Bilibili.WARNING: 令牌即将过期
[202X-XX-XX XX:XX:XX] Bilibili.INFO: 申请更换令牌中...
[202X-XX-XX XX:XX:XX] Bilibili.ERROR: 重新生成令牌失败 {"msg":"user not login"}
[202X-XX-XX XX:XX:XX] Bilibili.WARNING: 无效令牌,正在重新申请...
[202X-XX-XX XX:XX:XX] Bilibili.ERROR: 空白的账号和口令!
原因
配置文件 user.conf 中输入了错误输入了令牌相关信息,或输入了错误的账号和密码,或没有输入账号和密码
解决
修改配置文件 user.conf 中的 APP_USER 和 APP_PASS 为你的账号和密码,请勿尝试 ACCESS_TOKEN, REFRESH_TOKEN 和 COOKIE 后面自行填入参数
以账号 laozi@example.com 和密码 laozidemima 为例,输入应该如下所示
# 帐号|密码
APP_USER=laozi@example.com
APP_PASS=laozidemima
# 令牌(自动生成)
ACCESS_TOKEN=
REFRESH_TOKEN=
COOKIE=
4. Fail to parse dotenv file due to invalid name
错误
PHP Fatal error: Uncaught Dotenv\Exception\InvalidFileException: Failed to parse dotenv file due to invalid name. Failed at [#######################]. in .../vendor/vlucas/phpdotenv/src/Loader/Parser.php:77
原因
配置文件 user.conf 中含有不能处理的参数
解决
请检查配置文件 user.conf 是否有输入错误的地方,Windows 建议使用 Notepad++ 重新编辑保存配置文件
5. pcntl_signal_dispatch() has been disabled for security reasons
错误
Warning: pcntl_signal_dispatch() has been disabled for security reasons in .../vendor/amphp/amp/lib/loop/NativeDriver.php on line 141
PHP Warning: pcntl_signal_dispatch() has been disabled for security reasons in .../vendor/amphp/amp/lib/loop/NativeDriver.php on line 141
原因
基于安全理由 pcntl_signal_dispatch() 在 PHP 配置文件中被禁用
解决
找到 PHP 的配置文件 php.ini(通常位于 PHP 的安装目录下),搜索 disable_functions 或 pcntl_signal_dispatch,然后把 disable_functions 等号后面的 pcntl_signal_dispatch, 删掉,或者在 disable_functions 前面加上 ;(英文分号)
6.
错误
原因
解决
Windows 相关
1. 'vcruntime140.dll' 14.0 is not compatible
错误
PHP Warning: 'vcruntime140.dll' 14.0 is not compatible with this PHP build linked with 14.16 in Unknown on line 0
原因
最新版本的 PHP 使用 VC15 或 VS16(分别使用 Visual Studio 2015、2017 或 2019 编译器)构建,并在性能和稳定性方面进行了改进
解决
使用这些版本的 PHP 需要安装 Visual Studio 2015-2019 x64 或 x86 的 Visual C++ Redistributable 组件
2. Call to undefined function Socket...
错误
[202X-XX-XX XX:XX:XX] Bilibili.ERROR: MSG: Call to undefined function Socket\Raw\socket_create() CODE: 0 FILE: ...\vendor\clue\socket-raw\src\Factory.php LINE: 177
原因
没有(正确)指定 PHP 扩展组件文件夹位置
解决
找到 PHP 的配置文件 php.ini(通常位于 PHP 的安装目录下), 根据启动扩展,如下所示
extension=sockets
or
extension=php_sockets.dll
or
extension=php_sockets.so
如启用扩展后依旧有同样报错,搜索 extension_dir,然后把 extension_dir 前面的 ;(英文分号)删掉,如下所示
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "ext"