Первоначально я опубликовал это наПереполнение стекаи мне предложили попробовать разместить это здесь, потому что «может быть что-то вроде того, что конфигурация в CGI отличается от конфигурации для вашего пользователя».
Сказав это, вот мой оригинальный пост:
Признаюсь, для меня это странная проблема, но вот что я делаю:
У меня есть скрипт Ruby, который выполняет строку PHP-кода и фиксирует вывод.
Это в некоторой степени связано сеще одна проблема, которая у меня былас запуском cgi PHP из командной строки.
Вот исходный код скрипта Ruby:
#!/usr/bin/ruby
puts "Content-type: text/html\n\n"
puts "Start PHP Output<br />"
puts `echo '<?php echo "hello world"; ?>' | php5 -q`
puts "End PHP Output<br />"
Действительно странная вещь, которую я не могу понять, это то, что PHP-код здесь, похоже, ведет себя по-разному, когда я запускаю скрипт Ruby из командной строки и из CGI. Что на самом деле не имеет для меня смысла, потому что в любом случае я выполняю одну и ту же строку PHP из команды с теми же аргументами.
Когда я запускаю приведенный выше скрипт Ruby из командной строки, я получаю ожидаемый вывод:
Тип содержимого: text/html
Начало PHP-вывода
hello world Конец PHP-вывода
Когда я запускаю тот же скрипт Ruby из браузера через CGI, я получаю следующий вывод:
Запустить PHP-вывод
X-Powered-By: PHP/5.2.13 Content-type: text/html
puts "Content-type: text/html\n\n" puts "Запустить PHP-вывод
" putsecho 'hello world' | php5 -q
puts "Завершить PHP-вывод
" Завершить PHP-вывод
Мне кажется, что строка PHP не подавляет заголовки, как я ожидал бы от опции -q... и также сбрасывает весь мой скрипт Ruby обратно в браузер, что меня озадачивает.
Есть предположения?
Заранее спасибо!
решение1
Мне удалось найти решение на StackOverflow. Проверьте это здесь.