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 动态库无法加载)

如图:

image

 PHP版本:8.4.16:

问题有两个:

  1. php think curd 是 ThinkPHP项目的命令。
    本项目是 Laravel,请用 php artisan。若有 CURD 命令,应该是 php artisan curd ...(具体命令以 php artisan list 为准)。

  2. OpenSSL 扩展路径错了。当前 CLI 试图从 C:\php\ext\openssl 加载,但你的扩展实际在 ext,且版本还不一致。
    请确保 Composer/CLI 用同一套 PHP,并修正 php.ini

    • 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

分析:

  1. CLI 实际调用的 PHP 版本与预期不一致
  2. PHP 8.4.16 的 php.ini 未设置正确 extension_dir,导致 OpenSSL 从错误目录加载
  3. 缺少 pdo_mysql 扩展,导致 CURD 连接数据库时报 could not find driver
  4. 项目是 Laravel,不支持 php think curd(ThinkPHP 命令)

处理流程(按实际顺序)

  1. 确认当前 CLI PHP 版本/ini
  • 命令:php --version
  • 命令:php --ini
  • 命令:where php
  1. 指定正确的 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,如图)

image

 

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

image

 

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

image

 

补充

  • 若仍出现 OpenSSL 报错,优先确认:
    • extension_dir 是否指向实际 ext 目录
    • 目录内是否存在 php_openssl.dlllibcrypto*.dlllibssl*.dll
    • PATH 中是否仍混入其他 PHP 版本
posted @ 2026-02-28 14:29  coderjim  阅读(0)  评论(0)    收藏  举报

更多知识请点击——

www.7017online.xyz