@kille72
poniżej kilka pytań, na które proponuję sobie odpowiedzieć, prawdopodobnie na część z nich już znasz odpowiedź. Na część uwag już poprzednicy zwrócili uwagę. Pytania powinny pomóc zlokalizować problem....
(dla poniższych przykładów użyłem webserwer thttpd dostępny z repo, ty używasz lighttpd)
1. czy serwer www masz uruchomiony? Czy da się go wywołać z twojej przeglądarki ?
Cytat
ps | grep thttpd
lsof | grep thttpd | grep LISTEN
thttpd 1563 nobody 0u IPv6 1101023 0t0 TCP *:8888 (LISTEN)
- mój działa na 8888 porcie: http://router:8888/
Konfiguracja i uruchomienie webserwera:
Cytat
nano /opt/etc/thttpd.conf
dir=/opt/share/www
port=8888
user=nobody
nochroot
nosymlink
novhost
cgipat=/cgi-bin/*.pl
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
2. Wgrałeś skrypt *.pl do katalogu uruchamiania skryptów *.cgi? Standardowo jest to katalog o nazwie cgi-bin w katalogu webserwera. definiuje się to w pliku konfiguracyjnym webserwera.
Prawdopodobnie w twoim przypadku będzie to w /opt/share/www/cgi-bin
Wykonałeś chmod +x /opt/share/www/cgi-bin/FormMail.pl ?
(+711)
2. czy udaje ci się wywołać skrypt *.pl z przeglądarki? czy pojawia się jakiś efekt jego działania?
http://router:8888/cgi-bin/
Jeśli nie, to wykonaj z linii poleceń:
Cytat
root@router:/opt/share/www/cgi-bin#
perl FormMail.pl
Content-type: text/html
Error: Request Method
The Request Method of the Form you submitted did not match
either GET or POST. Please check the form and make sure the
method= statement is in upper case and matches GET or POST.
FormMail V1.93 © 1995 - 2009 Matt Wright
A Free Product of Matt's Script Archive, Inc.
|
Jeśli taki wynik, to plik jest ok, jeśli jakiś komunikat błędu, popraw go.
Jeśli pokazało się źródło pliku
w przeglądarce to parsowanie perla nie działa (nie zainstalowany?/cgi-bin traktowane jak zwykły katalog?)
Jeśli komunikat o CGI (na ekranie przeglądarki, w logu tomato, w logu webserver-a cośtam że nie potrafi uruchomić
) to możliwe , że nie masz prawidłowo skonfigurowane cgi:
dla thttpd wymagane jest aby do pliku dopisać:
nano /opt/etc/thttpd.conf
cgipat=/cgi-bin/*.pl
3. Czy plik stworzony na podstawie
http://www.one.com/en/support/faq/how...p-formmail ci działa (
formularz do wysyłania do formmail)?
Zapisz go w /opt/share/www np index.htm - wtedy będzie go automatycznie uruchamiał po wpisaniu nazwy hosta, zamiast wyświetlać zawartośc katalogu (jeśli taka opcja jest włączona).
Pamiętaj, aby w action ustawić właściwą ścieżkę (względną lub bezwzględną) do pliku formularza:
Dla testów (bo nie wiem czy skrypt formularza *.pl wtedy będzie prawidłowo przetwarzał dane z pliku html) możesz zmienić metodę przesyłania danych do FormMail.pl, zmieniając metode post na get - wtedy w polu url przeglądarki zobaczysz parametry wpisane przez ciebie
4. Jeśli wszystko dotychczas działa i ty wypełniając dane nie otrzymujesz maila, upewnij się że sendmail prawidłowo działa/wysyła.
uruchom sendmail-a z tymi samymi parametrami jakie wprowadzasz na stronie www. Jeśli poczta nie dochodzi do twojego zewnętrznego konta pocztowego (np. na gmailu) to bardzo możliwe że:
- ze względów bezpieczeństwa docelowy serwer pocztowy odrzuca mail przez ciebie wysłany,
- twój usługodawca zablokował ruch po portach dla standardowych usług pocztowych: poczta wychodząca (SMTP port 25). Zmień na 587. Więcej na google.
- tomato blokuje (iptables)?
5. Wpisz prawidłowe wartości do FormMail.pl:
which sendmail - aby dostać ścieżkę do sendmail-a
recipients uzupełnij
pisałeś , że na koncie hostowanym tobie działało - użyj FormMail.pl z stamtąd.
PS.
Upewnij się że pliki są prawidłowo obsługiwane przez webserwer/przeglądarkę - kodowanie znaków/unicode: utf-8.
Ścieżki podałem tak jak u mnie są, w twoim wypadku może być inaczej.
Przy zmianie parametrów pliku konfiguracyjnego wymagany może być restart webserver-a.
Jeśli zależy ci na bezpieczeństwie (dostęp spoza LAN/routera)- polecam stunnel. Dzięki niemu możesz prosto zrobić jednym zamachem https dla wielu usług na raz (tomato GUI, transmission, inne usługi). Pozostaje tez putty i openvpn oraz natywna obsługa przez webserwer (jeśli tylko webserwer obsługuje https/ssl).