Brainenjii писал(а):Если потом перезапустить из под рута же, но вручную - всё ок...
При запуске из под cron'a, shell скриптам и программам не передается. Соответственно, те переменные окружения, которые выставляет bash, будут отсутствовать.
Аналогичная картина с Апачем, причем хуже. Что он выставляет программе из environment - зависит от него самого и его настроек. Поскольку это - окружение апача, а не операционной системы (фактически, может быть даже "песочницей"), какие либо предположения о кодовых страницах, локали, etc - делать сомнительно. Однако ж, насколько помню, модуль system при инициализации выставляет ряд внутренних переменных, основываясь на окружении (угу, откуда ему еще данные брать). Ну, и некоторые функции полагаются на эти переменные. Но вот чтобы строковая арифметика ломалась... Здесь, imho, навскидку только представляются какие-то ключи компиляции по умолчанию (или неумолчанию), интерпретирующие строки либо как WideStrings (поскольку по описанию, они всегда используют неявные преобразования при операциях с другими строковыми типами), либо ShortStrings символа по 32 (не влезло в представление - хвост обрезался, utf поломан).
Так, размышления...