Tym razem dosyć krótki, lecz bardzo treściwy i przydatny poradnik, z którego dowiesz się jak spakować i rozpakować archiwum plików na serwerze FTP w formatach takich jak .zip, .rar i .gz. Pakuj i wypakuj swoje pliki w archiwum w szybki i prosty sposób!
Jeżeli zdarzyło Ci się już wysyłać lub pobierać z serwera bardzo dużą ilość plików, to wiesz doskonale jak problematyczny potrafi być ten proces. Problem jednak nie stanowi sama waga plików, lecz właśnie ich ilość na serwerze. I to właśnie z tego powodu proces pobierania i wysyłania plików na serwer może trwać całe godziny i zostać przerwany chwilę przed jego ukończeniem. O ile sam protokół FTP doskonale radzi sobie z pobieraniem i wysyłaniem pojedynczych plików, o tyle w przypadku, gdy jeden transfer zawiera ich setki lub tysiące [np. w formie katalogów] to staje się to problematyczne.
Możesz przekonać się o tym przekonać w sytuacji, gdy Twoja strona WordPress urośnie, a wraz z nią katalog /wp-content/uploads
, a Ty zechcesz przenieść ją na inny hosting WordPress. Istnieje jednak sposób na to, aby proces wysyłania i pobierania plików na serwerze znacznie uprościć i jest nim pakowanie / wypakowywanie plików do/z archiwum. I wcale nie musisz być ekspertem od WordPress, aby tego dokonać.
No to zaczynamy 🤓
Czym jest archiwum plików na serwerze?
W naszym przypadku opisując jak spakować i rozpakować pliki oraz archiwum na serwerze będziemy odnosić się do formatów .zip, .rar i .gz znanych z systemów komputerowych. Dlatego też jak możesz się domyśleć archiwum plików na serwerze FTP nie różni się niczym od tego, które znajduje się na Twoim dysku. Idea archiwum jest taka, aby wszystkie pliki były w formie jednego, spakowanego pliku, którego pobieranie i wysyłanie jest znacznie szybsze, aniżeli w przypadku, gdy będą one znajdowały się na serwerze np. w katalogu.
Dlaczego tak się dzieje?
Pobieranie i wysyłanie: archiwum vs pliki
Jak już wspomnieliśmy, protokół FTP nie najlepiej radzi sobie z dużą ilością plików. Każdy serwer FTP ma ograniczoną ilość połączeń i najczęściej jest ona w przedziale od 1 do 10 jednocześnie. W sytuacji, gdy Twój katalog na serwerze zawiera 1000 plików, klient FTP potrzebuje nawet dziesiątki takich procesów zanim wylistuje [odnajdzie] je wszystkie. Następnie musi je pobrać lub wysłać i ze względu na jego ograniczenia [dotyczą głównie serwerów współdzielonych] może trwać to kilkadziesiąt minut.
Każdy plik wymaga zainicjowania połączenia, pobrania pliku, a następnie zamknięcie połączenia. A więc oprócz czasu potrzebnego na pobranie pliku zależnego od Twojego łącza oraz przepustowości serwera, tracimy dodatkowe sekundy na otwarcie i zamknięcie połączenia. Brzmi zbyt skomplikowanie?
Obrazuje to doskonale poniższy schemat dla 3 połączeń jednocześnie:
Oznacza to, że jeżeli plików na serwerze jest 300 to Twój komputer musi wykonać ten proces [listowanie => nawiązanie połączenia => wysłanie pliku => zamknięcie połączenia] 100 razy zanim wykona całą kolejkę.
W przypadku archiwum, proces wygląda tak:
W tym wypadku, niezależnie od ilości plików wystarczy tylko jedno połączenie. W ten sposób jesteś w stanie pobrać lub wysłać archiwum zawierające tysiące plików w ciągu kilku minut, ponieważ Twój klient FTP nie traci czasu na otwieranie i zamykanie kolejnych połączeń.
Jak spakować i wypakować archiwum na serwerze FTP?
To bardzo proste. Proces pakowania i rozpakowania plików .zip, .rar i .gz pokażemy Ci krok po kroku. Ten poradnik szczególnie przyda Ci się, gdy ręcznie wykonujesz kopię zapasową lub aktualizację WordPress, choć możesz skrypt ten użyć także do innych systemów CMS. Zaczynamy 🤓
1. Pobierz skrypt
Przygotowaliśmy dla Ciebie gotowy skrypt, który pobierzesz stąd. To prosty plik PHP, który umożliwia pakowanie oraz wypakowywanie plików na serwerze FTP bez konieczności posiadania dostępu administratora.
2. Wgraj plik na serwer FTP
Dodaj plik unzipper.php
do folderu, w którym chcesz spakować lub rozpakować pliki / archiwum.
3. Uruchom skrypt
Otwórz w przeglądarce adres URL do swojego skryptu np. https://siriuspro.pl/unzipper.php
.
Otrzymasz teraz możliwość rozpakowania archiwum lub spakowania dowolnego katalogu do pliku ZIP:
4. Spakuj lub wypakuj pliki
Jeżeli chcesz rozpakować plik ZIP będący archiwum to wybierz je w pierwszej sekcji, a następnie kliknij Unzip Archive. W zależności od wielkości archiwum proces ten może trwać od kilku sekund do kilku minut.
Aby archiwum było widoczne musi znajdować się w tym samym katalogu co plik unzipper.php!
Jeżeli proces wypakowania archiwum przebiegnie pomyślnie to zobaczysz komunikat „File unzipped successfully.„. Teraz, gdy przejdziesz do klienta FTP zobaczysz wypakowane pliki na serwerze.
W przypadku, gdy chcesz spakować swoje pliki na serwerze musisz najpierw wskazać względną ścieżkę katalogu w polu tekstowym w drugiej sekcji np. wp-content/uploads
. Jeżeli pozostawisz to pole puste to spakowany zostanie cały folder, w którym znajduje się plik unzipper.php
wraz z podrzędnymi katalogami i plikami.
Pomyślne ukończenie pakowania plików do archiwum ZIP potwierdzi Ci komunikat „Successfully created archive„.
Skrypt unzipper.php tworzy archiwum domyźlnie tylko w formacie ZIP.
Wystarczy teraz, że otworzysz swój serwer FTP i pobierzesz spakowane archiwum ZIP na swój dysk.
5. Usuń skrypt
Dla bezpieczeństwa, po wykonaniu operacji usuń skrypt ze swojego serwera lub zmień jego nazwę i rozszerzenie na inne np. unzipper
[bez .php] tak, aby nie był już plikiem wykonywalnym.
Problem z wypakowaniem lub spakowaniem plików na serwerze?
Czasami może zdarzyć się, że pakując pliki na serwerze zobaczysz taki błąd:
Oznacza to, że Twój skrypt bardzo się starał spakować lub wypakować Twoje pliki, lecz nie zdążył zrobić to w czasie, który przewidział dla niego serwer. Rozwiązanie tego problemu jest proste i znajdziesz je w tym poradniku https://siriuspro.pl/blad-http-wordpress zwiększając maksymalny czas na wykonanie funkcji [max_execution_time
].
Pamiętaj, że w każdej chwili możesz skontaktować się nami, aby uzyskać pomoc w rozwiązaniu problemów ze swoim WordPressem 🤓 Czekamy na Ciebie, a w międzyczasie daj nam znać w komentarzach jak poszło Ci pakowanie i rozpakowywanie plików na serwerze!