Ben PHP için bir CGI sarıcı ile bir süre bir Hisselerini yaşıyorum. Ben CGI CGI ve PHP hakkında çok az şey biliyoruz.
İşte sistemi hakkında bildiklerimiz:
- Bir 386 10 Solaris
- Suhosin
- PHP normalde cgiwrap (http://cgiwrap.sourceforge.net/) ile, CGI olarak çalışan. Ben bakmak için sunucu üzerinde bir örnek wrapper.cgi bulmak mümkün değilim.
- (Sanal konak) barındırma paylaşılan, bu yüzden Apache yapılandırma erişimi yok. Ama yöneticileri yararlı değildir. Ana geçiş bir seçenek değildir.
- Options yönergesi (örneğin ExecCGI). Htaccess geçersiz olamaz.
. Htaccess:
AddHandler php-handler .php
Action php-handler "/bin/test.cgi"
~ / Public_html / bin / test.cgi:
#!/usr/bin/sh
# Without these 2 lines, I get an Internal Server Error
echo "Content-type: text/html"
echo ""
exec "/path/to/php-cgi" 'foo.php';
/ Bin / foo.php:
<?php
echo "this is foo.php!";
Çıktı http://mysite.com/bin/test.cgi:
X-Powered-By: PHP/5.2.11 Content-type: text/html echo "Content-type: text/html" echo "" exec "/path/to//php-cgi" 'foo.php';
Http://mysite.com/anypage.php Çıktı:
X-Powered-By: PHP/5.2.11 Content-type: text/html echo "Content-type: text/html" echo "" exec "/path/to//php-cgi" 'foo.php';
Ben dikkat şeyler şunlardır:
X-Powered-By ...başlığında belirttiği gibi PHP, idam ediliyor.- source ve
/bin/test.cgisonuçlar çıktı. - Olursa olsun ben ikinci argüman olarak ne koymak
exec, bu php ikili geçmedi. I'-i'phpinfo almak için denedim,'-v'sürümünü almak için ... - Ben kabuk aracılığıyla
test.cgiçalıştırdığınızda, ben beklenen sonuçları almak (argüman php geçirilir ve çıktı yansıtılır).
Bu işe almak konusunda herhangi bir fikir?
UPDATE
- Bu nedeni, source
test.cgigörünen edildi hataları nedeniyle olduğu anlaşılmaktadır. Herzaman ölümcül hata cgi kendi içinde ya da komutexec, bu cgi kaynağı görünmesine neden olur tarafından yürütülmektedir ile ya oluştu. - Içinde
test.cgi, Iexec "/path/to/php-cgi" -h(ben CLI'den olduğu gibi aynı şey olsun) ile doğru çıktı alabilirsiniz.