Ebben az útmutatóban lépésről lépésre végigvesszük a WordPress telepítését, az Apache konfigurálását és a biztonságos HTTPS beállítását egy VPS környezetben.
Fontos figyelmeztetés
Bár az Arch Linux kiváló rendszer, szerveroldali production környezetben való használata kockázatos a rolling release modell miatt. A folyamatos frissítések kompatibilitási hibákat okozhatnak.
Üzleti célra a Debian vagy Ubuntu LTS ajánlott. A lenti szerverkonfiguráció logikája (Apache, PHP beállítások) ezeken a rendszereken is ugyanígy működik.
Az alábbi útmutató végigvezet a WordPress telepítésén. A célunk egy modern, Brotli tömörítéssel és HTTPS-sel ellátott webszerver beüzemelése a /wp/wordpress könyvtárban.
1. A rendszer előkészítése és csomagok telepítése
Frissítsük az adatbázist és telepítsük a LAMP (Linux, Apache, MySQL, PHP) stack elemeit a pacman segítségével. (Debian/Ubuntu esetén itt az apt install ... parancsot használnánk, de a csomagnevek hasonlóak).
pacman -Syu
pacman -S apache php php-gd php-intl php-apache php-fpm mariadb unzip tar wget certbot certbot-apache
2. A WordPress letöltése
Létrehozzuk a könyvtárat, ahová a weboldal fájljai kerülnek.
cd /
mkdir wp
wget https://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
3. Az Apache webszerver konfigurálása és elemzése
Az Apache konfigurációs fájlja határozza meg, hogyan működik a webszerver. Nyisd meg szerkesztésre:
nano /etc/httpd/conf/httpd.conf
Töröld ki a jelenlegi tartalmat, és illeszd be az alábbi teljes, optimalizált konfigurációt:
# Apache HTTP Server Configuration
ServerRoot "/etc/httpd"
# A szerver a 80-as porton figyel (HTTP)
Listen 80
# Dinamikus Modulok Betöltése (DSO)
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule alias_module modules/mod_alias.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule brotli_module modules/mod_brotli.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule status_module modules/mod_status.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule version_module modules/mod_version.so
# SSL (HTTPS) támogatás betöltése
LoadModule ssl_module modules/mod_ssl.so
# PHP Modul betöltése
LoadModule php_module modules/libphp.so
User http
Group http
ServerAdmin you@example.com
ServerName localhost
# Biztonsági alapbeállítás: Tiltás
AllowOverride none
Require all denied
# A WordPress könyvtárának engedélyezése
DocumentRoot "/wp/wordpress"
Options FollowSymLinks
AllowOverride All
Require all granted
# Index fájlok
DirectoryIndex index.php index.html
# .htaccess védelem
Require all denied
ErrorLog "/var/log/httpd/error_log"
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog "/var/log/httpd/access_log" common
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
# PHP fájlok futtatása
AddType application/x-httpd-php .php
Include conf/extra/php_module.conf
TypesConfig /etc/httpd/conf/mime.types
# Brotli tömörítés bekapcsolása
AddOutputFilterByType BROTLI_COMPRESS text/plain text/css text/html text/xml text/x-component application/x-javascript application/javascript application/json application/xml application/rss+xml application/atom+xml image/svg+xml
# Domain specifikus beállítások
Include conf/extra/yourdomain.com.conf
Miért így állítottuk be?
-
Brotli Tömörítés (mod_brotli):
A fájlban betöltjük a
LoadModule brotli_modulemodult, a végén pedig konfiguráljuk. Ez a Google modern tömörítési eljárása, amely hatékonyabb a régi Gzipnél. A HTML, CSS és JS fájlokat tömörítve küldi a böngészőnek, ami javítja az oldal betöltési idejét és a Google PageSpeed Insights pontszámokat. -
Keresőbarát URL-ek (mod_rewrite):
A
LoadModule rewrite_moduleés a WordPress könyvtárnál beállítottAllowOverride Allteszi lehetővé, hogy a WordPress átírja az URL-eket. Enélkül az aloldalak 404-es hibára futnának. -
Biztonság:
A konfiguráció a legkisebb jogosultság elvét követi. A gyökérkönyvtár (
/) alapból tiltva van (Require all denied), és csak a WordPress mappát engedélyezzük. Emellett aFiles ".ht*"blokk védi a konfigurációs fájlokat a letöltéstől.
4. Domain beállítása (VirtualHost)
Hozzuk létre a domain specifikus fájlt:
nano /etc/httpd/conf/extra/yourdomain.com.conf
Tartalma:
ServerAdmin webmaster@yourdomain.com
DocumentRoot "/wp/wordpress"
ServerName yourdomain.com
ServerAlias www.yourdomain.com
AllowOverride All
Require all granted
ErrorLog "/var/log/httpd/yourdomain.com-error.log"
CustomLog "/var/log/httpd/yourdomain.com-access.log" common
Indítsuk újra az Apache szervert:
systemctl restart httpd.service
5. Adatbázis inicializálása
Arch Linuxon a MariaDB-t kézzel kell inicializálni (Debian/Ubuntu rendszereken ez a lépés általában automatikus):
mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
systemctl start mariadb
sudo mysql -u root -p
Adatbázis és felhasználó létrehozása:
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO "wp-user"@"localhost" IDENTIFIED BY "choose_db_password";
FLUSH PRIVILEGES;
EXIT;
6. SSL
A böngészőben nyisd meg a telepítést a fenti adatokkal (Adatbázis: wordpress, Felhasználó: wp-user, Jelszó: choose_db_password). Végül aktiváld az ingyenes SSL tanúsítványt:
sudo certbot --apache
Sikeres telepítést! Ha inkább a tartalomra koncentrálnál, vedd igénybe szerver karbantartás vagy teljeskörű weboldal karbantartás szolgáltatásomat.