Я работал над приложением PHP, которое использует fpassthru встроенная функция, которая считывает содержимое из указателя потока или файла и выводит его в выходной буфер. Это очень похоже на файл для чтения функция, но позволяет мне начать вывод с определенного смещения.
Большинство хостинг-провайдеров, с которыми я тестировал свой продукт, работали просто отлично, включая общие мультитенантные хостинговые среды. Тем не менее, я нашел несколько, которые имеют fpassthru() функция "отключена по соображениям безопасности". Я часами исследовал, почему кто-то может отключить fpassthru функцию, но не такие функции, как fopen, фред, file_get_contents, а также файл для чтения, но я не мог найти ничего полезного.
Возможно, это звучит глупо, но, по моему мнению, эти хосты отключены. fpassthru принимая это за пройти, что действительно требует отключения, особенно в общих средах. Сказав это, фактический пройти функцию (вместе с исполнитель и остальная часть семьи) также были отключены на этих хостах.
Я попытался связаться с этими хостами и спросил их, почему.
Я не мог получить прошлые продажи в Flywheel, они сказали, что не могут ответить на мой вопрос, и только поддержка может. А для того, чтобы обратиться в службу поддержки, я должен стать клиентом. Классический.
Сначала RunCloud казался немного более многообещающим, я дозвонился до «Системного инженера 3-го уровня», и еще несколько дней потребовалось, чтобы добраться до «Старшего системного инженера», от которого я получил следующее заявление:
это лучшая практика для PHP в RunCloud, и это лучшая практика для нас
Я попросил их уточнить, но давно ничего не слышал, поэтому потерял надежду.
Просто чтобы уточнить, я не ищу обходных путей fpassthru(). Я ищу причины, по которым он иногда указывается рядом с «опасными» функциями, такими как выполнение(), система(), пройти(), pcntl_fork() и другие, имея прочитать файл(), file_get_contents()и т.д. работают просто отлично.
Если у вас есть какие-либо идеи, пожалуйста, поделитесь!