Tento tutoriál vám ukáže, jak nainstalovat WordPress na Ubuntu 20.04 s Nginx, MariaDB a PHP7.4 (LEMP Stack). WordPress je nejpopulárnější CMS (Content Management System) na světě. Odhaduje se, že více než třetina webových stránek dnes využívá WordPress. PHP7.4 se stalo součástí úložiště Ubuntu 20.04 a WordPress s ním běží perfektně.
Předpoklad
Abyste mohli postupovat podle tohoto návodu, musíte mít server Ubuntu 20.04 s alespoň 1 GB RAM. Pokud hledáte VPS (virtuální soukromý server), můžete kliknout na tento speciální odkaz a získat kredit 50 $ zdarma na DigitalOcean. (Pouze pro nové uživatele). Pokud již jste uživatelem DigitalOcean, můžete kliknout na tento speciální odkaz a získat kredit 50 $ zdarma na Vultr (pouze pro nové uživatele).
Potřebujete také název domény, aby návštěvníci mohli zadat název domény do adresního řádku webového prohlížeče, aby se dostali na váš web. Zaregistroval jsem své doménové jméno na NameCheap, protože cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.
Tento tutoriál předpokládá, že jste již nastavili zásobník LEMP na Ubuntu 20.04. Pokud ne, podívejte se prosím na následující návod.
- Jak nainstalovat LEMP Stack (Nginx, MariaDB, PHP7.4) na Ubuntu 20.04
Po dokončení instalace LEMP se vraťte sem a čtěte dále.
Krok 1:Stáhněte si WordPress
SSH do vašeho serveru Ubuntu 20.04 a aktualizujte stávající software.
sudo apt update && sudo apt upgrade
Dále přejděte na stránku stahování wordpress.org a stáhněte si archiv zip. Přímý odkaz ke stažení můžete získat kliknutím pravým tlačítkem na tlačítko stahování a výběrem copy link location
.
Poté do příkazového řádku zadejte wget následovaný přímým odkazem ke stažení pro stažení WordPressu na váš server Ubuntu 20.04.
wget https://wordpress.org/latest.zip
Dále rozbalte archiv zip pomocí příkazu níže.
sudo apt install unzip sudo mkdir -p /usr/share/nginx sudo unzip latest.zip -d /usr/share/nginx/
Archiv bude rozbalen do /usr/share/nginx/
adresář. Nový adresář s názvem wordpress
bude vytvořen (/usr/share/nginx/wordpress). Nyní jej můžeme přejmenovat, jak je uvedeno níže, takže je pro nás snadné identifikovat každý adresář. Nahraďte example.com
s vaším skutečným názvem domény.
sudo mv /usr/share/nginx/wordpress /usr/share/nginx/example.com
Krok 2:Vytvořte databázi a uživatele pro web WordPress
Přihlaste se do prostředí MariaDB jako root pomocí následujícího příkazu.
sudo mariadb -u root
nebo
sudo mysql -u root
Jakmile jste přihlášeni, vytvořte databázi pro WordPress pomocí následujícího příkazu. Pojmenoval jsem to wordpress
, ale můžete použít jakýkoli název, například název vašeho webu. (Nevynechávejte středník.)
create database wordpress;
Poté zadejte příkaz níže a vytvořte uživatele databáze pro WordPress. Tento příkaz také uděluje uživateli všechna oprávnění databáze WordPress. Nahraďte wpuser
a your-password
s vaším preferovaným uživatelským jménem a heslem.
grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';
Vypláchněte tabulku oprávnění, aby se změny projevily, a poté opusťte prostředí MariaDB.
flush privileges; exit;
Krok 3:Nakonfigurujte WordPress
Přejděte do svého adresáře WordPress.
cd /usr/share/nginx/example.com/
Zkopírujte ukázkový konfigurační soubor a přejmenujte jej na wp-config.php
.
sudo cp wp-config-sample.php wp-config.php
Nyní upravte nový konfigurační soubor pomocí textového editoru příkazového řádku, jako je Nano.
sudo nano wp-config.php
Najděte následující řádky a nahraďte červené texty názvem databáze, uživatelským jménem a heslem, které jste vytvořili v předchozím kroku.
/** The name of the database for WordPress */ define('DB_NAME', 'database_name_here'); /** MySQL database username */ define('DB_USER', 'username_here'); /** MySQL database password */ define('DB_PASSWORD', 'password_here');
Poté přejděte dolů a vyhledejte následující řádek.
$table_prefix = 'wp_';
Ve výchozím nastavení začíná každý název tabulky databáze WordPress wp_
jako předpona. Důrazně se doporučuje změnit jej na něco jiného, abyste zlepšili zabezpečení. Použijte náhodné znaky jako níže.
$table_prefix = '9OzB3g_';
Uložte a zavřete soubor. Chcete-li soubor uložit v textovém editoru Nano, stiskněte Ctrl+O
a poté stiskněte Enter
potvrdit. Poté stiskněte Ctrl+X
pro ukončení.
Musíme také nastavit uživatele Nginx (www-data
) jako vlastníka adresáře webu WordPress pomocí následujícího příkazu.
sudo chown www-data:www-data /usr/share/nginx/example.com/ -R
Krok 4:Vytvořte blok serveru Nginx pro WordPress
Soubor bloku serveru vytvoříme v /etc/nginx/conf.d/
adresář. Název souboru musí končit .conf
.
sudo nano /etc/nginx/conf.d/example.com.conf
Do souboru vložte následující texty. Nahraďte červené texty vlastním názvem domény. Nezapomeňte vytvořit záznamy A pro název vaší domény ve správci DNS.
server { listen 80; listen [::]:80; server_name www.example.com example.com; root /usr/share/nginx/example.com/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ ^/wp-json/ { rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last; } location ~* /wp-sitemap.*\.xml { try_files $uri $uri/ /index.php$is_args$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; client_max_body_size 20M; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } #enable gzip compression gzip on; gzip_vary on; gzip_min_length 1000; gzip_comp_level 5; gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml; gzip_proxied any; # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
Uložte a zavřete soubor. Poté otestujte konfigurace Nginx.
sudo nginx -t
Pokud je test úspěšný, znovu načtěte Nginx.
sudo systemctl reload nginx
Do adresního řádku prohlížeče zadejte název své domény.
example.com
nebo
example.com/wp-admin/install.php
Zobrazí se průvodce instalací WordPress. Vyberte jazyk.
Pokud se průvodce instalací nezobrazí, pravděpodobně budete muset nainstalovat některá rozšíření PHP7.
sudo apt install php-imagick php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-json php7.4-cli php7.4-curl php7.4-zip
Poté znovu načtěte PHP-FPM a Nginx. Nyní by se měl zobrazit průvodce.
sudo systemctl reload php7.4-fpm nginx
Před zadáním citlivých údajů do průvodce nastavením se doporučuje povolit HTTPS, abyste zabránili únosu provozu.
Krok 5:Povolení HTTPS
Pro šifrování HTTP provozu můžeme povolit HTTPS instalací bezplatného TLS certifikátu vydaného od Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na server Ubuntu 20.04.
sudo apt install certbot python3-certbot-nginx
A spusťte tento příkaz, abyste získali a nainstalovali certifikát TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com
Kde
--nginx
:Použijte plugin Nginx.--agree-tos
:Souhlas se smluvními podmínkami.--redirect
:Vynutit HTTPS přesměrováním 301.--hsts
:Přidejte hlavičku Strict-Transport-Security do každé odpovědi HTTP. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.--staple-ocsp
:Umožňuje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.--email
:E-mail používaný pro registraci a kontakt pro obnovení.-d
za příznakem následuje seznam názvů domén oddělených čárkou. Můžete přidat až 100 názvů domén.
Certifikát by nyní měl být získán a automaticky nainstalován.
Pokud nyní znovu načtete průvodce nastavením WordPress, uvidíte, že HTTP je automaticky přesměrováno na připojení HTTPS.
Krok 6:Dokončete instalaci pomocí průvodce nastavením
Vytvořte si účet správce a klikněte na Instalovat WordPress tlačítko.
A nyní je váš nový web WordPress nainstalován.
Jak přesměrovat www na jiné než www (nebo naopak)
Již jsme povolili přesměrování HTTP na HTTPS, co zbývá udělat, je přesměrovat www na non-www nebo naopak. Je to velmi jednoduché. Jednoduše přejděte na WordPress Dashboard> Nastavení> Obecné a nastavte preferovanou verzi (www nebo bez www) v Adresa WordPress a Adresa webu . Nezapomeňte uvést https://
prefix.
Jak odesílat e-maily ve WordPress
Váš web WordPress potřebuje posílat e-maily, jako jsou e-maily pro registraci účtu, e-maily pro resetování hesla, e-maily s upozorněním na komentáře atd. Namísto použití drahých řešení třetích stran, jako je Gsuite k vytváření profesionálních e-mailových adres pro váš web, můžete postupovat podle tohoto návodu iRedMail a nastavit vytvořte si svůj vlastní poštovní server s vlastním názvem domény, takže můžete mít neomezený počet poštovních schránek a posílat neomezené množství e-mailů, aniž byste museli vydělat peníze.
Všimněte si, že je dobrým zvykem nainstalovat poštovní server a WordPress na dva různé virtuální privátní servery, protože nechcete, aby poštovní server zpomalil rychlost vašeho webu WordPress, a poštovní server unikne IP adresu vašeho webu WordPress, pokud jsou na stejném virtuálním privátním serveru, což znamená, že hackeři mohou obejít jakoukoli CDN (Content Delivery Network), kterou používáte, a spustit DDoS útok přímo na vašem původním serveru.
Jakmile bude váš poštovní server spuštěn, můžete si do WordPressu nainstalovat plugin SMTP, aby se mohl připojit k vašemu poštovnímu serveru a odesílat e-maily. Přejděte na hlavní panel aplikace WordPress -> Pluginy , klikněte na Přidat nový nainstalovat nový plugin.
Poté zadejte WP Mail SMTP ve vyhledávacím poli. Nainstalujte a aktivujte WP Mail SMTP od WPForms plugin.
Znovu načtěte webovou stránku řídicího panelu WordPress, uvidíte WP Mail SMTP na levé liště nabídek. Klikněte na něj a vyberte Nastavení .
Poté přejděte dolů do části Mailer. Ve výchozím nastavení je vybrán PHP mailer. Musíme jej změnit na Jiný SMTP .
Přejděte dolů a budete muset zadat nastavení SMTP.
- Zadejte název hostitele svého poštovního serveru.
- Jako šifrování vyberte TLS.
- Použijte port 587.
- Povolte ověřování.
- Zadejte e-mailovou adresu své domény a heslo.
Po uložení nastavení můžete otestovat odesílání e-mailů tak, že se odhlásíte z ovládacího panelu WordPress a kliknete na ztratili jste heslo odkaz pro odeslání e-mailu pro resetování hesla.
Zvyšte limit velikosti nahrávaného souboru
Ve výchozím nastavení nemohou být soubory, jako jsou obrázky nebo soubory PDF nahrané do knihovny médií WordPress, větší než 2 MB. Chcete-li zvýšit limit velikosti nahrávání, upravte konfigurační soubor PHP.
sudo nano /etc/php/7.4/fpm/php.ini
Najděte následující řádek (řádek 846).
upload_max_filesize = 2M
Změňte hodnotu takto:
upload_max_filesize = 20M
Potom najděte následující řádek (řádek 694).
post_max_size = 8M
Změňte maximální velikost dat POST, která bude PHP akceptovat.
post_max_size = 20M
Uložte a zavřete soubor. Případně můžete spustit následující dva příkazy a změnit hodnotu bez ručního otevírání souboru.
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php.ini
Poté restartujte PHP-FPM.
sudo systemctl restart php7.4-fpm
Nginx také nastavuje limit velikosti nahrávaného souboru. Výchozí maximální limit velikosti nahrávaného souboru stanovený Nginxem je 1 MB. Chcete-li umožnit nahrávání velkých souborů na váš web WordPress, upravte konfigurační soubor Nginx.
sudo nano /etc/nginx/conf.d/example.com.conf
V tomto souboru jsme již nastavili maximální velikost souboru, jak ukazuje
client_max_body_size 2M;
Pokud chcete, můžete jej změnit, například 20 milionů.
client_max_body_size 20M;
Uložte a zavřete soubor. Poté znovu načtěte Nginx, aby se změny projevily.
sudo systemctl reload nginx
Další krok
- Pro správu webu WordPress můžete také použít nástroj příkazového řádku WP-CLI.
- Můžete použít WPScan ke kontrole zranitelností vašeho webu WordPress.
- Pro sledování výkonu vašeho webu WordPress můžete použít Nginx Amplify.
Doufám, že vám tento návod pomohl nainstalovat WordPress na Ubuntu 20.04 s Nginx, MariaDB a PHP7.4 (LEMP stack). Jako vždy, pokud vám tento příspěvek přišel užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂