Скомпилированные объектные файлы обычно плохо переносятся между различными дистрибутивами Linux. Разные дистрибутивы часто имеют разные политики в отношении библиотек, где они хранятся, как они загружаются.
Между ними так много различий (да, даже в Fedora и RedHat / CentOS). Скорее всего, они будут поставлять свои собственные патчи для компонентов на каждом уровне (ядро, PHP, расположение библиотеки). Если они используют дистрибутивный PHP-пакет, дистрибутив мог бы залатать его, чтобы он лучше интегрировался в их систему.
Основная проблема, с которой вы, вероятно, столкнетесь, заключается в том, что в дистрибутиве используются другие настройки библиотек / компилятора. Проверьте, какая версия gcc находится на его компьютере, и сравните ее с тем, что у вас. (Fedora 12 имеет несколько новых библиотек, чем CentOS). Вот где ваша проблема может быть.
Другая возможная проблема в том, что ваш бинарный файл в порядке, но он несовместим со всеми используемыми библиотеками. Я не уверен, есть ли хороший способ обойти это без компиляции на target-distribution (или varient). Вы можете увидеть, какие библиотеки использует каждый общий объект / исполняемый файл, используя команду lld <file>
.
Кроме того, был ли какой-либо вывод перед ошибкой ELF file OS ABI invalid
? В большинстве мест, на которые я ссылаюсь, больше информации, чем это.