Jeśli planujesz hostować WordPress na Cloud Serverze, ten poradnik będzie dla Ciebie pomocny. LAMP oznacza oprogramowanie Linux, Apache, MariaDB i PHP, które połączone razem znane jest jako stos LAMP.
Zalety i wady wyboru serwera Apache zamiast NGINX
- Pros: Obsługuje plik .htaccess, który jest powszechnie używany przez wielu Page Caching & Optimization. Jest to świetny wybór dla nie-koderów.
- Cons: Jest nieco mniej wydajny niż NGINX, ale można nim zarządzać za pomocą APO. Dla witryny o dużym ruchu, stos LEMP jest najlepszym wyborem.
Wykonaj te 3 kroki i obejrzyj film. Potrzebujesz pomocy? Kontaktuj się ze mną. 😊
Teraz zanim zaczniesz, oto szybka wskazówka. Użyj Search and Replace Extension, aby masowo zmienić
Wskazówka oszczędzająca czas dla użytkowników Google Chrome.example.com
na własną domenę na tej stronie.

Część A: Utrzymuj aktywny Cloudflare Nameservers
Będziemy używać Cloudflare DNS do uzyskania certyfikatu Let’s Encrypt Wildcard SSL. Wykonaj ten krok jako pierwszy, aby cieszyć się migracją bez przestojów.
Sprawdź aktualne nameservers
- Znajdź swoje aktywne nameservers na stronie https://www.whatsmydns.net/#NS/example.com
- Jeśli widzisz, że używasz swojego poprzedniego hostingu lub rejestratora domen domyślnego NS, to musisz zastąpić go Cloudflare.
- Dowiedz się jak korzystać z Cloudflare DNS
Część B: Przygotuj serwer Ubuntu 22.04 LTS

1. Zarejestruj się w Vultr, aby otrzymać 100$ darmowych kredytów (ważne przez 14 dni)
Jako ktoś, kto wypróbował tak wiele firm oferujących serwery w chmurze, moje doświadczenie mówi, że nie można się pomylić z Vultr. Ci ludzie są autentyczni i troskliwi, jeśli chodzi o wsparcie i usługi.

⚡ Wydajność
- 3rd Generation AMD EPYC™
- NVME / SSD
- Up to 4 GHz CPU
- Up to 5Gbps Network Speed
- Datacenter in America, Europe, Asia, Austraillia
- IPV6 ready
💡 Cechy
- Deska rozdzielcza przyjazna dla początkujących
- Jedno kliknięcie, aby wykonać migawkę
- Automtatic Backup (płatny)
- Darmowy Cloud Firewall
- Ochrona przed DDoS (płatna)
- 100% wirtualizacji KVM
⚙ Wsparcie
- PayPal/Card
- Obsługa biletów 24/7
- Dokumentacja
2. Deloy a New Server
Wystarczy kliknąć na przycisk plus, aby rozpocząć pracę

3. Wybierz typ serwera
Wybierz Cloud Compute dla współdzielonego CPU w przystępnych cenach.

Następnie trzeba wybrać CPU & Storage Technology, można zdecydować się na „AMD High Performance”.

4. Wybierz lokalizację serwera.
Vultr oferuje serwer na czterech kontynentach. Aby uzyskać najniższe opóźnienia i najlepszą wydajność, powinieneś zawsze wybierać region, który jest najbliżej Twoich odbiorców.

Na przykład, jeśli 99% ruchu pochodzi z Indii wybierz najbliższy region – Mumbai.
Asia
- Mumbai, India
- Delhi NCR, India
- Bengaluru, India
- Singapore, Singapore
- Tokyo, Japan
- Seoul, South Korea
America
- Miami, United States
- Atlanta, United States
- Chicago, United States
- Dallas, United States
- Honolulu, United States
- Los Angeles, United States
- Mexico City, Mexico
- New York (NJ), United States
- Seattle, United States
- Silicon Valley, United States
- Toronto, Canada, São Paulo
Europe
- Stockholm, Sweden
- London, United Kingdom
- Amsterdam, Netherlands
- Frankfurt, Germany
- Madrid, Spain
- Paris, France
- Warsaw, Poland
Australlia
- Sydney, Australlia
- Melbourne, Australia
5. Wybierz Obraz serwera > System operacyjny > Ubuntu 22.04 LTS x64

Wsparcie długoterminowe (LTS) to polityka zarządzania cyklem życia produktu, w której stabilne wydanie oprogramowania komputerowego jest utrzymywane przez dłuższy okres czasu niż wydanie standardowe.

6. Wybierz rozmiar serwera

Plan $6/mo byłby świetnym punktem wyjścia dla nowego bloga. Możesz uaktualnić w dowolnym momencie, jak na wymagania.
Wskazówka: Jeśli przeprowadzasz migrację, sprawdź Całkowity rozmiar instalacji w informacji o stanie witryny.

7. Włącz IPV6, Kopia zapasowa

8. Dodaj klucz SSH
Jest to krok zalecany, opcjonalny dla zwiększonego bezpieczeństwa.

- Kliknij na przycisk Add New, aby dodać nowy SSH key, aby przesłać swój 🔒Public key.
- Wygeneruj klucze za pomocą poniższej metody, zgodnie z systemem operacyjnym.

- Pobierz aplikację PuTTy.
- Wyszukaj PuTTygen w menu Start
- Kliknij na przycisk Generuj i przesuń wskaźnik myszy
- Skopiuj klucz publiczny i przekaż do Vultr
- Wprowadź frazę klucza
- Zapisz 🔑Private Key w najbezpieczniejszym miejscu.
- Może być użyty do logowania do SSH lub SFTP.

- Uruchom:
ssh-keygen -t rsa
. Aby uzyskać bardziej bezpieczny klucz 4096-bitowy, uruchom:ssh-keygen -t rsa -b 4096
- Naciśnij enter, gdy zostaniesz zapytany, gdzie chcesz zapisać klucz (użyje to domyślnej lokalizacji).
- Wprowadź hasło dla swojego klucza.
- Uruchom
cat ~/.ssh/id_rsa.pub
– dzięki temu otrzymasz klucz w odpowiednim formacie do wklejenia do panelu sterowania. - Upewnij się, że wykonałeś kopię zapasową pliku
~/.ssh/id_rsa
. Nie można go odzyskać, jeśli zostanie utracony.
Wybierz swój klucz SSH
Po wykonaniu tych czynności dołączymy Twój klucz publiczny do nowej instancji. Następnie będziesz mógł się zalogować do SSH używając hasła Plain Text i klucza SSH.

9. Powiązanie reguły Web Firewall z instancją serwera

- Kliknij na Manage i utwórz nową Firewall Group.
- Zezwól na port TCP 22 dla SSH. 80 dla HTTP i 443 HTTPS zarówno dla reguł IPV4 jak i IPV6.
- Po wykonaniu tych czynności, połącz grupę Firewall z Twoją instancją.


10. Wpisz nazwę hosta i etykietę kliknij Deploy Now

Teraz zobaczysz instalację w postępie

11. Przejdź do strony Nowa instancja
Skopiuj adres IP, nazwę użytkownika i hasło. Twój domyślny port to 22.

12. Wyłączenie logowania na hasło
Ze względów bezpieczeństwa zaleca się wyłączenie uwierzytelniania za pomocą hasła i zezwolenie na uwierzytelnianie oparte na kluczach.
- Edytuj plik konfiguracyjny
nano /etc/ssh/sshd_config
- Znajdź (CTRL + W) i wyszukaj
PasswordAuthentication
- Zmiana wartości z tak na nie
- Aby zapisać typ, CTRL + O
- Uruchom ponownie usługę SSH za pomocą polecenia
sudo service ssh restart

Od następnego razu możesz używać SSH tylko przez klucz, jak pokazano na filmie.
Dla Linuxa lub Maca, użyj Terminala z poleceniem jak poniżej
ssh root@192.168.1.1 -p 22 -i id_rsa
Krok 13. Wyłączenie UFW
Kiedy wdrażasz nową instancję w VULTR, jest ona dostarczana z włączonym UFW (Uncomplicated Firewall), który blokuje wszystkie porty oprócz portu SSH 22. To może zwrócić ERR_CONNECTION_REFUSED
Error w przeglądarce. Aby to naprawić, sugerowałbym utrzymanie UFW w stanie wyłączonym.
ufw disable
Teraz przyspieszę oryginalny proces wdrażania WordPress na stosie LAMP.
Część C. Wdrożenie WordPress na stosie LAMP.
1. Aktualizacja repozytoriów
Wpisz poniższe polecenie i naciśnij klawisz Enter
sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot
lub
wget -qO update https://dl.gulshankumar.net/update && chmod +x update
Następnym razem zawsze używaj poniższego polecenia skrótu do aktualizacji.
./update
2. Zainstaluj MariaDB z zabezpieczeniami
Zaloguj się ponownie i wprowadź następujące polecenie
sudo apt install mariadb-server -y && sudo mysql_secure_installation
Odpowiedz na poniższe pytania
- Enter current password for root (enter for none): Naciśnij klawisz Enter
- Switch to unix_socket authentication [Y/n]: Wpisz n i naciśnij klawisz Enter.
- Set root password? [Y/n]: Naciśnij klawisz Enter.
- New password: Skopiuj silne hasło z Generatora haseł Dashlane. Aby wkleić hasło w konsoli SSH, kliknij prawym przyciskiem myszy i naciśnij klawisz Enter. Hasło nie będzie widoczne na ekranie.
- Re-enter new password: Right-click and press the Enter key again.
Po pomyślnym ustawieniu hasła, zobaczysz
Password updated successfully! Reloading privilege tables.. ... Success!
Należy również odpowiedzieć na następujące pytania.
- Remove anonymous users? [Y/n]: Naciśnij klawisz Enter
- Disallow root login remotely? [Y/n]: Naciśnij klawisz Enter
- Remove test database and access to it? [Y/n]: Naciśnij klawisz Enter
- Reload privilege tables now? [Y/n]: Naciśnij klawisz Enter
3. Utwórz nową bazę danych dla WordPress
Zaloguj się do MySQL, naciśnij klawisz enter, gdy zapyta o hasło.
mysql -u root -p
Utwórz nową bazę danych i przyznaj uprawnienia do korzystania z jej użytkownika z hasłem. To tutaj WordPress przechowuje wszystkie posty, strony, motywy, wtyczki itp. informacje.
create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;
Gdzie twój…
baza danych to wordpress
nazwa użytkownika to gulshan
hasło to 5pY8CKJxDRJEGQNkX7
Wskazówka: Rozważ użycie unikalnego poświadczenia logowania
4. Zainstaluj PHP 8.2, Apache2 i ustaw uprawnienia
sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/
Poprawić konfigurację PHP
Większość wymyślnych motywów i pluginów wymaga wysokiej klasy konfiguracji PHP do uruchomienia. Dlatego powinniśmy wprowadzić te zmiany.
sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart
5. Zainstaluj certyfikat Wildcard Let’s Encrypt SSL
Utwórz plik cloudflare.ini
wewnątrz katalogu /root/.secrets/
mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini
Dodaj poniższy kod i zapisz go używając CTRL+O i wyjdź używając CTRL+X
dns_cloudflare_email = "your-cloudflare-email@example.com"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"
Znajdź swój e-mail Cloudflare i globalny klucz API w „Mój profil” > Tokeny API > Globalny klucz API
chmod 0400 /root/.secrets/cloudflare.ini
Zainstaluj Certbot i DNS Authenticator zgodnie z systemem operacyjnym i serwerem internetowym HTTP
apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare
Uzyskaj certyfikat Wildcard SSL
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01
Ustaw automatyczne odnawianie przy użyciu zadania Cron
- Typ
crontab -e
- Typ 1 dla edytora nano
- Wpisz poniższe polecenie i zapisz
0 0 * * * /etc/init.d/apache2 reload >/dev/null 2>&1
Odnowienie badania
certbot renew --dry-run
Aktywuj te przydatne moduły
a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2
6. Utwórz App Directory dla każdej witryny WordPress, którą chcesz zainstalować
mkdir -p /var/www/example.com/public
Będzie to ścieżka do głównego dokumentu w pliku konfiguracyjnym Apache. Powodem utworzenia example.com wewnątrz www jest to, że każda witryna jest zorganizowana w ten sposób. Po drugie, utworzyłem katalog publiczny, aby trzymać tam wszystkie pliki podstawowe WordPressa, ale wp-config.php
jeden poziom wyżej (/var/www/example.com/)
.
7. Tworzenie konfiguracji Apache2
Jest to ważne, gdy trzeba skonfigurować domenę, jak Apache2 powinien obsługiwać żądania HTTP.
Usuń pliki konfiguracyjne bloków domyślnych serwera Apache2
rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars
Teraz, Utwórz nowy blok serwera pliki konfiguracyjne. Musisz wykonać ten krok za każdym razem, gdy chcesz dodać nowy WordPress na tym samym serwerze.
Proszę zamienić example.com na własną domenę i nie zapomnieć zakończyć nazwy pliku konfiguracyjnego rozszerzeniem .conf. W przeciwnym razie nie będzie działać.
cd /etc/apache2/sites-available/
nano example.com.conf
- Zastąpić
example.com
własną domeną - Wpisz poniższy kod i naciśnij ctrl+o, aby zapisać i ctrl+x, aby wyjść.
##############################################################
#
# UWAGI: Kindly make search and replace of example.com to own domain.
#
##############################################################
# Zamierzamy wymusić HTTPS non-www.
# Jeśli chcesz HTTPS www proszę zachować https://www.example.com/ w ostatniej linii.
# W przeciwnym razie możesz napotkać problem pętli przekierowania.
<VirtualHost *:80>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerSignature Off
ServerName example.com
ServerAlias www.example.com
Protocols h2 h2c http/1.1
DirectoryIndex index.php index.html
# Zalecane dla użytkowników Cloudflare
# RemoteIPHeader X-Forwarded-For
# Ścieżka główna dokumentu (Zwróć uwagę na tę ścieżkę, aby uniknąć 404)
DocumentRoot /var/www/example.com/public
# Ścieżka logów to /var/log/apache2/example.com-access.log
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
# Let's Encrypt SSL
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# Pozwól na użycie pliku .htaccess do nadpisania konfiguracji
<Directory /var/www/example.com/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Zablokuj wykonywanie PHP w katalogu Uploads
<Directory /var/www/example.com/public/wp-content/uploads>
<Files *.php>
deny from all
</Files>
</Directory>
# Zabezpiecz wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# HTTP Auth dla dodatkowego bezpieczeństwa
# Jeśli chcesz HTTP Auth dla strony logowania WordPressa to rozważ odkomentowanie tego bloku kodu.
# Jeśli to zrobisz, musisz wygenerować również plik .htpasswd.
# <Files wp-login.php>
# AuthName "Admins Only"
# AuthUserFile /var/www/.htpasswd
# AuthType basic
# require user gulshan
# <RequireAny>
# Require ip 127.0.0.1
# Require valid-user
# </RequireAny>
# </Files>
# Blokuj XML-RPC, aby zapobiec atakowi DDoS.
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# Handle PHP execution
<FilesMatch ".php$">
SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
To save, press CTRL+O and Enter key. Then, exit nano editor using command CTRL+X.
Aby aktywować blok serwera, należy wpisać polecenie
Przed uruchomieniem poniższej komendy, proszę zamienić example.com
na własną domenę.
a2ensite example.com.conf
Konfiguracja badania (opcjonalnie)
apache2 -t
Ponowne uruchomienie i aktualizacja
service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y
8. Zainstaluj pliki WordPress
Pobierz pliki WordPress w katalogu /var/www/example.com/public/
i ustaw uprawnienia.
cd /var/www/example.com/public/ && wget https://pl.wordpress.org/latest-pl_PL.tar.gz && tar -xvzf latest-pl_PL.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf latest-pl_PL.tar.gz wordpress && chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
Aby zaktualizować uprawnienia w przyszłości, użyj poniższej komendy. To ustawi www-data dla wszystkiego co znajduje się w katalogu /var/www/
chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
9. Aktualizacja DNS
Jeśli hostujesz WordPress lokalnie, chcesz ominąć proxy lub chcesz wykonać migrację z zerowym przestojem, ten krok jest przydatny. Ja generalnie preferuję w przypadku Static WordPress Dev area. 😉
- Istnieją dwa sposoby na wskazanie DNS. Jeśli migrujesz stronę do Vultr i chcesz najpierw przetestować ją lokalnie, wtedy edytuj swój plik hosts i wskaż go tam.
Dla Windows
- Przejdź do właściwości
C:\System32\drivers\hosts
- Zmień uprawnienia „Security” na pełną kontrolę dla obecnej nazwy użytkownika
- Teraz możesz swobodnie edytować plik hosts pod swoim użytkownikiem System i zapisać go.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com
Przykład, tak to powinno wyglądać
Dla komputerów Mac lub Linux
Możesz edytować plik hosts za pomocą tego polecenia pod użytkownikiem sudo.
sudo nano /etc/hosts
Aktualizacja DNS za pomocą Cloudflare
- Jeśli wszystko wygląda idealnie i chcesz, aby Twoja strona żyła, Zaloguj się do Cloudflare DNS i zaktualizuj nowe IP.
Record Type | Name | Value |
---|---|---|
A | @ | IPV4 |
AAAA | @ | IPV6 |
CNAME | www | example.com |
gdzie @ oznacza domenę główną example.com
9. Odwiedź swoją nazwę domeny, aby skonfigurować WordPress
Jeśli chcesz zachować domenę wersji non-www dla swojego WordPress to odwiedź wersję non-www inaczej www.
https://example.com
- Podaj poświadczenie logowania do bazy danych, aby rozpocząć konfigurację WordPress
- Uruchomić instalację
- Wypełnij Podstawowe dane swojej nowej Witryny i Zainstaluj WordPress.
- Zaloguj się do WordPress
Inne niezbędne rzeczy
- Zwiększ pamięć Swap, aby poradzić sobie z nagłym obciążeniem
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- Upewnij się, że używasz wtyczki Page Caching, aby utrzymać obciążenie serwera w kontroli. Ponieważ jest to stos LAMP, poleciłbym ci WP Fastest Cache.
- Zawsze trzymaj kopię zapasową.
- Użyj wtyczki SMTP Usługi do wysyłania wychodzących wiadomości e-mail WordPress w przeciwnym razie nie będziesz w stanie odbierać linku resetowania hasła, formularza kontaktowego 7 wiadomości.
Wreszcie instalacja WordPress została zakończona.
Bardzo doceniam Twój cenny czas poświęcony na przeczytanie tego artykułu. Do zobaczenia w kolejnym tutorialu!