PHP Uyarı: PHP Başlangıç: Dinamik kütüphane yüklenemiyor


1

Burada bu konuda epeyce yayın gördüm, ancak kurulumumda neyin yanlış olduğunu henüz anlamadım. PHP ile herhangi bir şeyi çalıştırmaya çalışırken aldığım şey buydu:

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.dllBu başvurulan inidosyası

Sat Sep 02 - 12:11 PM > cat /etc/php.d/tidy.ini
extension = tidy.dll

İşte benim extension_dirtanımlanmış:

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

Bu dizindeki izinler tamam görünüyor.

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'lere sadece baktığımda, tidy.dllbir sorun görmüyorum.

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

çıktı rebase -si |grep tidy.dllnedir?
matzeri

rebase -si | grep tidy.dllverdi/usr/lib/php/20151012/tidy.dll base 0x0f4d0000 size 0x00012000
Robert Mark Bram

Yanıtlar:


1

0x0f4d0000 çok düşük bir adrestir ve tidy.dll diğer kaynaklarla ya da programın o adrese yüklenmesi için programın kendisi ile çarpışıyor; bu yüzden yüklenemedi.

32 bitlik bir kurulumunuz olduğundan: yüklü çok fazla programınız var ve kullanılabilir adres alanını boşalttılar.
Dll adres tahsisi 0x6fff .... 'dan başlıyor ve aşağı gidiyor, bu yüzden hepsini tüketdiniz.

Adres alanının nasıl tahsis edildiğini görmek için siteye bakabilir /proc/self/mapsveya bakabilirsiniz /proc/<pid>/maps.

Muhtemel çözümler:
1 yüklü programın sayısını büyük ölçüde azaltır ve ihtiyacınız olmayan her şeyi kaldırır. Sonra, tam rebase'i tetiklemeniz gerekir, bkz. Https://cygwin.com/faq.html#faq.using.fixing-fork-failures
veya 2 64 bit kurulumuna taşıma

Cygwin, 8000'den fazla paket sunar, ancak 2000'den fazla kişiye ihtiyacınız yoktur.

Cygwin posta listesindeki aynı konuda son tartışma
https://cygwin.com/ml/cygwin/2017-08/msg00265.html


Yani ... bu bir izin sorunu değil, 32 bitlik bir sorun mu? Böyle bir sorun göreceğimi asla düşünmedim.
Robert Mark Bram,

1
Gerçek bir Unix / Linux sisteminde görmüyorsunuz. Çatal uygulaması için cygwin'e uygulanan pencere kısıtlamasının bir sonucudur. Her dll farklı bir adresle eşleştirilir, bu nedenle çok sayıda alan kullanılabilir adres alanını tüketir.
matzeri

64 bit gitti. Zaman hakkında.
Robert Mark Bram,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.