Nejdřív jsem si v DNS k doméně jisavl22.fun vytvořil záznam pro blog.jisavl22.fun (subdoménu blog). Použil jsem blog jako CNAME na jisavl22.fun, aby to automaticky mířilo na stejný server.
Na serveru jsem si vytvořil webroot pro doménu blog.jisavl22.fun a nastavil vlastnictví adresáře na uživatele Apache (www-data), aby bylo možné později při instalaci WordPressu zapisovat konfigurační soubory (zejména wp-config.php) a pracovat se složkou wp-content.
sudo mkdir -p /var/www/blog.jisavl22.fun/public
sudo chown -R www-data:www-data /var/www/blog.jisavl22.fun
Pak jsem vytvořil nový vhost v Apache. Otevřel jsem konfiguraci v nano:
sudo nano /etc/apache2/sites-available/blog.jisavl22.fun.conf
Vložil jsem tento VirtualHost:
<VirtualHost *:80>
ServerName blog.jisavl22.fun
DocumentRoot /var/www/blog.jisavl22.fun/public <Directory /var/www/blog.jisavl22.fun/public>
AllowOverride All
Require all granted
</Directory> ErrorLog ${APACHE_LOG_DIR}/error_blog.jisavl22.fun.log
CustomLog ${APACHE_LOG_DIR}/access_blog.jisavl22.fun.log combined
</VirtualHost>
Potom jsem vhost zapnul a načetl Apache:
sudo a2ensite blog.jisavl22.fun.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
Další krok byl TLS certifikát pro blog.jisavl22.fun přes Let’s Encrypt (certbot pro Apache). Nainstaloval/spustil jsem:
sudo apt update
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d blog.jisavl22.fun
Aby splnil zadání na přesměrování HTTP na HTTPS přímo přes Redirect, upravil jsem znovu HTTP vhost příkazem:
sudo nano /etc/apache2/sites-available/blog.jisavl22.fun.conf
Do <VirtualHost *:80> jsem přidal řádek:
Redirect permanent / https://blog.jisavl22.fun/
a znovu načetl Apache
Pak jsem připravil databázi pro WordPress v MariaDB:
sudo mariadb
V MariaDB jsem zadal:
CREATE DATABASE wp_blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_bloguser'@'localhost' IDENTIFIED BY '*********';
GRANT ALL PRIVILEGES ON wp_blog.* TO 'wp_bloguser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Na server jsem doinstaloval PHP balíčky, které WordPress typicky používá, a zapnul jsem rewrite kvůli permalinkům:
sudo apt install -y php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl
sudo a2enmod rewrite
sudo systemctl reload apache2
Potom jsem stáhl nejnovější WordPress a nahrál ho do webrootu blog.jisavl22.fun:
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo rm -f /var/www/blog.jisavl22.fun/public/index.html
sudo rsync -a /tmp/wordpress/ /var/www/blog.jisavl22.fun/public/
sudo chown -R www-data:www-data /var/www/blog.jisavl22.fun/public
Následně jsem v prohlížeči otevřel https://blog.jisavl22.fun/ a dokončil prvotní nastavení WordPressu: vybral jazyk, zadal databázové údaje (wp_blog, wp_bloguser, heslo, host localhost) a vytvořil administrační účet + název webu.
Nakonec jsem nastavil permalinky v administraci přes Nastavení → Permalinky a vybral strukturu „Název příspěvku“, aby URL byly čitelné.
S přáním hezkého dne
Vladimír Jiša