Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP a FTP-vsftpd
Forum PHP.pl > Forum > PHP
phpamator
Hej, to znowu ja, wasz niezawodny phpamator

Dzisija mam pytanie czy i w jaki sposób poradzić sobie z podłączeniem ftp do servera Centos z zainstalowanym vsftpd
Za dzidę nie mogę sobie poradzić, wsftp i wszelkie filezille OK a php ... ni chu chu.

Macie jakieś pomysły ?

Dostępy zarządzane prawidłowo, ustawienia userów OK z shella OK a z PHP .... jak nie chciał tak nie chce ;(
vokiel
A pokaż w jaki sposób Ci się nie udawało.
phpamator
jak by mi się udało .... to pewnie bym nie pytał, co chciałbyś zobaczyć ?
  1.  
  2. function pobierzPlikzFtp($plik)
  3. {
  4.  
  5. $perm = 0644;
  6.  
  7. $splik= 'import/plik_update.csv';
  8.  
  9. $lplik= $plik. '_update.csv';
  10.  
  11. $ftp_server = "mój.adr.es.ip";
  12.  
  13. $ftp_username = "phpamator";
  14.  
  15. $ftp_password = "phpamator";
  16.  
  17. $ftp = ftp_connect( $ftp_server ) or die( '<div class="alert alert-danger">Failed to connect to $ftp_server</div>' ) ;
  18. echo '<div class="alert alert-info">Connecting...</div>' ;
  19. if ( ftp_login( $ftp, $ftp_username, $ftp_password ) )
  20. {
  21.  
  22. if (ftp_chmod($ftp, $perm, $splik) !== false)
  23. {
  24. ftp_pasv( $ftp, true ) ;
  25. ftp_get( $ftp, 'import/' . $lplik, $splik, FTP_BINARY ) ? "test" : '<div class="alert alert-danger">Błąd pobierania $local_file</div>' ;
  26. }
  27. else
  28. {
  29. return '<div class="alert alert-danger">Nie mogę chmod $file</div>' ;
  30. }
  31. }
  32. else
  33. {
  34. return '<div class="alert alert-danger">Niewłaściwy użytkownik/hasło</div>' ;
  35. }
  36. ftp_close( $ftp ) ;
  37. }
  38.  


tu chyba błędu zrobić się nie da tongue.gif

używając tych samych danych logowania z każdego klienta ftp sie podłacza a z poziomu skryptu nie.

zapomniałem dodać, że serwer na Centos 7 z zainstalowanym vsftpd jeśli to ma znaczenie
viking
Czy masz jakieś warningi? Linia z ftp_get nic nie zwraca ani nic nie przypisuje.
vokiel
Cytat(phpamator @ 10.11.2022, 23:18:56 ) *
jak by mi się udało .... to pewnie bym nie pytał, co chciałbyś zobaczyć ?


Cytat(vokiel @ 10.11.2022, 10:40:50 ) *
A pokaż w jaki sposób Ci się nie udawało.


1. Jakie błędy zwraca skrypt? Masz włączone wyświetlanie lub logowanie błędów? Możesz uruchomić debugger i sprawdzić krok po kroku co się dzieje w którym miejscu?
2. Jeśli logoowanie działa (nie rzuciło błędem z die()) to wewnątrz if ftp_login dodaj listowanie plików, żeby mieć pewność czy jesteś zalogowany i gdzie jest root:
  1. $list = ftp_nlist($ftp, '.');
  2. var_dump($list);

phpamator
no właśnie problem w tym, że wygląda jakby mnie wogóle nie chciał wpuścić
wywala mi tylko "Failed to connect to moj.se.rv.er"


Warning: ftp_login() expects parameter 1 to be resource, bool given in ftest.php on line 10
FTP connection has failed! Attempted to connect to xxx.xxx.xxx.xxx for robert.
Warning: ftp_close() expects parameter 1 to be resource, bool given in ftest.php on line 22

co mnie okrutnie denerwuje bo i user i pass jest na 100% podane ...
viking
A port jest poprawny? Nie działa pierwsze połączenie (pierwsza linia skryptu) więc chociaż masz już kierunek. Może np docker i inna sieć albo blokada php na firewall.
phpamator
Jeśli chodzi o firewall to jeśli jest coś specjalnego do ustawienia to nie wiem albo nie trafiłem na takowe, port jest udostępniony
po za tym działa każdy klient FTP jak wspomniałem wcześniej
sprawdziłem iptables, regułki firewalla wszystko wygląda ok
sebool wyłaczony (selinux)


Aaaaahahaha w końcu znalazłem przyczynę.
Okazało się, że uparcie próbowałem podłaczyć się do lokalnego FTP przez zewnętrzne IP
i wystarczyło ustawić $host = 'localhost';
wszystko śmiga tongue.gif
ale teraz mam innny problem, otóż okazało się, że moje wcześniejsze przetwarzanie csv ... działało ale ponieważ mam teraz wiele źródeł i pozmieniały się pola/nazwy kolumn i nic nie pasuje, muszę wymyślić jakąś formę mapowania zależnie od źródła. Ale spoko, już ma pomysł tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.