@EvilBeaver
упоротый гик

Как в IIS (или в Apache) обработчик скрипта получает путь к скрипту?

Допустим, мы настраиваем связку php.exe и IIS. Добавили связку расширения *.php и интерпретатора php.exe
В браузере запрашиваем mysite/script.php и веб-сервер запускает интерпретатор, указывая ему путь к запрошенному скрипту. Все хорошо работает.

Вопрос: как интерпретатор получает этот путь? Я полагал, что параметром командой строки. Однако, если я напишу свой exe и настрою его, как обработчик файлов php, то в параметрах командной строки ничего нет.

Каким образом я, как автор обработчика скриптов должен получить путь к запрашиваемому файлу скрипта?
  • Вопрос задан
  • 2362 просмотра
Решения вопроса 1
@EvilBeaver Автор вопроса
упоротый гик
Уже накопал самостоятельно. Может кому пригодится:
1. Имя скрипта передается через переменную окружения SCRIPT_FILENAME или PATH_TRANSLATED
2. Аргументы командной строки всегда пустые
3. Данные GET передаются в переменной окружения QUERY_STRING
4. Данные POST передаются через входной поток stdin
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@memba
Могу подсказать, что php.exe это консольная версия интерпретатора, которая используется для консольных скриптов, а не для запуска через веб-сервер. Внешние данные в такую программу конечно передаются в качестве параметров командной строки.

Так же есть php-cgi.exe, представляющая собой CGI версию интерпретатора. Я могу предположить, что для передачи информации, тут будет применяться поток. По версии CGI интерпретатор по мимо пути к скрипту должен получить ещё кучу другой информации. Например все заголовки и данные GET и POST...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы