2015-09-04 125 views
0

所以我有一个php.ini为我们的虚拟专用网没有任何扩展定义(即“扩展= p​​hp_curl.so”),但当我查看网页上的phpinfo()时,我看到我们所有的模块/扩展都已加载(即卷曲,mbstring,imagick等)。哪里/如何可以加载这些扩展?我没有看到在php.ini中的扩展指令,但扩展加载

编辑

而且在EashApache,在您的构建/配置文件的PHP扩展部分,它显示所有可用的扩展(启用/与否)。

我确定这里有一些主要的php.ini,在vps上,或者服务器上的vps是所有默认的PHP配置默认加载的地方。

+0

也许这些扩展被编译到php核心中。检查phpinfo()输出中的“配置命令”部分。如果一个条目看起来像'with-xyz = shared',那么扩展就是作为共享对象构建的。但是,如果在该选项中没有“共享”,它将进入php核心,并且不需要进一步扩展= ...指令。 – VolkerK

+0

先生是正确的,至少我在该部分的一些扩展名。请添加为答案,生病检查它! – dave

回答

1

扩展可以编译为共享对象,您可以通过extension=...指令加载或通过dl()(但不应通过imho)加载。
扩展也可以编译到php核心中。然后他们可以没有进一步的“命令”。
phpinfo()为您提供有关php内核在其Configure Command部分中的信息,例如,

--with-PDO-OCI = C:\ PHP-SDK \ ORACLE \ 86 \ instantclient_12_1 \ SDK, 共享
--with-mcrypt的

的PDO_OCI模块是建立为共享对象/ DLL而mcrypt模块内置于php核心。

-1

目录“extension_dir”(定义在php.ini中)中的扩展名会自动包含在内。

+0

在那个目录中,我只能看到“imagick.so” – dave

+0

它的一个linux系统,它取决于哪一个可能已经拆分了配置,并从/ var/lib /或/ usr/lib /加载了一些php扩展作为通用系统库。例如,ubuntu有一个主要的php.ini,但也包括php5.ini和php5-fpm.ini,它们包含在主php.ini中,并且基于每个实例覆盖它的设置。但是可以通过在/etc/php5/conf.d和/ etc/php5/mods-available /和/etc/php5/apache2/conf.d和/etc/php5/apache2/php中添加额外的文件来进一步覆盖它。 INI – Dave