PhpWebStudy icon indicating copy to clipboard operation
PhpWebStudy copied to clipboard

无法读取到pecl安装的扩展

Open HelplessMan opened this issue 3 years ago • 4 comments

有没有办法使PHP加载 本机brew安装的php.ini文件呢? 现在发现以前的 PHP 安装的扩展在使用 phpwebstudy 的 php 后无法加载到...

➜ lib php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xdebug
xlswriter     ----> 这里
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]
Xdebug

报错日志:

[21-Jul-2022 20:00:42] NOTICE: reloading: execvp("/opt/homebrew/Cellar/php/8.1.8/sbin/php-fpm", {"/opt/homebrew/Cellar/php/8.1.8/sbin/php-fpm", "-p", "/Users/code/Library/PhpWebStudy/server/php/common/var", "-y", "/Users/code/Library/PhpWebStudy/server/php/common/conf/php-fpm.conf", "-c", "/Users/code/Library/PhpWebStudy/server/php/common/conf/php.ini"})
[21-Jul-2022 20:00:42] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'xlswriter' (tried: /opt/homebrew/Cellar/php/8.1.8/lib/php/20210902/xlswriter (dlopen(/opt/homebrew/Cellar/php/8.1.8/lib/php/20210902/xlswriter, 0x0009): tried: '/opt/homebrew/Cellar/php/8.1.8/lib/php/20210902/xlswriter' (no such file), '/usr/local/lib/xlswriter' (no such file), '/usr/lib/xlswriter' (no such file)), /opt/homebrew/Cellar/php/8.1.8/lib/php/20210902/xlswriter.so (dlopen(/opt/homebrew/Cellar/php/8.1.8/lib/php/20210902/xlswriter.so, 0x0009): tried: '/opt/homebrew/Cellar/php/8.1.8/lib/php/20210902/xlswriter.so' (no such file), '/usr/local/lib/xlswriter.so' (no such file), 

HelplessMan avatar Jul 21 '22 14:07 HelplessMan

  1. 程序里PHP启动时, 加载的php.ini是程序给定的固定文件, 你可以把原来的php.ini内容复制进程序里的配置文件那里, 然后试下
  2. 配置文件的扩展那里, 可以试下使用绝对路径
  3. 程序里可以添加自定义php执行路径, 添加你自己的本地安装的php路径再试下

xpf0000 avatar Jul 22 '22 01:07 xpf0000

  1. 程序里PHP启动时, 加载的php.ini是程序给定的固定文件, 你可以把原来的php.ini内容复制进程序里的配置文件那里, 然后试下
  2. 配置文件的扩展那里, 可以试下使用绝对路径
  3. 程序里可以添加自定义php执行路径, 添加你自己的本地安装的php路径再试下

第一个我试过了。 把我自己的php.ini 复制过去以后 又问题。。 对比了一下。差别也有点大。 不过按照你说的第二个问题解决了。

还有好奇的是 我xdebug 扩展我开始启用的状态。 咱们这个安装好后就默认是启用的嘛? 还是说如果本机有这个扩展的话自动引入呢。。

另外已经在群里给小伙伴们推荐了~ 非常不错的程序 赞👍~

HelplessMan avatar Jul 22 '22 07:07 HelplessMan

扩展不都是php.ini里启用吗? 只要是安装好的扩展, PHP版本也一致的话, php.ini里就可以启用吧

xpf0000 avatar Jul 22 '22 09:07 xpf0000

扩展不都是php.ini里启用吗? 只要是安装好的扩展, PHP版本也一致的话, php.ini里就可以启用吧

就拿我上面说的那个 xdebug 扩展我 在我以前用brew安装的那个.ini文件配置过。但是你的这个.ini文件我搜索过没有引入扩展(不确定是否做了那种多文件引入) 然后在扩展页看到xdebug扩展是启动的。

HelplessMan avatar Jul 22 '22 13:07 HelplessMan