Konfiguráció Debian Lenny, apache lábjegyzet:
"Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny10 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Server at nasi Port 80"
Van egy shell alapú cgi scriptem: http://pastebin.com/38QBwFMQ
A pastebin -ben található shell kimenet illetve a szerver hibaüzenete. Nem értem a dolgot, a "busybox httpd" ezt simán viszi. Mi lehet a hiba?
(Kipróbáltam, egy hup cikkek között talált perl alapú "potos idő" kitűnően működik.)
- 1453 megtekintés
Hozzászólások
Ejnye, ez mi akar lenni?
# parking.cgi
#!/bin/sh
#
A shebang -nek a fájl első sorában kéne állnia.
- A hozzászóláshoz be kell jelentkezni
Ott is van! Ez csak az utólagos beszerkesztés! Bocsánat.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Még valami. Ha a shellből lefuttatott fájlba mentett kimenetet akarom megnézni, akkor szépen kirakja (./parking.cgi > parking.html)
Még valami, ha a kiterjesztést átírom .sh -ra akkor leakarja tölteni :(
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Így kellene kezdődnie:
cat << EOM
Content-type: text/plain
<!DOCTYPE HTML PUBLIC
.....
A content-type definició nélkül nem fog menni ;)
----
올드보이
http://molnaristvan.eu/
- A hozzászóláshoz be kell jelentkezni
Az eredeti scriptből már csak ennyi maradt:
#!/bin/sh
#
/bin/cat << EOM
Content-type: test/plain
<B>Nyugalom és békesség :o)</B>
EOM
De az apache error.log a következőket írja:
... Premature end of script headers: parking1.cgi, ...
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Ha jól megnézed az első néhány sort, Kayapo nem pontosan így írta.
Az üzenet oka a dokumentációban olvasható, picit feljebb görgetve ott a példa is, és a FAQ-ban is megemlékeznek róla.
- A hozzászóláshoz be kell jelentkezni
Nem tudtok valahol egy egyszerű CGI shell scriptet, aminek tutira kellene mennie apache2 alól? Lehet hogy valami konfigurációs hiba?
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Nem blokkol az SELinux?
- A hozzászóláshoz be kell jelentkezni
Restellem, de azt sem tudom, hogy ezt hogy lehet megnézni. Valami SElinux kezdemények vannak de a folyamat listában tuti nincs ilyen.
A szokásos helyről, azaz a /usr/lib/cgi-bin könyvtrába telepített cuccok mennek (pl. man) de ezek a próbálkozásaim nem :(
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Nézd meg az sestatus nevű paranccsal, hogy fut-e (már ha RH alapú disztrót használsz)
- A hozzászóláshoz be kell jelentkezni
Jut eszembe, a perl script működik - itt szedtem le ahup -ról, csak a shell script nem.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Ezt megnézted, és javítottad? Úgy sem megy?
- A hozzászóláshoz be kell jelentkezni
Igen, a javított script így fest:
#!/bin/sh
echo Content-type: txt/html
echo ""
#
/bin/cat << EOM
<HTML>
<HEAD><TITLE>Simple test CGI script</TITLE></HEAD>
<BODY>
Bárakármi!
</BODY>
</HTML>
Viszont azóta valamit elszúrhattam a konfigurációban (kezdek összezavarodni) mert most leakarja tölteni :( Ez most javulás?
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
"txt/html"
text/html
- A hozzászóláshoz be kell jelentkezni
Ez az :o) (Pedig nem másoltam, szóról szóra begépeltem - a hibát!)
De most miért akarja a "pontosido.pl" letölteni, amikor ez már működött :x
Jó, nem tudom mi köze ennek a windowsos firefox cache -nek, de miután töröltem ez is megjavult?
A környezeti változók listája üres - pl. SERVER_SOFTWARE --> (SERVER_SOFTWARE)
Fáradok txt != text - bocs :(
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Úgy tűnik, az apache úgy szereti, hogy az elején legyen ott:
echo Content-type: text/html
echo ""
Aztán jöhet bármi, de ha ez nincs akkor jön ez a csinos hiba.
Köszönöm a segítséget!
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Úgy döntöttem itt folytatom. httpd = busybox httpd - shell alapú cgi script:
echo "<EMBED HIDDEN=TRUE LOOP=FALSE SRC=\"feryhorn.wav\"></EMBED>
apache cgi-bin alól ez szépen a kliens böngészőn kürtöl egyet, a busybox httpd viszont hobát dob:
url:/cgi-bin/feryhorn.wav
can't execute 'feryhorn.wav': Exec format error
Miért is akarja ezt végrehajtani? Hibás a szintaxis? Elvileg ez apache alól így működik. Ötlet? Esetleg hogy lehet még rávenni a böngészőt hogy eljátsszon egy wav fájlt?
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Ne a cgi-bin alá tedd. Egyrészt undorító, másrészt alighanem ezért akarja a busybox elindítani szegényt.
- A hozzászóláshoz be kell jelentkezni
Köszönöm! Nem tudom mennyi időbe telt volna mire erre rájövök :D
Egyébként, teljesen igazad van - minden egy könyvtárban gusztustalan!
echo "{EMBED HIDDEN=TRUE LOOP=FALSE SRC=\"../data/feryhorn.wav\"}{/EMBED}"
Most már súgja meg még valaki azt, hogy lehet egy html sort ide korrektül feltenni? A "code" tag nem segít, amíg próbálkoztam ezzel-azzal letiltott :(
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Van a [ code ], az jobb szokott lenni, de az se tökéletes. Akár a pastebin-t is lehet használni, még egy sorhoz is ha nagyon fontos a pontos átvitel.
- A hozzászóláshoz be kell jelentkezni
<strong>Ez egy HTML tag.</strong> => <strong>Ez egy HTML tag</strong>
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Nem tudom a kóüdot betenni, csak egy sor
echo "{EMBED HIDDEN=TRUE LOOP=FALSE SRC=\"feryhorn.wav\"}{/EMBED}"
A figurás zárójel a relációs jelet pótolja.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
OFF "figurás zárójel" :D na ezt sem hallottam meg soha /OFF
- A hozzászóláshoz be kell jelentkezni