簡體   English   中英

PHP間歇性無法加載json.so(Ubuntu 12.04 LTS上的PHP 5.4.19)

[英]PHP intermittently unable to load json.so (PHP 5.4.19 on Ubuntu 12.04 LTS)

我使用的是Ubuntu 12.04 LTS,並且需要PHP 5.4,所以我使用的是OndřejSurý (php5-oldstable)軟件包。

phpinfo和CLI均顯示已啟用JSON:

#php -i | grep -i json
json
json support => enabled
json version => 1.2.1

我的應用程序大部分都能正常工作。 但是定期(大約十個頁面刷新一次)中有一個PHP錯誤。 這只是間歇性發生。

 PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/json.so'
 - /usr/lib/php5/20100525+lfs/json.so: cannot open shared object file: 
 No such file or directory "json.so"

我該如何解決?

我認為可能的罪魁禍首(正如我在電子郵件中回答的那樣)是您正在從配置文件中的某處加載json擴展名。

JSON擴展是在PHP 5.4的核心中編譯的,因此您不應該手工加載它。

請檢查您是否沒有:

  1. 先前PHP 5.5安裝遺留下來的/etc/php5/{mods-available}中的json.ini

  2. 您沒有從提到的腳本中加載JSON擴展名,例如no dl( json.so )。

  3. 更改主要版本時,請確保已停止並啟動Apache2(對php5-fpm同樣適用)。 這些症狀可能表明從程序包中加載了以前的PHP導致卡住了Apache2線程(在本例中為帶有基於json-c的JSON擴展的PHP 5.5)。

由於您是說json擴展名已加載到phpinfo()的輸出中,因此您可能正在處理一個錯誤。 您是否檢查過文件系統中是否確實存在模塊文件?

您有以下選擇:

  1. 使用Apache 2.4從源代碼編譯PHP 5.4
  2. 升級到同一存儲庫的穩定版本 ,它將為您提供PHP 5.5 + Apache 2.4。
  3. 在Ubuntu的PPA中使用Ondrej 提交錯誤 ,然后等待其解決。

有關更多信息,請訪問debphp網站

提交錯誤是必須的 ,因為如果它是真實的錯誤 ,則必須為所有用戶修復。 如果不與向后兼容性,不推薦使用的功能等遷移准則沖突,則可以首先使用選項2。 所以檢查並決定。

它也根據您所使用的機器而有很大差異。 如果它是關鍵的生產服務器,則可能不希望在其上編譯更改版本。 提交錯誤,看看軟件包維護者對此有何評論。

解決問題后,也請在這里寫回覆。 我對它是什么也很好奇,希望是。 :D

有一點無法診斷或解決問題(似乎是指PHP 5.5),但可能有助於找出其根本原因:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM