Linuksowo.pl - Linux forum
Transkrypt
Linuksowo.pl - Linux forum
Subject: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by tomi on Mon, 01 Mar 2010 15:29:50 GMT View Forum Message <> Reply to Message Mam taki problem szukałem w google w języku polskim i nie mogłem znaleźć, co trzeba zrobić, żeby zmusić Apache, żeby wykonywał programy napisane w c czyli poprostu pliki binarne tak samo jak w PHP, może ktoś z was już ma tak ustawione to by się podzielił informacją. Subject: Odp: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by hwast on Mon, 01 Mar 2010 16:06:30 GMT View Forum Message <> Reply to Message Zainteresuj się CGI (http://pl.wikipedia.org/wiki/CGI). Aktualnie apache.org leży ( 8o :roll: ) ale jest tam fajny przewodnik po CGI (http://httpd.apache.org/docs/2.2/howto/cgi.html). Subject: Odp: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by tomi on Mon, 01 Mar 2010 17:40:39 GMT View Forum Message <> Reply to Message Zastosowałem się do tego poradnika Cytuj:Aby mieć możliwość uruchamiania na naszej maszynie skryptów perl'a ( .cgi .pl ) należy w pliku konfiguracyjnym httpd.conf dokonać paru małych modyfikacji : "/usr/local/apache2/conf/httpd.conf"modyfikujemy linijke DirectoryIndex DirectoryIndex index.html index.htm index.cgi index.pl dodajemy linijeczke : AddHandler cgi-script .cgi .pl oraz określamy w jakich katalogach maja być parsowane pliki .cgi oraz .pl - jako skrypty CGI, w naszym przypadku wszystkie katalogi cgi-bin we wszystkich podkatalogach * w katalogu /home/www <Directory "/home/www/*/cgi-bin"> Options +ExecCGI Page 1 of 5 ---- Generated from Linuksowe by FUDforum 2.8.1 Linuksowo.pl - Linux forum - Polskie Forum </Directory> Teraz sprawdźmy czy nasze skrypty CGI aby napewno działają poprawnie, otwieramy nasz ulubiony edytorek i wpisujemy : Cytuj:#!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello, Im a CGI script and Im gonna print You some environment variables to make You belive that Im working fine smile.gif \n"; print "<br><br>"; foreach $key (keys %ENV) { print "$key --> $ENV{$key}<br>"; } Nasz kod zapisujemy jako plik .cgi lub .pl w miejscu w którym nadaliśmy mozliwość parsowania plików jako skrypty CGI. Następnie nadajemy odpowiednie prawa dla pliku : Cytuj:# chmod 755 /home/www/localhost/cgi-bin/skrypt.cgi # chmod +x /home/www/localhost/cgi-bin/skrypt.cgi teraz sprawdzamy już tylko w przeglądarce czy wszystko działa poprawnie podając w url'u scieżkę do naszego skryptu cgi np. : http://nasze_ip/cgi-bin/skrypt.cgi. Jeżeli wszystko działa poprawnie w przeglądarce powinno pokazać się co nieco zmiennych środowiskowych I jeszcze kilku innych W końcu jak wchodzę do jakiegoś pliku zawartego w katalogu cgi-bin to wyświetla się komunikat Cytuj:Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error. Page 2 of 5 ---- Generated from Linuksowe by FUDforum 2.8.1 Linuksowo.pl - Linux forum - Polskie Forum More information about this error may be available in the server error log. A w pliku z błędami taki wpis Cytuj:Premature end of script headers: perl.cgi Subject: Odp: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by Ślubek on Sun, 07 Mar 2010 19:40:59 GMT View Forum Message <> Reply to Message Spróbuj uruchomić ten skrypt z linii poleceń. Poza tym pamiętaj, że serwer www musi mieć uprawnienia do wykonywania go. Subject: Odp: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by tomi on Sun, 07 Mar 2010 20:03:07 GMT View Forum Message <> Reply to Message Cytuj:Poza tym pamiętaj, że serwer www musi mieć uprawnienia do wykonywania go. A jak mam sprawdzić czy ma odpowiednie uprawnienia nadaje mu uprawnienia chmod 777 i nic, a jak nie ma to jak mam nadać mu uprawnienia. i uruchomiłem ten skrypt z linii poleceń i działa. Subject: Odp: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by Ślubek on Mon, 08 Mar 2010 00:00:27 GMT View Forum Message <> Reply to Message tomi napisał(a) dnia Sun, 07 March 2010 09:03i uruchomiłem ten skrypt z linii poleceń i działa. A co wyświetla? Bo komunikat oznacza, że skrypt wyświetla niewłaściwe nagłówki. Powinno zaczynać się tak: Cytuj:[rafal@localhost tmp]$ ./skrypt.pl Content-type: text/html Page 3 of 5 ---- Generated from Linuksowe by FUDforum 2.8.1 Linuksowo.pl - Linux forum - Polskie Forum Hello, Im a CGI script and Im gonna print You some environment variables to make You belive that Im wor... Subject: Odp: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by tomi on Mon, 08 Mar 2010 07:58:42 GMT View Forum Message <> Reply to Message Skrypt wygląda tak Cytuj:#!/usr/bin/perl print "asdsd"; A wyświetla w konsoli napis asdsd Subject: Odp: Wykonywanie programów napisanych w języku C po stronie Apacha Posted by tomi on Sat, 25 Dec 2010 20:12:08 GMT View Forum Message <> Reply to Message Mam skrypt w cgi w katalogu /var/www/cgi-bin i mam plik configuracyjny apache skonfigurowany AddHandler cgi-script .cgi .pl <Directory "/var/www/*/cgi-bin"> Options +ExecCGI </Directory>. DirectoryIndex index.html index.htm index.cgi index.pl a wyświetla mi się taki komunikat Not Found Page 4 of 5 ---- Generated from Linuksowe by FUDforum 2.8.1 Linuksowo.pl - Linux forum - Polskie Forum The requested URL /cgi-bin/test2.cgi was not found on this server. dodam że dodawałem uprawneinia do pliku typu chmod 777 chmod a+x Page 5 of 5 ---- Generated from Linuksowe by FUDforum 2.8.1 Linuksowo.pl - Linux forum - Polskie Forum