WordPress je bezplatný, open-source a nejrozšířenější redakční systém na světě. Je to velmi výkonná platforma pro blogování, kterou lze použít k hostování blogu, webových stránek portfolia a platformy elektronického obchodu. WordPress používá Apache/Nginx jako webový server, MariaDB/MySQL jako databázi a zpracování PHP. WordPress poskytuje obrovské množství témat a pluginů, které lze použít k přizpůsobení jeho funkčnosti.
V tomto tutoriálu vysvětlíme, jak nainstalovat WordPress s Nginx na server CentOS 8 a poté server zabezpečíme pomocí bezplatného certifikátu Let's Encrypt SSL.
Předpoklady
- Server se systémem CentOS 8.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
- Platný název domény odkazuje na IP adresu vašeho serveru.
Začínáme
Ve výchozím nastavení je SELinux povolen na serveru CentOS 8. Nejprve jej tedy budete muset deaktivovat.
Můžete to udělat úpravou souboru /etc/selinux/config:
nano /etc/selinux/config
Proveďte následující změny:
SELINUX=disabled
Uložte a zavřete soubor. Poté restartujte server, aby se změny projevily.
Instalovat LEMP Server
Než začnete, budete muset na svůj server nainstalovat Nginx, MariaDB, PHP a další požadované balíčky. Všechny je můžete nainstalovat spuštěním následujícího příkazu:
yum install nginx php php-cli php-curl php-zip php-mbstring php-mysqlnd php-fpm curl unzip mariadb-server -y
Jakmile jsou všechny balíčky nainstalovány, spusťte Nginx, PHP-FPM, službu MariaDB a povolte jejich spuštění po restartu systému:
systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpm
Stav služby PHP-FPM můžete také zkontrolovat pomocí následujícího příkazu:
systemctl status php-fpm
Měli byste získat následující výstup:
? php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago Main PID: 1475 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 6 (limit: 5060) Memory: 28.5M CGroup: /system.slice/php-fpm.service ??1475 php-fpm: master process (/etc/php-fpm.conf) ??1478 php-fpm: pool www ??1479 php-fpm: pool www ??1480 php-fpm: pool www ??1481 php-fpm: pool www ??1482 php-fpm: pool www Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager... Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.
Jakmile to uděláte, můžete přejít k dalšímu kroku.
Konfigurace databáze WordPress
Ve výchozím nastavení není server MariaDB zabezpečen. Nejprve jej tedy musíte zajistit. Můžete jej zabezpečit pomocí následujícího příkazu:
mysql_secure_installation
Odpovězte na všechny otázky, jak je uvedeno níže:
Enter current password for root (enter for none): Set root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Po zabezpečení byste měli získat následující výstup:
Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Dále se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Po zobrazení výzvy zadejte heslo uživatele root a poté vytvořte databázi a uživatele pro WordPress pomocí následujících příkazů:
MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to 'wpuser'@'localhost' identified by 'password';
Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Jakmile je vaše databáze nakonfigurována, můžete přejít k dalšímu kroku.
Stáhnout WordPress
Nejnovější verzi WordPressu si můžete stáhnout pomocí následujícího příkazu:
cd /var/www/html
wget https://wordpress.org/latest.tar.gz
Po stažení rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf latest.tar.gz
Dále změňte vlastnictví adresáře wordpress na nginx:
chown -R nginx: /var/www/html/wordpress/
Dále změňte adresář na wordpress a přejmenujte výchozí konfigurační soubor wordpress:
cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php
Dále upravte soubor wp-config.php ve svém oblíbeném textovém editoru:
nano wp-config.php
Definujte informace o své databázi, jak je uvedeno níže:
/** The name of the database for WordPress */ define( 'DB_NAME', 'wpdb' ); /** MySQL database username */ define( 'DB_USER', 'wpuser' ); /** MySQL database password */ define( 'DB_PASSWORD', 'password' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' );
Po dokončení uložte a zavřete soubor.
Konfigurace Nginx pro WordPress
Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Nginx, který bude sloužit WordPress. můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/nginx/conf.d/wordpress.conf
Přidejte následující řádky:
server { listen 80; server_name example.com; root /var/www/html/wordpress; index index.php; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; } }
Uložte a zavřete soubor. Poté pomocí následujícího příkazu zkontrolujte nginx, zda neobsahuje nějakou chybu syntaxe:
nginx -t
Měli byste získat následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Nakonec restartujte službu Nginx, abyste použili změny konfigurace:
systemctl restart nginx
Přístup k ovládacímu panelu WordPress
WordPress je nainstalován a nakonfigurován, nyní je čas vstoupit do webového rozhraní.
Otevřete webový prohlížeč a zadejte adresu URL http://example.com . Budete přesměrováni na následující stránku:
Zadejte všechny požadované informace, jako je název webu, uživatelské jméno správce, heslo, e-mail správce a klikněte na Instalovat WordPress knoflík. Po dokončení instalace. Měli byste vidět následující stránku:
Klikněte na přihlášení knoflík. Budete přesměrováni na přihlašovací stránku WordPress:
Zadejte své administrátorské uživatelské jméno, heslo a klikněte na Přihlásit se knoflík. Na následující stránce byste měli vidět řídicí panel WordPress:
Zabezpečte WordPress pomocí Let's Encrypt
Chcete-li zabezpečit svůj web WordPress pomocí bezplatného SSL Let's Encrypt, budete si muset do systému nainstalovat klienta Certbot Let's Encrypt. Ve výchozím nastavení není Certbot dostupný ve výchozím úložišti CentOS 8. Budete si jej tedy muset stáhnout z oficiálních stránek Certbot.
Certbot si můžete stáhnout a nainstalovat pomocí následujících příkazů:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Nyní spusťte následující příkaz, abyste získali a nainstalovali certifikát SSL pro svůj web WordPress.
certbot-auto --apache -d example.com
Budete požádáni o zadání e-mailové adresy a souhlas s podmínkami služby. Budete si také muset vybrat, zda chcete přesměrovat provoz HTTP na HTTPS. Vyberte prosím příslušnou možnost a stiskněte Enter. Po úspěšném dokončení instalace byste měli získat následující výstup:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-08-14. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Nastavit automatické obnovení šifrováním
Certifikát Let's Encrypt má platnost 90 dní. Proto se doporučuje obnovit certifikát před vypršením platnosti. Úlohu Cron můžete nastavit tak, aby se certifikát obnovoval automaticky.
Chcete-li tak učinit, vytvořte crontab pomocí následujícího příkazu:
crontab -e
Přidejte následující řádek:
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew
Po dokončení uložte a zavřete soubor.
Závěr
Ve výše uvedeném tutoriálu jsme se naučili, jak nainstalovat a nakonfigurovat WordPress s Nginx na serveru CentOS. Také jsme se naučili, jak zabezpečit web WordPress pomocí bezplatného šifrování SSL. Doufám, že nyní můžete snadno hostovat svůj vlastní web WordPress.