Плагин WordPress, который зависит от Ruby, не будет переносимым. Это нормально, если вы единственный, кто будет его использовать.
Если сценарию Ruby необходимо вернуть результат, который будет немедленно использован вызывающим его PHP-сценарием, тогда что-то вроде exec () является единственным способом. Убедитесь, что вы избегаете любых аргументов, передаваемых вами скрипту Ruby; в противном случае вы будете уязвимы для инъекционных атак.
Если сценарию Ruby не нужно сразу возвращать результат (например, некоторая фоновая обработка, например, создание миниатюр), то я думаю, что наилучшим способом было бы для сценария PHP вставить строку в базу данных MySQL или что-то подобное , Сценарий Ruby может работать в фоновом режиме или запускаться из cron, периодически проверять базу данных на наличие новых заданий и выполнять любую необходимую ему обработку. Этот подход позволяет избежать проблем с производительностью и безопасностью exec () и, возможно, также более масштабируем. (По аналогичному подходу скрипт Ruby прослушивает сокет, а ваши PHP-скрипты подключаются к сокету. Но для его правильной работы требуется больше усилий.)