Данил, в пайтоне можно удвоить строку так: a = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" * 2
Либо вместо дублирования - воспользоваться остатком от деления (кольцо вычетов), как обычно делают, если нужно зациклить массив.
Jehn3000, может быть, Encryption Mode в Cloudflare нужно поменять (Flexible или Full, смотря по какому порту вы ожидаете подключения на стороне сервера, 80 или 443).
norevoh, я не экстрасенс, чтобы ответить на этот вопрос, не видя ни конфигов, ни URL'ов, которые вы генерируете и они работают по вашим словам неправильно.
norevoh, может быть, банально конфиг у обоих экземпляров PHP различный и в них отличается кодировка по умолчанию. Потому как дело 100% не в php-fpm, у всех он нормально работает, кроме вас. Кодируйте URL'ы по стандарту, чтобы избежать проблем с их неправильным пониманием браузерами.
Если много записей производит nginx, то в нём можно включить логгирование ворнингов и ловить в логе события вроде "an upstream response is buffered to a temporary file" и "a client request body is buffered to a temporary file".
Дайте угадаю, код взяли у рандомного клоуна с Ютуба? В чём вообще логика при наличии ошибки выполнять переадресацию? Не логичнее ли текст ошибки вывести пользователю на экран? Ну а так как при переадресации все поля станут вновь пустыми, то сработает это: $errors[] = 'Не все поля заполнены!'; и переадресация выполнится снова, и снова, и снова, пока браузеру не надоест через 15 попыток.
saprykinoff, возможно, необходимо драйвера нужные поставить, а имеющиеся дефолтные почему-то не подходят к вашему USB-контроллеру, хоть и определяют его.