В настоящее время я пишу свой собственный сервер на C ++ для систем Posix. Прежде чем кто-либо скажет о том, как на самом деле мне следует использовать готовый сервер, имейте в виду, что я использую готовые серверы для всего, что связано с бизнесом. Этот проект является полностью учебным опытом.
Я хотел бы, чтобы эта система поддерживала скрипты на стороне сервера, а также статический хостинг. Я сталкиваюсь с проблемой, когда пытаюсь включить поддержку самого важного языка сценариев на стороне сервера: PHP.
Стандартный PHP предоставляет несколько предопределенные переменные которые дают доступ к информации о входящем запросе. Это также обеспечивает стандарт Функции HTTP которые взаимодействуют с запросом определенным образом. Кроме того, предполагается, что можно выполнять операции ввода-вывода над телами запросов и ответов, используя имена файлов php://input
а также php://output
соответственно для ссылки на соответствующий сокет и разрешения.
Я знаю, что смогу определить все эти переменные и сам реализовать все эти функции в верхней части скрипта-оболочки, а затем использовать include
запустить скрипт пользователя в том же контексте, но это кажется громоздким. Я также не знаю, как отобразить php://input
или же php://output
к дескриптору файла фактического сокета запроса.
Я не очень разбираюсь в интерпретаторах PHP. Есть ли способ предоставить необходимые данные запроса (пользовательский агент, адрес INET, метод, URI, версия, заголовки, дескриптор файла сокета и, возможно, то, что я забыл) интерпретатору PHP, чтобы иметь возможность доступа к собственным определениям и реализации этих переменных и функций? Или это стандартная практика для автора сервера определять и реализовывать их самостоятельно?
Самое главное, если мне нужно реализовать эти вещи самостоятельно, как мне отобразить php://input
а также php://output
правильный дескриптор файла и разрешения?
Спасибо всем. Любая помощь приветствуется.
Задача ещё не решена.
Других решений пока нет …