Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP a FTP-vsftpd
phpamator
post 9.11.2022, 23:53:50
Post #1





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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 ;(
Go to the top of the page
+Quote Post
vokiel
post 10.11.2022, 10:40:50
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


A pokaż w jaki sposób Ci się nie udawało.


--------------------
Go to the top of the page
+Quote Post
phpamator
post 10.11.2022, 23:18:56
Post #3





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
viking
post 11.11.2022, 06:59:23
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Czy masz jakieś warningi? Linia z ftp_get nic nie zwraca ani nic nie przypisuje.


--------------------
Go to the top of the page
+Quote Post
vokiel
post 11.11.2022, 19:02:37
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


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);



--------------------
Go to the top of the page
+Quote Post
phpamator
post 11.11.2022, 19:52:13
Post #6





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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 ...
Go to the top of the page
+Quote Post
viking
post 11.11.2022, 20:01:34
Post #7





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował viking 11.11.2022, 20:02:29


--------------------
Go to the top of the page
+Quote Post
phpamator
post 12.11.2022, 02:58:04
Post #8





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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

Ten post edytował phpamator 12.11.2022, 03:00:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 19:14