Easyadmin8(Laravel)composer命令行创建目录时,报错:PHP Startup: Unable to load dynamic library 'openssl' (tried: C:\php\ext\openssl
执行php think curd -t test_goods命令时报错:
Warning: PHP Startup: Unable to load dynamic library 'openssl' (tried: C:\php\ext\openssl (鎵句笉鍒版 寚瀹氱殑妯″潡銆?, C:\php\ext\php_openssl.dll (鎵句笉鍒版寚瀹氱殑妯″潡銆?) in Unknown on line 0
Could not open input file: think(OpenSSL 动态库无法加载)
如图:

PHP版本:8.4.16:
问题有两个:
-
php think curd是 ThinkPHP项目的命令。
本项目是 Laravel,请用php artisan。若有 CURD 命令,应该是php artisan curd ...(具体命令以php artisan list为准)。 -
OpenSSL 扩展路径错了。当前 CLI 试图从
C:\php\ext\openssl加载,但你的扩展实际在 ,且版本还不一致。
请确保 Composer/CLI 用同一套 PHP,并修正 :
extension_dir="D:\phpstudy_pro\Extensions\php\php8.3.29nts\ext"- 启用
extension=openssl - 确保该目录下存在
php_openssl.dll - PATH 里只保留目标 PHP 的
php.exe,避免混用 8.4.16/8.3.29
分析:
- CLI 实际调用的 PHP 版本与预期不一致
- PHP 8.4.16 的 未设置正确
extension_dir,导致 OpenSSL 从错误目录加载 - 缺少
pdo_mysql扩展,导致 CURD 连接数据库时报could not find driver - 项目是 Laravel,不支持
php think curd(ThinkPHP 命令)
处理流程(按实际顺序)
- 确认当前 CLI PHP 版本/ini
- 命令:
php --version - 命令:
php --ini - 命令:
where php
- 指定正确的 PHP 8.4.16 并检查 OpenSSL
- 命令:
D:\phpstudy_pro\Extensions\php\php8.4.16nts\php.exe --ini - 命令:
D:\phpstudy_pro\Extensions\php\php8.4.16nts\php.exe -m | findstr /I openssl - (也可以手动修改openssl,如图)

- 目标:
extension_dir="D:\phpstudy_pro\Extensions\php\php8.4.16nts\ext" - (也可以手动修改,找到所用PHP版本,以及该版本下的ext目录,复制目录修改dir,如图)

- 启用数据库驱动扩展
- 目标:
extension=pdo_mysql、extension=mysqli - 校验:
D:\phpstudy_pro\Extensions\php\php8.4.16nts\php.exe -m | findstr /I "pdo_mysql mysqli"
- 使用正确的 Laravel CURD 命令
- 命令:
D:\phpstudy_pro\Extensions\php\php8.4.16nts\php.exe artisan admin:curd web_set

补充
- 若仍出现 OpenSSL 报错,优先确认:
extension_dir是否指向实际 ext 目录- 目录内是否存在
php_openssl.dll、libcrypto*.dll、libssl*.dll - PATH 中是否仍混入其他 PHP 版本

浙公网安备 33010602011771号