我认为你绝对确定你编辑了正确的 php.ini...
你检查过网络服务器的 error.log 以获取提示吗?您可能希望增加该测试的 LogLevel。如果是 apache,请参阅http://httpd.apache.org/docs/2.2/mod/core.html#loglevel和http://httpd.apache.org/docs/2.2/logs.html#errorlog
或者也许ldd -打印共享库依赖项可以解决这个问题:
<?php
$p = get_cfg_var('extension_dir');
$modpath = $p.DIRECTORY_SEPARATOR.'imagick.so';
echo $modpath, is_readable($modpath) ? ' readable':' not readable', "<br />\n";
echo '<pre>';
passthru('ldd '.$modpath.' 2>&1'); // in case of spaces et al in the path-argument use escapeshellcmd()
echo '</pre>';
请在命令行和网络服务器上运行此脚本。它是否抱怨缺少依赖项?
编辑2:所以在网络服务器“内”运行的脚本甚至看不到扩展名.所以......让我们测试一下问题开始的路径点
<?php
function foo($path) {
if ( $path==($dir=dirname($path)) ) {
return;
}
foo($dir);
echo
is_dir($path) ? ' d':' -',
is_readable($path) ? 'r':'-',
is_writable($path) ? 'w':'-',
is_executable($path) ? 'x ':'- ',
$path, "<br />\n";
}
$modpath = get_cfg_var('extension_dir').DIRECTORY_SEPARATOR.'imagick.so';
foo($modpath);