Do klonowania strony lokalnie Local WP jest bardzo dobry. Problem w tym, że czasami zaczyna działać wolno, nawet od samego początku i na mocnych komputerach.
I jasne, kiedy działa wolno, potrafi naprawdę doprowadzić do szału. Bo przecież, oprócz bezpieczeństwa, pracujesz lokalnie po to, żeby było szybciej, a nie po to, żeby czekać trzy sekundy za każdym razem, gdy otwierasz stronę admina.
W projekcie mojej nowej strony właśnie tak było, ale nie chciałem zmieniać narzędzia. Nie chciałem stawiać Dockera, wyrzucać środowiska ani zaczynać od zera. Chciałem, żeby Local WP znów był (bardzo) używalny.
Po przetestowaniu kilku rzeczy to właśnie te pięć kroków naprawdę u mnie zadziałało.
Jest więcej opcji optymalizacji, ale ja trzymałem się tych i teraz mój lokalny setup śmiga jak rakieta.
Índice de Contenidos del Artículo
- 1. Potwierdzić, że Xdebug był wyłączony
- 2. Zmienić domenę z .local na .test
- 3. Wykluczyć foldery Local WP z antywirusa Windows
- 4. Wyłączyć pluginy, których nie potrzebowałem lokalnie
- 5. Wyczyścić bazę danych z shella Local
- Wynik
- Najczęstsze pytania
- Dlaczego Local WP działa wolno w Windows?
- Czy lepiej używać .test niż .local w Local WP?
- Czy Xdebug może spowalniać Local WP?
- Czy wykluczanie folderów Local WP w Windows Defender jest bezpieczne?
- Jakie foldery warto wykluczyć z antywirusa, jeśli używam Local WP?
- Czy wyłączenie pluginów poprawia wydajność Local WP?
- Jak mogę wyczyścić bazę danych WordPressa w Local WP?
- Czy mogę używać tych komend czyszczenia na produkcji?
- Czy muszę przejść z Local WP na Docker, jeśli działa wolno?
- Które ustawienie może najbardziej poprawić Local WP w Windows?
1. Potwierdzić, że Xdebug był wyłączony
Najpierw sprawdziłem Xdebug.
Xdebug służy do debugowania PHP. Jeśli zamierzasz ustawiać breakpointy, sprawdzać zmienne i robić poważny debugging, świetnie. Po to jest.
Ale jeśli go nie używasz, może dość mocno spowalniać środowisko.
W Local WP sprawdza się to z poziomu karty strony:
Local WP > twoja strona > zakładka Overview / Tools > Xdebug
W moim przypadku był już wyłączony, więc nie musiałem niczego ruszać. Ale z doświadczenia był pierwszym podejrzanym, którego trzeba było wykluczyć.
Zasada jest prosta: jeśli nie debugujesz aktywnie PHP, Xdebug wyłączony.
Tutaj nie było to “rozwiązanie” w moim przypadku, bo już był wyłączony, ale nic nie kosztuje to sprawdzić, zanim człowiek oszaleje przy innych rzeczach.
2. Zmienić domenę z .local na .test
Tę zmianę było czuć.
Miałem stronę z domeną kończącą się na .local (yg.local) i zmieniłem ją na yg.test.
W Local WP robi się to tak:
- Otwierasz Local WP.
- Wybierasz stronę.
- Przechodzisz do zakładki Overview.
- Szukasz pola Site domain.
- Kliknij Change.
- Zmieniasz domenę z .local na .test.
- Potwierdzasz zmianę.
- Restartujesz stronę.
Potem wchodzisz pod nowym adresem URL:
https://yg.test
Albo, jeśli nie masz aktywnego SSL w Local:
http://yg.test
Dlaczego to działa?
Bo .local potrafi sprawiać problemy w niektórych środowiskach przez sposób rozwiązywania na poziomie sieci. .test jest znacznie bardziej przeznaczone do lokalnego developmentu i omija część tej absurdalnej tarczy.
To prosta zmiana, która w moim przypadku pomogła.
3. Wykluczyć foldery Local WP z antywirusa Windows
Kolejne ważne ustawienie.
Jeśli pracujesz na Windows, Windows Defender może stale sprawdzać pliki WordPressa, pluginy, motywy, uploads, bazę danych, logi, cache i wewnętrzne usługi Local.
A wiadomo, WordPress lokalnie przerzuca mnóstwo małych plików. Jeśli antywirus zaczyna sprawdzać wszystko, czego dotyka PHP, MySQL albo nginx, wydajność na tym cierpi.
Oczywiście nie wyłączyłem antywirusa; dodałem po prostu wykluczenia.
W Windows:
- Otwórz Zabezpieczenia Windows.
- Wejdź w Ochrona przed wirusami i zagrożeniami.
- Przewiń do Ustawienia ochrony przed wirusami i zagrożeniami.
- Kliknij Zarządzaj ustawieniami.
- Przewiń do Wykluczenia.
- Kliknij Dodaj lub usuń wykluczenia.
- Dodaj wykluczenia typu Folder.
Ważny folder to ten od lokalnych stron:
C:UsersTWOJ_UZYTKOWNIKLocal Sites
A także wewnętrzne foldery Local, które zwykle znajdują się w ścieżkach takich jak:
C:UsersTWOJ_UZYTKOWNIKAppDataLocalProgramsLocal
I:
C:UsersTWOJ_UZYTKOWNIKAppDataRoamingLocal
W moim przypadku wykluczenie Local Sites było szczególnie ważne, bo właśnie tam naprawdę znajduje się strona: WordPress, pluginy, motywy, uploads i wszystko, czego Local stale dotyka.
Po dodaniu wykluczeń warto zatrzymać i ponownie uruchomić stronę z poziomu Local WP.
4. Wyłączyć pluginy, których nie potrzebowałem lokalnie
Następny krok był dość oczywisty, ale czasami o nim zapominamy albo wolimy go nie robić, żeby lepiej symulować środowisko produkcyjne.
Są pluginy, które wykonują połączenia zewnętrzne, zadania cykliczne, kontrole bezpieczeństwa, backupy, logi, cache, analizę SEO, integracje z newsletterami, monitoring, optymalizację obrazów i tysiąc innych rzeczy.
W lokalnym środowisku to wszystko może być zbędne, zależnie od tego, co testujesz.
Przejrzałem więc listę pluginów i wyłączyłem te, których w tamtym momencie nie potrzebowałem do pracy.
Pytanie było takie:
Czy potrzebuję tego pluginu aktywnego do tego, co robię teraz?
Jeśli odpowiedź brzmiała nie, wyłączałem go.
W moim przypadku:
- Pluginy do backupu.
- Pluginy Genesis.
- Pluginy bezpieczeństwa.
- Pluginy cache.
- Pluginy analityczne.
- Pluginy uruchamiające zadania cykliczne
Mniej aktywnych pluginów to mniejsze obciążenie, mniej procesów w tle i mniej rzeczy konkurujących o zasoby.
Mimo wszystko nie zauważyłem tutaj dużej poprawy, więc być może warto zostawić ten krok na koniec, jeśli cała reszta nie wystarczy.
5. Wyczyścić bazę danych z shella Local
Ostatnim krokiem było wyczyszczenie bazy danych.
WordPress bardzo łatwo gromadzi śmieci: rewizje, automatyczne szkice, transients wygasłe, komentarze w koszu, spam, osierocone metadane i resztki pluginów.
Żeby to zrobić, otworzyłem shell strony z Local WP:
Local WP > twoja strona > Open Site Shell
Przed czyszczeniem zrobiłem kopię zapasową bazy danych:
wp db export backup-before-cleanup.sql
Potem uruchomiłem ten blok czyszczący:
wp post delete $(wp post list --post_type='revision' --format=ids) --force
wp post delete $(wp post list --post_status='auto-draft' --format=ids) --force
wp post delete $(wp post list --post_status='trash' --format=ids) --force
wp comment delete $(wp comment list --status=spam --format=ids) --force
wp comment delete $(wp comment list --status=trash --format=ids) --force
wp transient delete --expired
wp db query "DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts p ON p.ID = pm.post_id WHERE p.ID IS NULL;"
wp db query "DELETE cm FROM wp_commentmeta cm LEFT JOIN wp_comments c ON c.comment_ID = cm.comment_id WHERE c.comment_ID IS NULL;"
wp db query "DELETE tm FROM wp_termmeta tm LEFT JOIN wp_terms t ON t.term_id = tm.term_id WHERE t.term_id IS NULL;"
wp db query "DELETE um FROM wp_usermeta um LEFT JOIN wp_users u ON u.ID = um.user_id WHERE u.ID IS NULL;"
wp db optimize
Uwaga na jedną rzecz: to zakłada, że prefiks tabel to wp_.
Jeśli jesteś na Windows i ta składnia zmiennej u ciebie nie działa, użyj bezpośrednio prefiksu, który zostanie zwrócony:
wp db prefix
i podmień go ręcznie.
Ten krok nie jest czymś, co robi się beztrosko na produkcji. Lokalnie, z wcześniejszą kopią zapasową, tak.
Wynik
Po tych pięciu krokach Local WP zaczął działać znacznie lepiej. Logiczne, bo mój Ryzen 7 2700 Pro z NMVE i 24GB jest wyraźnie mocniejszy niż serwer produkcyjny.
Dlatego było dla mnie jasne, że warto poświęcić chwilę.
Teraz działa jak trzeba i zaoszczędziłem sobie wielu chwil.
Podsumowanie byłoby takie:
- Sprawdzić, czy Xdebug jest wyłączony.
- Zmienić domenę z .local na .test.
- Wykluczyć foldery Local WP w Windows Defender.
- Wyłączyć niepotrzebne pluginy lokalnie.
- Wyczyścić bazę danych z shella.
Krótko mówiąc, zdjąć balast ze środowiska.
W tym przypadku Local WP nie działa wolno z jednego powodu, tylko przez sumę drobiazgów: rozwiązywanie domeny, antywirus zaglądający do każdego pliku, zbędne pluginy i baza danych pełna resztek.
Nie mierzyłem każdego elementu stoperem, tylko na wyczucie. Dlatego wiem, co u mnie zadziałało.
Teraz mam lokalną kopię, która śmiga jak rakieta, więc skończyły mi się wymówki, żeby pracować na produkcji i nie testować.
A ty, dalej używasz tej samej wymówki?
Najczęstsze pytania
Dlaczego Local WP działa wolno w Windows?
Local WP może działać wolno w Windows z kilku nakładających się powodów: rozwiązywanie lokalnej domeny, antywirus sprawdzający zbyt wiele plików, aktywny Xdebug, niepotrzebne pluginy albo lokalna baza danych pełna resztek. Nie zawsze jest jeden winowajca.
Czy lepiej używać .test niż .local w Local WP?
W wielu przypadkach tak. Zmiana domeny z.localna.testmoże poprawić rozwiązywanie strony lokalnie i uniknąć niepotrzebnych problemów sieciowych. To prosta zmiana i jeśli Local WP działa wolno, warto ją przetestować.
Czy Xdebug może spowalniać Local WP?
Tak. Xdebug jest bardzo przydatny do debugowania PHP, ale jeśli go nie używasz, może dodatkowo obciążać środowisko. Dlatego warto mieć go wyłączonego, chyba że naprawdę robisz debugging.
Czy wykluczanie folderów Local WP w Windows Defender jest bezpieczne?
Można to zrobić ostrożnie. Chodzi nie o wyłączenie antywirusa, lecz o wykluczenie konkretnych folderów lokalnego środowiska, żeby Windows Defender nie sprawdzał stale tysięcy małych plików WordPressa. Rozsądnie jest ograniczyć wykluczenia do ścieżek Local WP i swoich lokalnych stron.
Jakie foldery warto wykluczyć z antywirusa, jeśli używam Local WP?
Najważniejszy zwykle jestC:UsersTWOJ_UZYTKOWNIKLocal Sites, bo tam są twoje lokalne strony, pluginy, motywy, uploads i pliki, których Local WP stale dotyka. Może też mieć sens sprawdzenie wewnętrznych folderów Local wAppDataLocalProgramsLocaliAppDataRoamingLocal.
Czy wyłączenie pluginów poprawia wydajność Local WP?
Może pomóc, choć nie zawsze będzie to najważniejsza zmiana. Lokalnie często zbędne są pluginy do backupów, bezpieczeństwa, cache, analityki, zadań cyklicznych albo integracji zewnętrznych. Jeśli nie potrzebujesz ich do tego, co testujesz, lepiej je wyłączyć.
Jak mogę wyczyścić bazę danych WordPressa w Local WP?
Możesz to zrobić z shella strony za pomocą WP-CLI. Zanim czegokolwiek dotkniesz, warto wyeksportować kopię zapasową poleceniemwp db export. Potem możesz usunąć rewizje, automatyczne szkice, spam, wygasłe transients i osierocone metadane, a na końcu wykonaćwp db optimize.
Czy mogę używać tych komend czyszczenia na produkcji?
Nie beztrosko. Te komendy mają sens lokalnie i z wcześniejszą kopią zapasową. Na produkcji trzeba dokładniej przejrzeć każdą akcję, potwierdzić prefiks tabel i upewnić się, że nie zostanie usunięte nic potrzebnego.
Czy muszę przejść z Local WP na Docker, jeśli działa wolno?
Niekoniecznie. Zanim zmienisz środowisko, warto przetestować proste ustawienia: wyłączyć Xdebug, użyć.test, wykluczyć foldery z antywirusa, zmniejszyć liczbę aktywnych pluginów i wyczyścić bazę danych. W wielu przypadkach wystarczy zdjąć balast ze środowiska.
Które ustawienie może najbardziej poprawić Local WP w Windows?
To zależy od przypadku. W tym artykule najjaśniejsze zmiany to przejście z.localna.testi wykluczenie folderów Local WP w Windows Defender. Poprawa zwykle wynika z połączenia kilku ustawień, a nie z magicznego rozwiązania.

Dodaj komentarz