我在这里看到了很多关于这个问题的帖子,但仍然不明白我的设置有什么问题。这是我尝试使用 PHP 运行任何程序时得到的结果:
Sat Sep 02 - 12:11 PM > php -version
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/tidy.dll' - No such file or directory in Unknown on line 0
PHP 7.0.19 (cli) (built: May 14 2017 03:08:04) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
tidy.dll
本ini
文件中引用了
Sat Sep 02 - 12:11 PM > cat /etc/php.d/tidy.ini
extension = tidy.dll
这是我的extension_dir
定义:
Sat Sep 02 - 12:12 PM > php -i | grep extension_dir
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/tidy.dll' - No such file or directory in Unknown on line 0
extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012
该目录中的权限似乎没有问题。
Sat Sep 02 - 12:12 PM > ls -la /usr/lib/php/20151012
total 2228
drwxr-xr-x+ 1 RobertMarkBram None 0 Aug 31 21:20 .
drwxr-xr-x+ 1 RobertMarkBram None 0 Apr 13 15:25 ..
-rwxr-xr-x 1 RobertMarkBram None 15389 May 14 18:27 ctype.dll
-rwxr-xr-x 1 RobertMarkBram None 81949 May 14 18:27 curl.dll
-rwxr-xr-x 1 RobertMarkBram None 76829 May 14 18:27 gd.dll
-rwxr-xr-x 1 RobertMarkBram None 956957 May 14 18:27 imap.dll
-rwxr-xr-x 1 RobertMarkBram None 426013 May 14 18:27 intl.dll
-rwxr-xr-x 1 RobertMarkBram None 36381 May 14 18:27 json.dll
-rwxr-xr-x 1 RobertMarkBram None 35357 May 14 18:27 mcrypt.dll
-rwxr-xr-x 1 RobertMarkBram None 110621 May 14 18:27 mysqli.dll
-rwxr-xr-x 1 RobertMarkBram None 27165 May 14 18:27 pdo_mysql.dll
-rwxr-xr-x 1 RobertMarkBram None 271389 May 14 18:27 phar.dll
-rwxr-xr-x 1 RobertMarkBram None 19485 May 14 18:27 pspell.dll
-rwxr-xr-x 1 RobertMarkBram None 10781 May 14 18:27 recode.dll
-rwxr-xr-x 1 RobertMarkBram None 43549 May 14 18:27 tidy.dll
-rwxr-xr-x 1 RobertMarkBram None 21021 May 14 18:27 tokenizer.dll
-rwxr-xr-x 1 RobertMarkBram None 81949 May 14 18:27 xmlrpc.dll
-rwxr-xr-x 1 RobertMarkBram None 27677 May 14 18:27 xsl.dll
仅查看 ACL tidy.dll
,我没有发现任何问题。
Sat Sep 02 - 12:13 PM > getfacl /usr/lib/php/20151012/tidy.dll
# file: /usr/lib/php/20151012/tidy.dll
# owner: RobertMarkBram
# group: None
user::rwx
group::r-x
other:r-x
答案1
0x0f4d0000 是一个非常低的地址,并且 tidy.dll 与其他资源或程序本身在该地址的加载发生冲突;因此加载失败。
由于您安装了 32 位程序:您安装了太多程序,它们耗尽了可用的地址空间。dll
地址分配从 0x6fff 开始……然后向下,因此您消耗了所有地址空间。
您可以查看/proc/self/maps
或/proc/<pid>/maps
了解地址空间是如何分配的。
可能的解决方案:
1 大幅减少已安装的程序数量,并删除所有不需要的程序。之后,您需要触发完整的重新定基,请参阅https://cygwin.com/faq.html#faq.using.fixing-fork-failures
或者 2 转到 64 位安装
Cygwin 提供超过 8000 个软件包,但是您不太可能需要超过 2000 个。
cygwin 邮件列表中最近关于同一问题的讨论
https://cygwin.com/ml/cygwin/2017-08/msg00265.html