Отлично работает на моей установке MediaWiki 1.31.1.
На вашем месте я бы позаботился о том, чтобы кодировка LocalSettings.php не являлась проблемой, как предлагал @Tgr После сохранения откройте его в другом текстовом редакторе и обратите внимание, был ли он заменен нечитаемым символом или нет.
Не уверен, что уместны в этом случае, но в других местах проблемы были решены, убедившись, что php включил mbstring. Чтобы установить его в Debian, вы можете использовать apt install php-mbstring
BUFSIZE должен быть равен размеру Вашего буфера в байтах. читайте (), прекратит читать, когда буфер полон. Вот пример:
#define MY_BUFFER_SIZE 1024
char mybuffer[MY_BUFFER_SIZE];
int nBytes = read(sck, mybuffer, MY_BUFFER_SIZE);
Как всегда, использовать sizeof
когда у Вас есть шанс. Используя встроенный оператор sizeof
, Вы просите, чтобы компилятор вычислил размер переменной, вместо того, чтобы указал его сами. Это снижает риск представления ошибок, когда размер фактической переменной отличается от того, что Вы думаете.
Так, вместо выполнения
#define BUFSIZE 1500
char buffer[BUFSIZE];
int n = read(sock, buffer, BUFSIZE);
действительно необходимо использовать
char buffer[1500];
int n = read(sock, buffer, sizeof buffer);
Заметьте, как Вам не нужна круглая скобка вокруг аргумента sizeof, если аргументом не является название типа.
Ваша реализация сокетов не требует буфера, чтобы быть достаточно большой, содержать все сообщение наверняка, но могло бы быть удобно в зависимости от, что Вы делаете.