我现在看到这种情况发生了很多扩展。所以我需要 php_pdo_pgsql 扩展名,并且它肯定已加载。下面是php.ini中的行:
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
.dll文件位于ext目录中。但是从命令行:
PS C:\wamp64\www\spider\chebi> php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
intl
json
ldap
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
odbc
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
[Zend Modules]
它不在那里。与xdebug有同样的问题。有谁知道这里发生了什么?它与环境变量有关吗?
答案 0 :(得分:1)
通常有2个不同的PHP configuration file(php.ini)
个文件。一个用于CLI(命令行客户端),一个用于服务器(APACHE)。
您应该使用-c
指定要使用的php.ini
文件的路径。
您可以使用cmd
上的php --help
查看详细信息
答案 1 :(得分:1)
我找到了解决方案或问题所在:我没有重新启动php-fpm。我的系统是带有Fast CGI的Centos 8,Apache 2,Php-fpm。
一旦我使用以下命令重新启动php-fpm:
sudo service php-fpm restart
该扩展程序(在我的情况下为ionCube Loader)开始工作,我可以看到它既从命令行又通过服务器加载。
答案 2 :(得分:0)
我有一个类似的问题,恰恰相反。扩展程序从命令行工作,但没有通过Web服务器。
对于这里的提问者或有类似问题的人来说,这可能有用:
PHP extensions not found via httpd but are found from CLI, with the same php.ini