Pokud plánujete hostovat WordPress na Cloud Server, bude pro vás tento průvodce užitečný. LAMP znamená Linux, Apache, MariaDB and PHP softwaru, které se společně označují jako LAMP stack.
Výhody a nevýhody volby webového serveru Apache oproti NGINX
- Klady: Podporuje soubor .htaccess, který je běžně používán mnoha stránkami Caching & Optimization. To je skvělá volba pro non-coder.
- Nevýhody: Je o něco méně výkonný než NGINX, ale to lze spravovat pomocí APO. Pro stránky s vysokou návštěvností, LEMP szásobník je nejlepší volbou.
Postupujte podle těchto 3 kroků a podívejte se na video. Potřebujete pomoc? Contact me. 😊
Než se pustíte do práce, přinášíme vám krátkou radu.. Použijte Search and Replace Extension k hromadné změně
Tip na úsporu času pro Google Chrome users.example.com
do vlastní domény v této web page.

Část A: Udržujte aktivní jmenné servery Cloudflare
Budeme používat Cloudflare DNS pro získání Let’s Encrypt Wildcard SSL certificate. Tento krok dokončete jako první, abyste si mohli vychutnat migraci bez prostojů..
Zkontrolujte aktuální stav Nameservers
- Své aktivní jmenné servery najdete na adrese https://www.whatsmydns.net/#NS/example.com
- Pokud vidíte, že používáte předchozí Hosting nebo Domain registrar default NS, pak je třeba nahradit Cloudflare.
- Naučte se jak používat Cloudflare DNS
Část B: Příprava serveru Ubuntu Server 22.04 LTS

1. Zaregistrujte se Vultr uchopit $100 Volné kredity (Platnost 14 dní)
Jako někdo, kdo vyzkoušel tolik Cloud server company, moje zkušenost říká, že se nemůžete splést s Vultr. Tito lidé jsou upřímní a pečují o podporu a služby.

⚡ Výkon
- 3rd Generation AMD EPYC™
- NVME / SSD
- Up to 4 GHz CPU
- Up to 5Gbps Network Speed
- Datacenter in America, Europe, Asia, Austraillia
- IPV6 ready
💡 Funkce
- Beginner-Friendly Dashboard
- One-click to Snapshot
- Automtatic Backup (Paid)
- Free Cloud Firewall
- DDoS protection (Paid)
- 100% KVM Virtualization
⚙ Podpora
- PayPal/Card
- 24/7 Ticket Support
- Documentation
2. Deloy a New Server
Stačí kliknout na plus button začít

3. Vyberte si Server type
Vyberte Cloud Compute for shared CPU v dostupných cenách.

Poté můžete v části Technologie procesoru a úložiště vybrat možnost AMD High Performance nebo Intel High Frequency. Má nejrychlejší procesor a disk NVMe vůbec. Pokud je rozpočet nižší, zvolte plán Regular s procesorem Intel, ve kterém získáte disk SSD.

Vyberte si umístění serveru
Vultr nabízí server na čtyřech kontinentech. Pro dosažení nejnižší latence a nejlepšího výkonu byste měli vždy zvolit region, který je vašemu publiku nejblíže.

Pokud například 99 % vašeho provozu pochází z Evropy, vyberte nejbližší region – Německo.
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. Vyberte Server Image > Operating System > Ubuntu 22.04 LTS x64

Dlouhodobá podpora (LTS) je politika správy životního cyklu produktu, při níž je stabilní vydání počítačového softwaru udržováno po delší dobu než standardní vydání.

6. Vyberte si Server Size

$6/mo plán by byl skvělým výchozím bodem pro nový blog. Kdykoli můžete upgradovat podle potřeby.
Tip: Pokud migrujete, zkontrolujte Total installation size in Site health info.

7. Enable IPV6, Backup

8. Přidat a SSH key
Jedná se o doporučený, volitelný krok pro enhanced security.

- Klikněte na Přidat nový tlačítko pro přidání nového SSH key odeslat své 🔒Public key.
- Generujte klíče pomocí níže uvedené metody podle vašeho operačního systému.

- Stáhnout PuTTy application.
- Vyhledávání PuTTygen in the Start menu
- Klikněte na Generate button and hover mouse pointer
- Copy Public key and provide to Vultr
- Enter key passphrase
- Save 🔑Private Key at the safest location.
- To lze použít pro přihlášení k SSH nebo SFTP.

- Run:
ssh-keygen -t rsa
. For a more secure 4096-bit key, run:ssh-keygen -t rsa -b 4096
- Po dotazu, kam chcete klíč uložit, stiskněte enter (použije se výchozí umístění).
- Enter a passphrase for your key.
- Run
cat ~/.ssh/id_rsa.pub
– this will give you the key in the proper format to paste into the control panel. - Make sure you backup the
~/.ssh/id_rsa
file. This cannot be recovered if it is lost.
Vyberte si svůj SSH key
Po provedení těchto kroků připojíte public key do vašeho nového Instance. Pak, se budete moci přihlásit to SSH using Plain Text password and SSH key both.

9. Link Web Firewall rule to Server Instance

- Click on Manage and create a new Firewall Group.
- Allow TCP port 22 for SSH. 80 for HTTP and 443 HTTPS for IPV4 and IPV6 rules both.
- Po dokončení, link the Firewall group to your Instance.


10. Enter Hostname and label click Deploy Now

Nyní uvidíte instalaci v průběhu

11. Go to New Instance page
Copy IP address, username and password. Your default port is 22.

12. Disable Password Login
For security reasons, doporučuje se disable password authentication a povolit pouze key based authentication.
- Edit the configuration file
nano /etc/ssh/sshd_config
- Find (CTRL + W) and search
PasswordAuthentication
- Change value from yes to no
- To save type, CTRL + O
- Restart the SSH service using command
sudo service ssh restart

From the next time, you can use SSH via key only as shown in the video.
For Linux or Mac, use Terminal with command like this
ssh root@192.168.1.1 -p 22 -i id_rsa
Step 13. Disable UFW
When you deploy a new instance at VULTR it comes with UFW (Uncomplicated Firewall) enabled that keeps all ports blocked except the SSH port 22. This can return ERR_CONNECTION_REFUSED
Error in the browser. To fix this, I would suggest keeping UFW disabled.
ufw disable
Nyní urychlím původní proces nasazení WordPressu na stoh LAMP.
Část C. Nasazení WordPressu na LAMP Stack
1. Update repositories
Type below command and press enter key
sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot
or
wget -qO update https://dl.gulshankumar.net/update && chmod +x update
Příště vždy použijte níže uvedený příkaz pro aktualizaci.
./update
2. Install MariaDB with security
Login again and enter following command
sudo apt install mariadb-server -y && sudo mysql_secure_installation
Odpovězte na níže uvedené otázky
- Enter current password for root (enter for none): Stiskněte klávesu Enter
- Switch to unix_socket authentication [Y/n]: n
- Set root password? [Y/n]: Stiskněte klávesu Enter.
- New password: Zadejte heslo, které můžete vygenerovat pomocí služby Dashlane. Klikněte pravým tlačítkem myši na možnost vložit.
- Re-enter new password: Znovu zadejte heslo.
Po úspěšném nastavení hesla se zobrazí
Password updated successfully! Reloading privilege tables.. ... Success!
Dále je třeba odpovědět na následující otázky.
Remove anonymous users? [Y/n]: Stiskněte klávesu Enter.
Disallow root login remotely? [Y/n]: Stiskněte klávesu Enter.
Remove test database and access to it? [Y/n]: Stiskněte klávesu Enter.
Reload privilege tables now? [Y/n]: Stiskněte klávesu Enter.
3. Create a new Database for WordPress
Login to MySQL, press enter key when it asks for password.
mysql -u root -p
Create a new Database, and Grant Privileges to use its user with password. This is where WordPress store all post, pages, themes, plugin, etc information.
create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;
Where your …
database is wordpress
username is gulshan
password is 5pY8CKJxDRJEGQNkX7
Tip: Zvažte použití jedinečného přihlašovacího pověření
4. Install PHP 8.2, Apache2 and set Permission
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/
Tweak PHP Configuration
Most fancy theme and plugin requires high-end PHP configuration to run. Therefore, we should make this changes.
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. Install Wildcard Let’s Encrypt SSL Certificate
Create a cloudflare.ini
file inside /root/.secrets/
directory.
mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini
Add below code and save using CTRL+O and exit using CTRL+X
dns_cloudflare_email = "your-cloudflare-email@example.com"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"
Find your Cloudflare e-mail and Global API key at „My Profile“ > API Tokens > Global API Key
chmod 0400 /root/.secrets/cloudflare.ini
Install Certbot and DNS Authenticator according to OS and HTTP web server
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
Get Wildcard SSL Certificate
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01
Set Automatic Renewal using Cron Job
- Type
crontab -e
- Type 1 for nano editor
- Enter below command and save
0 0 * * * /etc/init.d/apache2 reload >/dev/null 2>&1
Test renewal
certbot renew --dry-run
Activate these useful modules
a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2
6. Create App Directory pro každý web WordPress, který chcete nainstalovat
mkdir -p /var/www/example.com/public
Toto bude váš kořenový dokument path in your Apache Configuration file. Důvod vytvoření example.com inside www is to keep each site organized way. Second, Vytvořil jsem public directory s cílem udržet tam všechny základní soubory WordPressu, ale wp-config.php
one level up (/var/www/example.com/)
.
7. Create Apache2 Configuration
This is important where you need configure your domain, how Apache2 should handle your HTTP requests.
Delete default server blocks configuration files of 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
Nyní, Create a new server block configuration files. Tento krok musíte provést pokaždé, když chcete přidat nový WordPress na stejný server..
Vyměňte prosím example.com s vlastní doménou a nezapomeňte ukončit název konfiguračního souboru znakem .conf extension. Jinak nebude fungovat.
cd /etc/apache2/sites-available/
nano example.com.conf
- Replace
example.com
with own domain - Enter below code and Press ctrl+o to save and ctrl+x to exit.
##############################################################
#
# POZNÁMKY: Laskavě proveďte vyhledání a nahrazení example.com na vlastní doménu.
#
##############################################################
# Budeme vynucovat HTTPS newww
# Pokud chcete HTTPS www, ponechte v posledním řádku https://www.example.com/.
# Jinak se můžete setkat s problémem smyčky přesměrování.
<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
# Doporučeno pro uživatele služby Cloudflare
# RemoteIPHeader X-Forwarded-For
# Cesta ke kořenovému dokumentu (věnujte pozornost této cestě, abyste se vyhnuli 404)
DocumentRoot /var/www/example.com/public
# Cesta k protokolům je /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
# Povolení použití souboru .htaccess k přepsání konfigurace
<Directory /var/www/example.com/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Blokování provádění PHP uvnitř adresáře Uploads
<Directory /var/www/example.com/public/wp-content/uploads>
<Files *.php>
deny from all
</Files>
</Directory>
# Protect wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# HTTP Auth pro další zabezpečení
# Pokud chcete HTTP Auth pro přihlašovací stránku WordPressu, odkomentujte tento blok kódu.
# Pokud tak učiníte, musíte také vygenerovat soubor .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>
# Blokování XML-RPC pro zabránění útoku DDoS.
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# Zpracování spuštění PHP
<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.
To activate server block, enter the command
Před spuštěním níže command, prosím, vyměňte example.com
to own domain.
a2ensite example.com.conf
Test configuration (optional)
apache2 -t
Restart and update
service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y
8. Install WordPress files
Download WordPress files in /var/www/example.com/public/
directory and set permission.
cd /var/www/example.com/public/ && wget https://wordpress.org/latest.tar.gz && tar -xvzf latest.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf latest.tar.gz wordpress && chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
To update permission in future, use below command. This will set www-data for everything inside /var/www/
directory
chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/
9. Updating DNS
Pokud hostujete WordPress lokálně, chcete obejít proxy server nebo chcete provést migraci bez prostojů, je tento krok užitečný. Obecně dávám přednost v případě Static WordPress Dev area. 😉
- Systém DNS lze nasměrovat dvěma způsoby. Pokud migrujete stránky na Vultr a chcete je nejprve otestovat lokálně, upravte soubor hosts a nasměrujte jej tam.
For Windows
- Go to properties of C:\Windows\System32\drivers\etc\hosts
- Change „Security“ permission to full control for your current Username
- Now you can freely edit the hosts file under your System user and save it.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com
Příklad, takto by to mělo vypadat
For Mac or Linux
You can edit hosts file using this command under sudo user.
sudo nano /etc/hosts
Updating DNS with Cloudflare
- Pokud vše vypadá perfektně a chcete svůj web spustit., Login to Cloudflare DNS and update new IP.
Record Type | Name | Value |
---|---|---|
A | @ | IPV4 |
AAAA | @ | IPV6 |
CNAME | www | example.com |
where @
denotes root domain example.com
9. Visit your domain name to setup WordPress
If you want to keep non-www version domain for your WordPress then visit non-www version else www.
https://example.com
- Provide Database login credential to begin WordPress Setup
- Run Installation
- Fill up Basic details of your new Site and Install WordPress.
- Login to WordPress
Other neccessary things
- Increase the Swap Memory to deal with sudden load
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
- Ujistěte se, že používáte plugin pro ukládání do mezipaměti, abyste měli pod kontrolou zatížení serveru. Protože se jedná o stack LAMP, doporučil bych vám WP Fastest Cache.
- Vždy mějte zálohu.
- Use SMTP plugin Services for sending outgoing email of WordPress jinak nebudete moci přijímat password reset link, contact form 7 messages.
Konečně byla dokončena instalace WordPress.
Velmi si vážím vašeho drahocenného času, který jste věnovali čtení tohoto článku. Uvidíme se v dalším tutoriálu!