WordPress Telepítése Arch Linux VPS-re - Blog | WeboldalGyarto

WordPress Telepítése Arch Linux VPS-re

Publikálva:

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_module modult, 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ított AllowOverride All teszi 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 a Files ".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.

Van egy jó projekt ötleted?

Ha a cikkek olvasása közben kedvet kaptál saját weboldalad megújításához vagy egy új online projekt indításához, vedd fel velem a kapcsolatot!

Vegyük fel a kapcsolatot!