Hướng dẫn module mbstring ini file doesnt exist under /etc/php 8.0 mods-available - mô-đun mbstring tệp ini không tồn tại trong / etc / php 8.0 mods-sẵn có

Tất cả bắt đầu khi tôi muốn cài đặt phpmyadmin trong máy chủ Apache2 trên Raspbian, với PHP7.3. Và tôi đã gặp lỗi sau khi tôi đến "localhost/phpmyadmin":phpmyadmin in an apache2 server on Raspbian, with php7.3. And I got the following error when I went to "localhost/phpmyadmin":

Fatal error: Uncaught Error: Call to undefined function PhpMyAdmin\mb_strpos() in /usr/share/phpmyadmin/libraries/classes/Url.php:257 Stack trace:
#0 /usr/share/phpmyadmin/libraries/classes/Url.php(208): PhpMyAdmin\Url::getArgSeparator() 
#1 /usr/share/phpmyadmin/libraries/classes/Url.php(171): PhpMyAdmin\Url::getCommonRaw(Array, '?')
#2 /usr/share/phpmyadmin/libraries/classes/Core.php(765): PhpMyAdmin\Url::getCommon(Array) 
#3 /usr/share/phpmyadmin/libraries/classes/Core.php(338): PhpMyAdmin\Core::linkURL('https://secure....') 
#4 /usr/share/phpmyadmin/libraries/classes/Core.php(367): PhpMyAdmin\Core::getPHPDocLink('book.mbstring.p...') 
#5 /usr/share/phpmyadmin/libraries/classes/Core.php(995): PhpMyAdmin\Core::warnMissingExtension('mbstring') 
#6 /usr/share/phpmyadmin/libraries/common.inc.php(110): PhpMyAdmin\Core::checkExtensions()
#7 /usr/share/phpmyadmin/index.php(23): require_once('/usr/share/phpm...') 
#8 {main} thrown in /usr/share/phpmyadmin/libraries/classes/Url.php on line 257

Sau đó, tôi đã cài đặt MBString thông qua: apt install php7.3-mbstring.mbstring through: apt install php7.3-mbstring.

Nhưng khi tôi gõ "a2enmod php-mbstring" hoặc "phpenmod php-mbstring", tôi sẽ nhận được điều này trên bảng điều khiển: WARNING: Module php7.3-mbstring ini file doesn't exist under /etc/php/7.3/mods-available, tuy nhiên nếu tôi làm

root@raspberrypi:/etc/php/7.3/mods-available# ls

calendar.ini  fileinfo.ini  iconv.ini     opcache.ini  posix.ini     sockets.ini  sysvshm.ini
ctype.ini     ftp.ini       json.ini      pdo.ini      readline.ini  sysvmsg.ini  tokenizer.ini
exif.ini      gettext.ini   mbstring.ini  phar.ini     shmop.ini     sysvsem.ini
0 trong thư mục đó, tôi sẽ nhận được điều này (mbstring.ini ở bên trong nó):

root@raspberrypi:/etc/php/7.3/mods-available# ls

calendar.ini  fileinfo.ini  iconv.ini     opcache.ini  posix.ini     sockets.ini  sysvshm.ini
ctype.ini     ftp.ini       json.ini      pdo.ini      readline.ini  sysvmsg.ini  tokenizer.ini
exif.ini      gettext.ini   mbstring.ini  phar.ini     shmop.ini     sysvsem.ini

UPDATE::

Tôi vừa viết: "

root@raspberrypi:/etc/php/7.3/mods-available# ls

calendar.ini  fileinfo.ini  iconv.ini     opcache.ini  posix.ini     sockets.ini  sysvshm.ini
ctype.ini     ftp.ini       json.ini      pdo.ini      readline.ini  sysvmsg.ini  tokenizer.ini
exif.ini      gettext.ini   mbstring.ini  phar.ini     shmop.ini     sysvsem.ini
1" và giải quyết lỗi.

Tôi nhận được thông tin từ liên kết Cherrydt đã gửi cho tôi.

Tôi sử dụng môi trường máy chủ tối thiểu của Ubuntu16.04.1, Apache2, MySQL và Php 7.0.8.1. Tôi đã cài đặt amp thông qua:

root@raspberrypi:/etc/php/7.3/mods-available# ls

calendar.ini  fileinfo.ini  iconv.ini     opcache.ini  posix.ini     sockets.ini  sysvshm.ini
ctype.ini     ftp.ini       json.ini      pdo.ini      readline.ini  sysvmsg.ini  tokenizer.ini
exif.ini      gettext.ini   mbstring.ini  phar.ini     shmop.ini     sysvsem.ini
2.

Tôi cũng đã cài đặt phpmyadmin theo cách thủ công thông qua:

cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.5.2/phpMyAdmin-4.6.5.2-all-languages.zip
find ./ -type f -name '*phpMyAdmin*.zip' -exec unzip {} \; # We can also do unzip \*phpMyAdmin*.zip ...
find ./ -type d -name 'phpMyAdmin-*' -exec mv {} phpmyadmin \;

PHPMyAdmin được bootstrapping nhưng để sử dụng nó đầy đủ về mặt chức năng, afaik i aslo cần phải làm:

phpenmod mcrypt
phpenmod mbstring

Tuy nhiên, những lỗi tương ứng này:

Module mcrypt ini file doesn't exist under /etc/php/7.0/mods-available

Module mbstring ini file doesn't exist under /etc/php/7.0/mods-available

Tôi chưa bao giờ có những lỗi này trước đây. Các mô -đun này có dư thừa cho phpmyadmin trong các bản phát hành hiện tại hay khi không được cài đặt qua

root@raspberrypi:/etc/php/7.3/mods-available# ls

calendar.ini  fileinfo.ini  iconv.ini     opcache.ini  posix.ini     sockets.ini  sysvshm.ini
ctype.ini     ftp.ini       json.ini      pdo.ini      readline.ini  sysvmsg.ini  tokenizer.ini
exif.ini      gettext.ini   mbstring.ini  phar.ini     shmop.ini     sysvsem.ini
3?

Cần phải bật PHP với hỗ trợ MBString (Chuỗi đa byte) để lưu trữ và hiển thị các ký tự đa byte trong phần mềm PHPKB. Trình hướng dẫn cài đặt của các phiên bản đa ngôn ngữ của phần mềm cơ sở kiến ​​thức PHPKB sẽ tự động phát hiện nếu bạn đã bật PHP với hỗ trợ MBString. Nếu nó không được bật, bạn có thể gặp lỗi cho biết:PHPKB knowledge base software will automatically detect if you have PHP enabled with mbstring support. If it is not enabled, you may get an error that says:

Gọi đến hàm không xác định mb_convert_encoding ()mb_convert_encoding()

Vui lòng tham khảo hướng dẫn bên dưới về cách bật MBString trên máy chủ của bạn.

Tại sao MBString là bắt buộc?

Khi chúng ta thao tác (cắt, tách, nối, v.v.) được mã hóa trong mã hóa đa byte, chúng ta cần sử dụng các hàm đặc biệt vì hai hoặc nhiều byte liên tiếp có thể đại diện cho một ký tự duy nhất trong các sơ đồ mã hóa đó. Mặt khác, nếu chúng ta áp dụng chức năng chuỗi không nhận biết không phải là Multibyte cho chuỗi, có lẽ nó không phát hiện được sự bắt đầu hoặc kết thúc của ký tự đa dạng và kết thúc bằng một chuỗi rác bị hỏng mà rất có thể sẽ mất ý nghĩa ban đầu của nó.

Vì vậy, MBString cung cấp các chức năng chuỗi đặc trưng cho đa năng giúp chúng tôi đối phó với mã hóa đa cấp trong PHP. Ngoài ra, MBString xử lý chuyển đổi mã hóa ký tự giữa các cặp mã hóa có thể. MBString được thiết kế để xử lý các mã hóa dựa trên Unicode như UTF-8 và UCS-2 và nhiều mã hóa đơn byte để thuận tiện.

Cài đặt MBString

Xin lưu ý rằng "MBString" là tiện ích mở rộng PHP không mặc định. Điều này có nghĩa là nó không được bật theo mặc định.mbstring" is a non-default PHP extension. This means it is not enabled by default.

Cài đặt trên máy chủ Linux

Bạn có thể tìm hiểu xem mô -đun này có được cài đặt hay không bằng cách xem danh sách được tạo bởi lệnh này

Nếu bạn không có cài đặt này trên máy Linux và nếu bạn đã cài đặt PHP từ YUM thì hãy chạy lệnh này như một siêu người dùng. Lệnh & nbsp; phụ thuộc vào hệ điều hành của bạn.

Sudo yum Cài đặt PHP-MBSTRING Lệnh này là đúng đối với tất cả các phân phối dựa trên Linux của Red Hat bằng RPM và Trình quản lý gói của Yum Yum; Điều này bao gồm Rhel, Fedora, Centos, Mandriva và Linux nội tại, trong số những người khác. Đối với Debian, các bản phân phối Ubuntu, vui lòng sử dụng lệnh sau.sudo apt-get cài đặt php-mbstring
This command is true for all Red Hat Linux-based distributions using RPM and the ’yum’ package manager; this includes RHEL, Fedora, CentOS, Mandriva, and Intrinsic Linux, among others.
For Debian, Ubuntu distributions, please use the following command.

sudo apt-get install php-mbstring

Sau đó, bạn sẽ cần khởi động lại dịch vụ Apache của mình bằng lệnh sau:

Cài đặt trên Windows Server

Nếu bạn có quyền truy cập vào php.ini, chỉ cần xóa ký tự dấu chấm phẩy (;) ở phía trước dòng bên dưới.

Tiện ích mở rộng = php_mbstring.dll

Khi bạn đã thực hiện các thay đổi, đừng quên khởi động lại máy chủ web của mình để thay đổi có hiệu lực.

Lưu ý: Phần mở rộng PHP không chỉ được bật từ tệp php.ini. Đầu tiên, bạn cần cài đặt tiện ích mở rộng cụ thể đó, tức là đặt tệp DLL của nó "php-mbstring.dll" vào thư mục "/php/ext/" nếu nó chưa có mặt ở đó. Khi bạn làm điều đó, hãy chắc chắn rằng bạn có bản dựng chính xác của tệp DLL. Ví dụ, nhị phân PHP an toàn 32 bit, được xây dựng bằng VC9, sẽ chỉ hoạt động với các tệp DLL được xây dựng bằng cách sử dụng chính xác các công cụ và cấu hình: 32 bit, sử dụng VC9, với an toàn được bật. Và tất nhiên phiên bản API PHP cũng cần phải phù hợp. Nếu không, một khi bạn khởi động lại máy chủ web, bạn sẽ nhận được thông báo 'Lỗi 500 - Máy chủ'.: PHP extensions are not just enabled from php.ini file. First, you need to install that specific extension, i.e. place its DLL file "php-mbstring.dll" into the "/php/ext/" directory if it is not already present there. When you do that, make sure you have the correct build of DLL file. 32-bit, thread-safe PHP binary, built using VC9 for example, would only work with DLL files built using exact same tools and configuration: 32-bit, using VC9, with thread-safety turned on. And of course PHP API version also needs to match. If it doesn't, once you restart the web server, you will receive 'Error 500 - Server error' message.

Cấu hình MBString

Dưới đây là một đoạn trích mẫu từ tệp php.ini chứa cấu hình của các biến MBString.php.ini file which contains the configuration of mbstring variables.

. mbstring.func_overload = 0 mbString.strict_encoding = TẮT
mbstring.language = all
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = UTF-8
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_encoding = Off

Làm thế nào để kích hoạt MBString trong PHP INI?

Để bật thư viện MBString trong cài đặt gói Windows của Moodle:..
Mở PHP.Tệp INI được tìm thấy trong thư mục Moodle/Apache/bin hoặc Windows ..
Tìm dòng:; phần mở rộng = PHP_MBString.DLL ..
Gỡ bỏ ;Ở đầu dòng ..
Khởi động lại Apache nếu cần thiết ..

Tiện ích mở rộng PHP MBString là gì?

MBString là một phần mở rộng của PHP được sử dụng để quản lý các chuỗi không phải ASCII.MBString được sử dụng để chuyển đổi chuỗi thành các mã hóa khác nhau.Các sơ đồ mã hóa ký tự đa dạng được sử dụng để thể hiện hơn 256 ký tự trong hệ thống mã hóa thông minh byte thông thường.an extension of php used to manage non-ASCII strings. Mbstring is used to convert strings to different encodings. Multibyte character encoding schemes are used to express more than 256 characters in the regular byte wise coding system.