[英]“Fatal Error: Call to undefined function mb_detect_encoding()” when trying to run phpMyAdmin 4.2.7 on IIS 8 with PHP 5.4.30
[英]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
。 我必須使用/
而不是\\
,然后它工作。
還取消注釋mbstrings
, mysqli
和mysql
擴展。
幫助我(在Windows上使用XAMPP)的原因是:
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
;
在開頭) 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之前,它工作了......我按照下面的鏈接...
C:/Windows/System32
( C:/Windows/System32
位)中可用。 如果沒有,您可以下載DLL-files.com並將其安裝在C:/ Windows / System32下。 一個選項是:禁用此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.