2012-05-12 149 views
65
[email protected]:/etc/php5/apache2# php -a 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/curl.so' - /usr/lib/php5/20090626+lfs/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mcrypt.so' - /usr/lib/php5/20090626+lfs/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo.so' - /usr/lib/php5/20090626+lfs/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0 
Interactive shell 

回答

45
sudo apt-get install php5-mcrypt 
sudo apt-get install php5-mysql 

...等解決這對我:)

希望它有助於

+0

您的回答讓我的網站再次運行!非常感謝你,我非常感謝你。我花了幾個小時。我遵循一些說明來升級mysql,他們必須省略這部分。 – pgee70

+0

感謝它爲我工作 – Fahim

1

我的問題是由下面的命令來解決

sudo apt-get install php5-mcrypt 

  • PHP 5.3.10-1ubuntu3.4用了Suhosin貼片(CLI)
  • Ubuntu桌面12.04
  • Mysql的5.5
+0

對我來說這沒有奏效。 –

12

查找/etc/php5/cli/conf.d/和刪除對應的* .ini文件。當你刪除一些不太乾淨的php包時會發生這個錯誤。

132

即使其他幾個答案提示,安裝更多不必要的軟件一般是而不是的最佳解決方案。相反,你應該修復潛在的問題。這些消息出現的原因是因爲您正在嘗試加載這些擴展名,但未安裝。所以,最簡單的辦法很簡單,就是告訴PHP停止試圖加載它們:

首先,找出哪些文件要加載上面擴展:

$ grep -Hrv ";" /etc/php5 | grep -E "extension(\s+)?=" 

示例輸出爲Ubuntu:

/etc/php5/mods-available/gd.ini:extension=gd.so 
/etc/php5/mods-available/pdo_sqlite.ini:extension=pdo_sqlite.so 
/etc/php5/mods-available/pdo.ini:extension=pdo.so 
/etc/php5/mods-available/pdo_mysql.ini:extension=pdo_mysql.so 
/etc/php5/mods-available/mysqli.ini:extension=mysqli.so 
/etc/php5/mods-available/mysql.ini:extension=mysql.so 
/etc/php5/mods-available/curl.ini:extension=curl.so 
/etc/php5/mods-available/sqlite3.ini:extension=sqlite3.so 
/etc/php5/conf.d/mcrypt.ini:extension=mcrypt.so 
/etc/php5/conf.d/imagick.ini:extension=imagick.so 
/etc/php5/apache2/php.ini:extension=http.so 

現在只需找到正在加載導致錯誤的擴展名的文件,並用;註釋掉這些行。由於某些原因,我發生了默認安裝的Ubuntu,所以希望這可以幫助其他人。

+4

從Debian 6.x到7.1的遠程升級後,我遇到了同樣的錯誤。我不知道'suhosin'和'idn'模塊在這個更新的包中被刪除了。對於'grep'線來說這麼大的thx。 – DanFromGermany

+0

非常感謝。這在Ubuntu 12.04.2 LTS中工作得很好。我還有一個問題:如果我禁用導致錯誤的擴展,放置一個;符號在線開始時,它們是否會在升級後重新啓用? –

+1

@ GeppettvsD'Constanzo升級時,有時會提示您是否覆蓋配置文件。如果你覆蓋它,它可能會覆蓋這些,但我不太確定。只是選擇否。 – Mike

0

不知何故gmp.so文件似乎已從我的系統中刪除。這是固定的,對我來說:

sudo apt-get install --reinstall php5-gmp

5

如果你把;符號,這個動作無效的擴展。

我有同樣的問題,也做了以下內容:吹掃參數

  1. 卸載PHP:

    sudo apt-get --purge remove php5-common 
    
  2. 並重新安裝:

    sudo apt-get install php5 php5-mysql 
    
0

嘗試這個:

  • 打開php.ini
  • 路徑:etc/php5/cli/php。ini
  • 刪除或註釋:extension = ssh2.so然後保存。
2

我發現這個解決方案由blog.tordeu.com,它的

sudo aptitude purge php5-suhosin 

我不知道,但似乎suhosin不再需要,它的工作對我的,我的PHP版本:

PHP 5.4.34-1+deb.sury.org~lucid+1 (cli) (built: Oct 17 2014 15:26:51) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies 
0

那麼對Ubuntu 14.04我得到這個錯誤只是mcrypt的:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/mcrypt.ini' - /usr/lib/php5/20121212/mcrypt.ini: cannot open shared object file: No such file or directory in Unknown on line 0 

如果你仔細看看錯誤,php正在尋找mcrypt.ini,而不是mcrypt.so。我只是將mcrypt.so複製到mcrypt.ini,就是這樣,警告消失了,現在擴展已正確安裝。它可能看起來有點髒,但它的工作!

8

看起來像你升級PHP到較新的版本和舊的.ini文件仍然指向舊的位置。

解決方案:找出的模塊位於現在

ls -l /usr/lib/php5 

應該有類似老20090626目錄。在我的情況現在20131226

是的.ini文件給你一個錯誤位於/etc/php5/cli/conf.d/

只需編輯這些.ini文件的模塊給你一個錯誤。例如,在情況下,誤差是用於mcrypt的模塊:

sudo vi /etc/php5/cli/conf.d/20-mcrypt.ini 

更改的行:

extension=/usr/lib/php5/20090626/mcrypt.so 

以反映.so文件的新路徑。在我的情況下,正確的路徑應該是:

extension=/usr/lib/php5/20131226/mcrypt.so 

就是這樣!錯誤消失了。 OFc你必須做每個模塊給你一個錯誤。

0

我已經通過取消註釋啓用php.ini中的extension_dir中,

extension_dir = "ext" 
    extension=phpchartdir550.dll 

和複製phpchartdir550 DLL到extension_dir中(/ usr/lib中/ PHP5/20121212),導致同樣的錯誤。

PHP Warning: PHP Startup: Unable to load dynamic library 'ext/phpchartdir550.dll' - ext/phpchartdir550.dll: cannot open shared object file: No such file or directory in Unknown on line 0 
    PHP Warning: PHP Startup: Unable to load dynamic library 'ext/pdo.so' - ext/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0 
    PHP Warning: PHP Startup: Unable to load dynamic library 'ext/gd.so' - ext/gd.so: cannot open shared object file: No such file or directory in Unknown on line 0 

由於@Mike指出,這是沒有必要的,當他們沒有在應用程序實際上需要安裝所有的東西。

更簡單的方法是在將庫複製到正確的位置後,提供要加載的擴展的完整路徑。

將phpchartdir550.dll複製到/ usr/lib/php5/20121212,這是我的Ubuntu 14中的extension_dir。04 然後提供完整路徑在php.ini庫(可使用phpinfo()函數可以看出),

; extension=/path/to/extension/msql.so 
extension=/usr/lib/php5/20121212/phpchartdir550.dll 

重啓Apache:須藤服務的Apache2重啓

即使其他的.so的存在在同一個目錄中,只有需要的可以選擇加載。

3

如果使用的是5.6 PHP,

命令和apt-get安裝php5.6捲曲

+0

我安裝了7. * php的命令:sudo apt-get install php-curl – Ravistm

0

我也有類似的問題,這導致我在這裏:

$ phpunit --version 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20131226/profiler.so' - /usr/lib/php5/20131226/profiler.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHPUnit 5.7.17 by Sebastian Bergmann and contributors. 

與上述不同,安裝軟件並沒有解決我的問題,因爲我已經擁有了它。

$ sudo apt-get install php5-uprofiler 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
php5-uprofiler is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove and 52 not upgraded. 

我發現我的溶液經由:Debian Bug report logs

$ sudo vim /etc/php5/mods-available/uprofiler.ini 

我編輯ini文件,改變延長= profiler.so延長= uprofiler.so ....的結果,愉快地:

$ phpunit --version 
PHPUnit 5.7.17 by Sebastian Bergmann and contributors. 

即沒有更多的警告。