WordPress futtatása OpenBSD 6.6-on OpenBSD HTTPD-vel

Bevezetés

Tekintettel az OpenBSD biztonságra való hajlamára, csak a WordPress-webhelyet érdemes vele üzemeltetni, különösen azért, mert a WordPress és a PHP általában mozgó célpontok a script gyerekeknek. Mivel az OpenBSD httpd-jét elsősorban statikus oldalak kiszolgálására tervezték, a POST műveletek a fastcgi és a slowcgi folyamatok számára vannak fenntartva. Ez megnehezíti a szélhámos szereplők számára, hogy esetleg megszakítsák a webszerver folyamatát, és hozzáférjenek az Ön szerveréhez. A POST-műveletek a fastcgi folyamathoz vannak vezetve, és külső értelmezőt használnak. Ez a cikk nemcsak a WordPress-webhely beállítását tárgyalja, hanem néhány alapvető karbantartási technikát, valamint a webhely és annak adatbázisának biztonsági mentését és visszaállítását. Bárhol is látja example.comdomain néven, cserélje ki a saját domainjére.

Kezdeti konfiguráció

Ha még nem tette meg, akkor létre kell hoznia egy /etc/doas.conffájlt. A doas parancs az OpenBSD egyszerű helyettesítője a sudo-nak. A kényelem kedvéért hozzáadtam a nopass opciót, hogy ne kelljen újra beírnia jelszavát doas használatakor. Ha nem szeretné ezt, egyszerűen hagyja ki a nopass-t.

su - echo "permit nopass keepenv :wheel" > /etc/doas.conf

Attól függően, hogy az OpenBSD-t hogyan csomagolták be a telepítéshez, előfordulhat, hogy a csomagkezelőben nincs beállítva tárhely. Az OpenBSD hivatalos adattárának beállításához létre kell hoznunk a /etc/installurlfájlt.

doas su echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl exit

Most hozzá kell adnunk a PHP-t és néhány extra modult, amelyekre a WordPressnek szüksége lesz olyan dolgok kezeléséhez, mint a képek és a titkosítás. Amikor a rendszer kéri, válassza a PHP legújabb csomagjának telepítését. Egy dolgot kell tennie, hogy a modul ini fájljait a mintakönyvtárból a fő könyvtárba másolja. Ezt meg kell tenni a további PHP modulok engedélyezéséhez.

doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli php-zip pecl73-mcrypt pecl73-imagick wget doas cp /etc/php-7.3.sample/* /etc/php-7.3/.

Szerezzen Let's Encrypt tanúsítványokat

A mai világban a webhelyeket SSL-en keresztül kell kiszolgálni, különben a keresőmotorok leértékelődnek. Szerencsére az OpenBSD-nek van egy nagyszerű alkalmazása, az acme-client. Az acme-kliens automatikusan létrehoz egy új privát kulcsot, és új, teljesen érvényes tanúsítványt kér. Az acme-kliens attól függ, hogy van-e webszerver, ezért létre kell hoznunk egy gyors alapértelmezett szerverdefiníciót.

Kedvenc szerkesztőjével hozza létre a /etc/httpd.conf. A többi szerverdefiníciót később adjuk hozzá a fájlhoz. Egyelőre ez elég lesz ahhoz, hogy az acme-client megfelelően működjön.

prefork 5 types { include "/usr/share/misc/mime.types" } server "default" { listen on egress port 80 root "/htdocs" directory index "index.html" location "/.well-known/acme-challenge/*" { request strip 2 root "/acme" } }

Szintén kedvenc szerkesztőjével hozza létre a /etc/acme-client.conf.

authority letsencrypt { api url "https://acme-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-privkey.pem" } authority letsencrypt-staging { api url "https://acme-staging-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-staging-privkey.pem" } domain example.com { alternative names { www.example.com } domain key "/etc/ssl/private/example.com.key" domain full chain certificate "/etc/ssl/example.com.crt" sign with letsencrypt }

Most engedélyeznünk kell és el kell indítanunk a httpd-t. Miután ezt megtettük, futtathatjuk az acme-client-et, és várhatjuk, hogy megkapja a friss, új tanúsítványunkat. Miután ezt megtettük, hozzáadunk egy cron feladatot, amely 7 naponta automatikusan újat kér, így nem kell aggódnunk a lejárat miatt.

doas rcctl enable httpd doas rcctl start httpd doas acme-client -v example.com

Most létrehozzuk a cron feladatot. Adja hozzá ezt a sort a legutolsó bejegyzés alá. Ebben az esetben azt mondjuk az acme-clientnek, hogy minden szombaton 1:00-kor kérje az új tanúsítványt.

doas crontab -e 0 1 * * 6 acme-client -F example.com && rcctl reload httpd

HTTPD konfigurálása WordPresshez

Itt az ideje beállítani a httpd-t a WordPresshez. Ahelyett, hogy webhelyünk definícióját közvetlenül a /etc/httpd.conffájlba helyeznénk el, egy külön nevű fájlba helyezzük el, /etc/httpd.conf.example.comés belefoglaljuk a fő konfigurációs fájlba. Általában jó gyakorlat a kettő szétválasztása, megtartva a webhelyszintű definíciókat a fő konfigurációs fájlban, a tartományspecifikus beállításokat pedig egy másikban.

Adja hozzá a következő sort a /etc/httpd.conffájl aljához :

include "/etc/httpd.conf.example.com"

Most kedvenc szerkesztője segítségével hozza létre a /etc/httpd.conf.example.com. A kényelem kedvéért külön naplófájlokat fogunk létrehozni a domainhez. Ez megkönnyíti, amikor megpróbálja elhárítani a webhelyével kapcsolatos esetleges problémákat.

server "example.com" { listen on egress port 80 alias "www.example.com" # Automatically redirect to SSL block return 302 "https://$SERVER_NAME$REQUEST_URI" log { access "access-example.com" error "error-example.com" } } server "example.com" { listen on egress tls port 443 alias "www.example.com" root "/htdocs/wordpress" directory index "index.php" log { access "access-example.com" error "error-example.com" } tcp { nodelay, backlog 10 } tls { certificate "/etc/ssl/example.com.crt" key "/etc/ssl/private/example.com.key" } hsts { # max-age value is the number of seconds in 1 year max-age 31556952 preload subdomains } location "/.well-known/acme-challenge/*" { root "/acme" request strip 2 } location "/posts/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/page/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/feed/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/comments/feed/*" { fastcgi { param SCRIPT_FILENAME \ "htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/wp-json/*" { fastcgi { param SCRIPT_FILENAME \ "htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/wp-login.php*" { authenticate "WordPress" with "/htdocs/htpasswd" fastcgi socket "/run/php-fpm.sock" } location "*.php*" { fastcgi socket "/run/php-fpm.sock" } }

A nagyobb biztonság érdekében a WordPress adminisztrációs webhelyére való bejelentkezéshez egy további kérést is bevezetünk a felhasználónév és jelszó megadására. Mivel a szkriptgyerekek szeretik ismételten megpróbálni bruteforce-olni a WordPress bejelentkezését, létrehozunk egy további bejelentkezést a webszerver szintjén. Általában körülbelül 5 tippet kapnak, mielőtt a WordPress 401-es jogosulatlan hibát dob.

doas su cd /var/www/htdocs doas htpasswd htpasswd <user> doas chown www:www htpasswd doas chmod 0640 htpasswd doas rcctl reload httpd

PHP és PHP-FPM előkészítése és konfigurálása

Változtatnunk kell a php-n, hogy a WordPress telepítése e-maileket küldhessen. A WordPress és néhány beépülő modul arra támaszkodik, hogy e-maileket küldhet a frissítésekről, figyelmeztetésekről és változásokról. Az e-mailek küldésének képtelensége tönkreteheti a WordPress bizonyos funkcióit. Mivel a httpd chrootolt környezetben fut, meg kell mondanunk a php-nek, hogyan küldjön e-maileket. Ezenkívül néhány teljesítményt kell tennünk a php-fpm-hez.

Keresse meg a sendmail_pathsort, /etc/php-7.3.iniés hajtsa végre a következő módosítást:

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; sendmail_path = sendmail_path = /bin/femail -t -i

Keresse meg a következő sorokat, /etc/php-fpm.confés módosítsa őket az alábbiak szerint:

pm.start_servers = 5 pm.min_spare_servers = 1 pm.max_spare_servers = 6

A következő lépés a php-fpm engedélyezése és indítása.

doas rcctl enable php73_fpm doas rcctl start php73_fpm

A MariaDB előkészítése és konfigurálása

A MariaDB a MySQL beugró cserevilla. El kell végeznünk néhány kezdeti konfigurációs és adatbázis-előkészítési munkát a WordPress számára.

Mielőtt hatékonyan használhatnánk a MariaDB-t, engedélyeznünk kell, hogy a mysql démon az alapértelmezettnél több erőforrást használjon. Ennek érdekében hajtsa végre a következő módosításokat /etc/login.conf: ehhez adja hozzá ezt a bejegyzést az alján.

mysqld:\ :openfiles-cur=1024:\ :openfiles-max=2048:\ :tc=daemon:

Néhány változtatást kell végrehajtanunk a MariaDB konfigurációs fájlban, /etc/my.cnf. Ha a mysql kliens és a szerver TCP helyett UNIX tartományi socketen keresztül kommunikál, a szerver memóriahasználata alacsonyabb szinten tartható. Nem kell végrehajtania az összes alább javasolt változtatást. A két fontos változtatás a socketvonal és a megjegyzés megjegyzése bind-address. Ez áthelyezi a socketet a /var/wwwchroot környezetbe, így a WordPress csatlakozhat az adatbázishoz. A sor megjegyzésével bind-addressmegakadályozzuk, hogy a MariaDB TCP-porton figyeljen.

[client-server] socket=/var/www/var/run/mysql/mysql.sock #port=3306 # This will be passed to all MariaDB clients [client] #password=my_password # The MariaDB server [mysqld] # To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0" #bind-address=127.0.0.1 # Directory where you want to put your data #data=/var/mysql # This is the prefix name to be used for all log, error and replication files #log-basename=mysqld # Logging #log-bin=/var/mysql/mariadb-bin #max_binlog_size=100M #binlog_format=row #expire_logs_days = 7 #general-log #slow_query_log query_cache_type = 1 query_cache_limit = 1M query_cache_size = 16M

Most le kell futtatnunk a MariaDB telepítési binárist, és engedélyeznünk kell és el kell indítanunk a MariaDB-t. Ez az eljárás beállít egy root jelszót, és opcionálisan eldobja a tesztadatbázist. Célszerű követni az összes javaslatot a biztonságos telepítés szakaszában.

doas mysql_install_db doas rcctl enable mysqld doas rcctl start mysqld doas mysql_secure_installation

Hozza létre a WordPress adatbázist és az adatbázis-felhasználót. Ne felejtse el lecserélni <wp_user>a választott adatbázis-felhasználónevet és <password>az Ön által választott összetett jelszót.

mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT

A WordPress telepítése és konfigurálása

A WordPressnek már jó ideje nem volt hivatalos OpenBSD-portja, mert a dobozból kivetve nagyjából működik. Töltse le, csomagolja ki és helyezze át a WordPress telepítési mappáját.

cd /tmp wget https://wordpress.org/latest.tar.gz tar xvfz latest.tar.gz doas mv wordpress /var/www/htdocs/. doas chown -R www:www /var/www/htdocs/wordpress doas chmod 0755 /var/www/htdocs/wordpress cd /var/www/htdocs/wordpress/ find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;

Másolnunk kell, /etc/resolv.confés /etc/hostsegy könyvtárba, amelyet létrehozunk, névvel /var/www/etc. Ez azért van, hogy a WordPress sikeresen elérje a piacot. Erre a bővítmények és témák letöltéséhez lesz szüksége a WordPress adminisztrációs webhelyén keresztül. Az is fontos, hogy a Jet Pack beépülő modul megfelelően működjön.

doas mkdir /var/www/etc doas cp /etc/hosts /var/www/etc/. doas cp /etc/resolv.conf /var/www/etc/.

Innen a webszerver definíciójában megadott URL-címen keresztül https használatával böngésszen a WordPress webhelyére. Ha minden megfelelően működik, látnia kell a WordPress telepítővarázslót. Amikor eléri az adatbázis-kiszolgáló megadásának lehetőségét, használjalocalhost:/var/run/mysql/mysql.sock

A WordPress telepítése után itt az ideje beállítani a permalinkeket, hogy azok SEO-barátabbnak tűnjenek. A WordPress adminisztrációs képernyőjén lépjen a következőre: Settings -> Permalinks. Kattintson az Egyéni struktúra elemre, és írja be /posts/%postname%. A módosítás elvégzése után kattintson a Módosítások mentése gombra. Most sokkal szebb linkjei vannak. Például egy állandó hivatkozás így fog kinézni:https://example.com/posts/example-blog-post

Innentől kezdve készen kell állnia egy alapvető webhelyre. Győződjön meg arról, hogy olyan bővítményeket telepít, mint a Jet Pack és a WP-Super Cache. A WP-Super Cache beépülő modul felgyorsítja webhelyét a weboldalak gyorsítótárazásával és az állandó adatbázis-keresések kiküszöbölésével, a JetPack pedig kiváló nézettségi statisztikákat biztosít.

Biztonsági másolat készítése WordPress webhelyéről és adatbázisáról

Magától értetődik, hogy a webhely és az adatbázis biztonsági mentése nagyon fontos. Szerencsére ez egy viszonylag egyszerű dolog. Mindkettőről készítsen biztonsági másolatot a saját könyvtárába, majd scp-n keresztül másolhatja őket egy másik helyre. Pillanatfelvételt is készíthet a Vultr vezérlőpultján keresztül. Jó ötlet mindkettőt megtenni.

cd /var/www/htdocs tar cvfz wordpress.tgz wordpress/ cp wordpress.tgz /home/user mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql

A WordPress webhely visszaállítása

Ha az adatbázis megsérült, és visszaállításra van szükség, tegye a következőket:

gunzip wordpress.sql.gz mysql -u root -p wordpress DROP USER '<user>'@'localhost'; DROP DATABASE wordpress; CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT mysql -u root -p wordpress < wordpress.sql

Ha olyan módosítást hajtott végre egy WordPress-szkriptfájlon, amely elromlott valamit, bármikor újratelepítheti a WordPress-t az adminisztrátori vezérlőpulton keresztül. Keresse meg a Updatesrészt, és kattintson a linkre. Keressen egy címkével ellátott gombot Re-install Now. Ez legalább kijavítja azt, ami elromlott, de a konfiguráció nagy részének érintetlennek kell maradnia.

Ha az adatbázisa jó állapotban van, de véletlenül szerkesztett egy fájlt, és olyan mértékben elrontotta a dolgokat, hogy még a WordPress felügyeleti konzolját sem tudja elérni, tegye a következőket:

rm /var/www/htdocs/wordpress cp /home/user/wordpress.tgz /tmp tar xvfz wordpress.tgz mv wordpress /var/www/htdocs/. chown -R www:www /var/www/htdocs/wordpress cd /var/www/htdocs/wordpress find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;


A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket