簡體   English   中英

嘗試訪問phpmyadmin mb_detect_encoding時出現PHP致命錯誤

[英]PHP Fatal error when trying to access phpmyadmin mb_detect_encoding

不確定發生了什么,但下面是日志在嘗試訪問phpmyadmin時給我的,請幫忙。 試圖調試一個不同的問題,並遇到這個問題。 真的不可能恢復到工作的時候。

PHP致命錯誤:在第177行的/usr/share/php/gettext/gettext.inc中調用未定義的函數mb_detect_encoding()

當我試圖訪問該網站時,我收到此錯誤,我認為這兩個錯誤很可能是相關的:

數據庫連接錯誤(1):MySQL適配器'mysqli'不可用。

第一個錯誤是由php引起的,因為擴展名mbstring未安裝或未激活。

第二個錯誤是phpMyAdmin /您的站點的輸出,要求您安裝/啟用mysqli擴展。

要啟用mbstring和mysqli編輯你的php.ini並添加/取消注釋unbs上的mbstring.so和mysqli.so以及windows上的mbstring.dll和mysqli.dll兩行

Unix /etc/(phpX/)php.ini

extension=mysqli.so
extension=mbstring.so

Windows PHP安裝文件夾\\ etc \\ php.ini

extension=mysqli.dll
extension=mbstring.dll

此后不要忘記重新啟動您的網絡服務器。

編輯:用戶添加他在評論中使用redhat所以這里是如何在所有CentOS / Fedora / RedHat / Yum基於Linux的發行版上安裝擴展

sudo yum install php-mysqli
sudo yum install php-mbstring

restart your werbserver
sudo /etc/init.d/httpd restart

您可以在文檔根目錄中使用一些PHP腳本驗證您的安裝。 這列出了您為php安裝的所有設置,版本和活動擴展

test.php的

<?php
phpinfo();

在閱讀了關於extension_dir =“ext”之后,我將這行添加到php.ini但沒有工作,然后開始查看apache錯誤日志,看到PHP實際上無法在指定目錄“ext”中找到dll。 我評論了extension_dir行,重新啟動了Apache並再次查看了錯誤日志,看到PHP現在正在C:/ PHP / ext中查看dll(默認情況下我猜),但是由於我使用其他文件夾,這不是正確的路徑,所以我取消注釋了extension_dir行並寫了這個:

extension_dir = "C:/Apache24/PHP/ext" 

在我的配置中,這是dll的正確路徑。

當然,沒有評論:

extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll

重新啟動Apache服務器和Internet瀏覽器,現在phpMyAdmin可以使用mySQL登錄。

所以,dll的錯誤路徑和需要在php.ini中注釋的dll是問題所在。

記住在編輯配置文件后重啟Apache和Internet瀏覽器。

系統規范:Windows 7 HB 64bit httpd-2.4.4-win32-ssl_0.9.8.zip php-5.4.16-Win32-VC9-x86.zip phpMyAdmin-4.0.4.1-all-languages.zip mysql-installer-community- 5.6.11.0.msi

希望這有幫助。 感謝你的評論。

在ubuntu 16.04當我試圖連接到phpmyadmin時出現了一個白色的空白頁面,所以我運行了上面的命令和phpmyadmin的工作原理

sudo apt-get install php-mbstring php7.0-mbstring php-gettext

用於mysql支持安裝

sudo apt-get install php7.0-mysql

在ubuntu 16.04中使用php 7版本進行了測試

看起來您的PHP安裝沒有安裝mbstring擴展mysqli適配器擴展

請檢查你的phpinfo(); 或者運行php -i | grep 'mbstring\\|mysqli' php -i | grep 'mbstring\\|mysqli'在終端中。

我在windows7-32位上遇到了同樣的問題:

1.“PHP致命錯誤:在第177行的/usr/share/php/gettext/gettext.inc中調用未定義的函數mb_detect_encoding()”

當我打開我的php.ini文件時,“extension_dir”行看起來如下:

extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"

我改為:

extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"

它起作用了。

php.ini ,我不得不改變

extension_dir = "ext"

extension_dir = "C:/PHP/ext"

因為我的PHP安裝在C:\\PHP 我必須使用/而不是\\ ,然后它工作。

還取消注釋mbstringsmysqlimysql擴展。

幫助我(在Windows上使用XAMPP)的原因是:

  • 確保我的路徑包含PHP的正確路徑(我有兩個PHP安裝,一個在c:\\php ,而XAMPP安裝在c:\\xampp\\php ,這是我想要使用的)
  • 檢查線條
    extension_dir="C:\\xampp\\php\\ext"
    extension=php_mbstring.dll
    extension=php_exif.dll ; Must be after mbstring as it depends on it
    在php.ini文件中取消注釋(即沒有;在開頭)
  • 重啟Apache服務器
  • 最后但並非最不重要的是,在重新加載頁面http://localhost/phpmyadmin/時清除緩存(例如在Chrome中使用Ctrl-F5)

用mbstring重新編譯PHP。

./configure --enable-http --with-apxs2 --with-mysql --with-gd --with-curl --with-mbstring

make 

make install

嘗試安裝 mysqli和pdo。 把它放在終端:

./configure --with-mysql=/usr/bin/mysql_config  \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd

我的猜測是檢查你的PHP配置中是否啟用了mysqli擴展。 更多信息會很棒(例如OS,AMP堆棧等)。

檢查你的php.ini配置mysqli並確保沒有';' 在擴展名前面。 在我的設置上啟用的是php_mysqli_libmysql.dll。

我在Windows上嘗試過,在PHP installation folder\\etc\\php.ini啟用此功能后,我遇到了同樣的問題:

extension=mysqli.dll 
extension=mbstring.dl

您還應該在ini文件中啟用以下內容:

extension_dir = "ext"

phpMyadmin正在運行!

在Windows 2008 Server中。

我刪除了 ”;” 在php.ini文件中的擴展名= php_mbstring.dll之前,它工作了......我按照下面的鏈接...

https://bugs.php.net/bug.php?id=64965

  1. 某些版本的Windows沒有附帶libmysql.dll,這是加載mysql和mysqli擴展所必需的。 檢查它是否在C:/Windows/System32C:/Windows/System32位)中可用。 如果沒有,您可以下載DLL-files.com並將其安裝在C:/ Windows / System32下。
  2. 如果仍然存在,請檢查您的apache日志文件並使用上面的解決方案來響應服務器記錄的錯誤。

一個選項是:禁用此extension_dir =“ext”

另一個是:

轉到wamp圖標,看到php和點擊php錯誤日志然后從錯誤日志你可以找到確切的錯誤。

僅當路徑未正確設置時才會出現此錯誤。

我遇到了同樣的麻煩,這對我有用。

您可以單擊wampserver圖標,然后單擊PHP錯誤日志。 檢查是否這樣說: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_ldap.dll'

如果是,那么您可以重新加載您的PHP版本,方法是單擊wampserver圖標,然后單擊PHP,然后單擊版本,然后單擊您的版本。 等待所有內容再次聯機,然后嘗試訪問phpmyadmin。

暫無
暫無

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

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