Přehled
Následující příspěvek představí kroky, jak nainstalovat WordPress s Nginx na Debian 10 a také na Debian 11. Na jednom serveru Debian nainstalujeme a nakonfigurujeme LEMP stack (Nginx, PHP a MariaDB) a nakonec nainstalujeme a spustíme WordPress. Jinými slovy, náš jediný server Debian bude provozovat webový server Nginx, server MariaDB a celkově poběží WordPress.
WordPress lze také nastavit a spustit na více samostatných serverech (samostatný webový server a samostatný databázový server). Pokud potřebujete takové nastavení (se vzdálenou databází), můžete zkontrolovat, jak to nastavit v tomto příspěvku. Další metodou instalace a spuštění WordPressu je Docker, který je popsán v tomto příspěvku.
Nainstalujte potřebné knihovny a balíčky
sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl mariadb-server
Po dokončení instalace spusťte Nginx a MariaDB, pokud nejsou spuštěny, a povolte jim automatické spouštění při spouštění.
sudo systemctl start nginx.service sudo systemctl enable nginx.service sudo systemctl start mariadb.service sydo systemctl enable mariadb.service
Nakonfigurujte databázi
Spusťte a nakonfigurujte server mariadb s databází, uživatelskými a udělovanými oprávněními.
Před tím se nejprve doporučuje spustit zabezpečenou instalaci:
sudo mysq_secure_installation
Když budete vyzváni ke změně hesla root, můžete to přeskočit, ale záleží na tom, zda potřebujete změnit heslo root nebo ne. Se zbytkem dotazovaných otázek můžete pokračovat a přejít na možnost Ano. Podobné jako na obrázku níže:
poté přejděte na databázový server a vytvořte databázi, uživatele a nastavte oprávnění
sudo mysql -u root -p CREATE DATABASE sampledbwp; GRANT ALL ON sampledbwp.* TO 'sample-admin'@'localhost' IDENTIFIED BY 'SamplePassword1'; quit
Pomocí těchto příkazů jsme vytvořili databázi – sampledbwp, vytvořili uživatele sample-admin na localhost a udělili všechna oprávnění ke čtení a zápisu databáze, kterou jsme právě vytvořili.
Nainstalujte a nakonfigurujte WordPress
Přejděte do následujícího adresáře a stáhněte a rozbalte instalaci WordPress:
cd /var/www/html/ sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzfv latest.tar.gz
Přepněte se do adresáře wordpress a přejmenujte soubor wp-config-sample.php na wp-config.php
cd wordpress mv wp-config-sample.php wp-config.php
Nyní upravíme konfigurační soubor WordPress:
sudo nano wp-config.php
V konfiguračním souboru musíme přidat uživatele databáze, název databáze a heslo, které jsme vytvořili na serveru MariaDB a přidat klíče salt z – https://api.wordpress.org/secret-key/1.1/salt/ . Podívejte se na ukázkový obrázek níže:
Uložte a ukončete.
Nastavte správná oprávnění k instalaci WordPress, abyste byli přístupní z internetu:
sudo chown -R www-data:www-data /var/www/html/wordpress sudo chmod -R 755 /var/www/html/wordpress
Nakonfigurujte Nginx
Přechod na konfiguraci webového serveru nginx. Prvním krokem je vytvoření konfiguračního souboru pro web WordPress. Spusťte následující příkaz pro spuštění textového editoru:
sudo nano /etc/nginx/sites-available/wordpress.conf
Níže naleznete ukázkovou konfiguraci:
server { listen 80; listen [::]:80; root /var/www/html/wordpress; index index.php index.html index.htm; server_name mysite.com www.mysite.com; error_log /var/log/nginx/mysite.com_error.log; access_log /var/log/nginx/mysite.com_access.log; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Uložte a ukončete.
Poznámka – Znovu zkontrolujte a potvrďte kořenový adresář vaší instalace wordpress a verzi php-fpm běžící na vašem serveru. Ty se musí shodovat v konfiguračním souboru.
Nakonec by to mělo vypadat nějak takto:
Výchozí konfigurace stále zůstává v Nginx a je aktivní. Dokud nebude odstraněna, vaše konfigurace neproběhne, což znamená, že váš web WordPress nebude dostupný, takže musíme odstranit výchozí konfiguraci:
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Vytvořte symbolický odkaz pro naši novou konfiguraci Nginx wordpress:
sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/
Poté dvakrát zkontrolujte konfiguraci pomocí:
sudo nginx -t
a restartujte Nginx
sudo systemctl restart nginx
Otestujte, zda je v prohlížeči spuštěn WordPress, přistupte k němu buď pomocí adresy IP serveru nebo pomocí adresy URL (pokud jste přiřadili název domény) a dokončete instalaci:
A to je vše. Nyní máte web WordPress v provozu.
Několik návrhů a bezpečnostních tipů
Zde bych rád poukázal na několik návrhů pro bezpečnější a bezpečnější instalaci WordPress a jak ji udržovat.
- Prvním návrhem je smazat – soubor xmlrpc.php
Tento soubor není zásadním bodem WordPressu a WordPress může bez tohoto souboru fungovat bez problémů. Soubor Xmlrpc byl používán v raných fázích WordPressu jako služba, kde se blogoví klienti připojují k WordPress přes xmlrpc a zveřejňují nový obsah (ve zkratce). Tento soubor je nyní příčinou mnoha a různých škodlivých útoků (DDoS, hrubá síla atd.).
V tomto příkladu můžeme tento soubor smazat příkazem:
sudo rm /var/www/html/wordpress/xmlrpc.php
Ještě jedna poznámka – při každé aktualizaci/upgradu WordPressu se tento soubor znovu objeví, takže je nutné opakovat akci při každé aktualizaci WordPressu.
- Smažte soubor wp-config-sample.php
V tomto příspěvku jsme tento soubor přejmenovali na wp-config.php. Udělali jsme to tak, protože jsme ručně přidali přihlašovací údaje k databázi pro WordPress pro připojení k databázovému serveru a přidali také klíče salt. Tento soubor se také znovu objeví při každé aktualizaci/upgradu WordPressu a doporučujeme jej smazat, protože je vystaven mnoha škodlivým útokům, které mohou způsobit odstranění vašeho webu.
- Skryjte adresu URL wp-login a přidejte přihlašovací údaje 2FA
Důrazně se doporučuje změnit výchozí přihlášení k adrese URL, aby se zabránilo útokům hrubou silou a přidat přihlášení pomocí dvoufaktorového ověřování. Můžete to udělat snadno pomocí pluginů, jako jsou – WPS Hide login a miniOrange 2-Factor. Nyní má WordPress ve výchozím nastavení také přihlášení 2FA.
- Přidejte plugin brány firewall a nepoužívejte účet s uživatelským jménem admin
Jedním z prvních zásuvných modulů, které se důrazně doporučuje nainstalovat, je zásuvný modul brány firewall, jako je Wordfence nebo Sucuri
Shrnutí
Probrali jsme kroky, jak nainstalovat WordPress s Nginx na Debian 10 a také na Debian 11. Tento scénář, kdy je WordPress obsluhován s databází na jediném serveru, je dobrou volbou, pokud nyní také začínáte a nemáte další rozpočet na infrastrukturu nebo pokud jste začátečník, který poprvé zkouší WordPress na cloudovém/dedikovaném/VM/VPS hostingu nebo jen pro nějaké testovací účely.
Jednou nevýhodou, kterou to může časem způsobit, je, že pokud máte tento scénář stále ve výrobě, může být poměrně obtížné udržovat server, když je třeba provést upgrady, protože to může způsobit prostoje. To je důvod, proč je běžnou praxí mít alespoň dva servery a oddělit instalaci WordPressu tak, že na jednom serveru je pouze webový server (Nginx nebo Apache) a instalace WordPress a na druhém je databázový server (MariaDB, MySQL). Proces nastavení pro tento druh prostředí si můžete prohlédnout v tomto příspěvku.
Velice vám děkuji za váš čas…