[PHP][SFTP][shell_exec] Problem z wykonaniem skryptu .sh, W konsoli skrypt wykonuje się poprawnie w shell_exec nie |
[PHP][SFTP][shell_exec] Problem z wykonaniem skryptu .sh, W konsoli skrypt wykonuje się poprawnie w shell_exec nie |
3.01.2019, 19:05:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 10.11.2010 Skąd: Jastrzębie Zdrój Ostrzeżenie: (0%) |
Witam, nie wiedziałem za bardzo pod który dział podpiąć problem, pod PHP czy pod Serwery www, ale spróbuje tutaj.
Próbuję wysłać 6 plików na serwer SFTP. Autoryzacja do tego serwera odbywa się za pośrdenictwem privateKeya i hasła. Za cholerę ssh2_connect czy nawet biblioteka phpseclib nie może połączyć się z serwerem. Nie autoryzuje mi połączenia lub nie akceptuje mi pliku klucza i robi inne dziwne kwiatki. Natomiast w konsoli używając: łączy się normalnie. A że musze to puścić PHPem, bo skrypt ma się wykonać przez przeglądarke. Sięgnąłem po "expect". Bardzo prosty skrypt doit.sh wygląda następująco: Jak puszczę go w konsoli ./doit.sh wykonuje się prawidłowo...i wszystkie 6 plików wysyłane są na serwer poprawnie, następuje rozłączenie z serwerem. Problem pojawia się, gdy próbuję ów skrypt odpalić stosując Po wypluciu sobie echo $make; w przeglądarce, mogę zaobserwować że skrypt jest zatrzymywany w trakcie kopiowania 2 ostatnich plików...log kończy się na 54% przesyłania pliku... Czas przesyłania tych 6 plików to około 25sekund... Łącznie mają nieco poniżej 3mb. Dodam, że w php.ini wszystko ustawiłem dla testów na maxa (max_execution_time = 0 , max_time_limit = -1) , ale i to nic nie pomaga. Zresztą na pewno nie jest to wina tych ustawień gdyż przeglądarka prawidłowo wyświetla efekt POST'a (nie pojawia się żadnen memory limit itp)... I tutaj moje pytanie, czy może shell_exec ma jakiś swój czas wykonania skryptu? Lub co może być problemem, że w konsoli skrypt jest wykonany od A do Z, log wygenerowany jest od samego połączenia aż do bye i rozłączenia z serwerem... a log shell_exec wyświetla się do połowy..i tak też kończy pracę. P.S. Gdy skrócę ilość wysyłanych plików do 4...i jeszcze z takimi wielkościami po 50kb plik, to shell_exec wszystko ładnie pięknie kończy...czyli ewidentnie gdzieś tu chodzi o czas :/ Ten post edytował MateuszRyaN 3.01.2019, 19:12:20 |
|
|
4.01.2019, 13:59:20
Post
#2
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 10.11.2010 Skąd: Jastrzębie Zdrój Ostrzeżenie: (0%) |
Dobrze Cię zrozumiałem,mam ten privateKey.pem jeszcze przekonwertować na private i public?
Czy chodzi Ci o to aby z privateKey.pem wyłuskać klucz publiczny coś typu
Konwertowania z konsoli nie próbowałem. Posiłkowałem się programikiem Putty Key Generator. Tam importowałem tego privateKey.pem'a i on wypluwa public keya typu:
Ale widzę że jest tam jeszcze opcja z tego wszystkiego eksportu do privata ponownie...więc może to o to chodzi. Czyli sugerujesz, że jeśli uda mi sie wygenrować klucz prywatny z tej pary .pem, to powinienem na niego wtedy móc wejść przez phpseclib lub ssh2_auth_pubkey_file (podając mu tego wygenerowanego jak wyżej public keya + wygenerowanego privata ? No chyba że namieszałem totalnie, to mnie popraw Temat do zamknięcia. Problem rozwiązał się po zastosowaniu phpseclib w wersji 2.0.3 |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 00:27 |