Spustenie WordPress na OpenBSD 6.6 s OpenBSDs HTTPD

Úvod

Vzhľadom na náklonnosť OpenBSD k bezpečnosti má zmysel iba napájať vašu webovú stránku WordPress pomocou nej, najmä preto, že WordPress a PHP majú tendenciu byť pohyblivými cieľmi pre deti so skriptami. Keďže httpd OpenBSD je navrhnutý hlavne na zobrazovanie statických stránok, operácie POST sú vyhradené pre procesy fastcgi a slowcgi. To sťažuje nečestnému hercovi potenciálne prelomiť proces webového servera a získať prístup k vášmu serveru. Operácie POST sú presmerované do procesu fastcgi a používajú externý interpret. Tento článok bude diskutovať nielen o nastavení vašej stránky WordPress, ale aj o niektorých základných technikách údržby a o tom, ako zálohovať a obnoviť vašu stránku a jej databázu. Kdekoľvek vidíte example.comako doménu, nahraďte ju svojou doménou.

Počiatočná konfigurácia

Ak ste tak ešte neurobili, budete musieť vytvoriť /etc/doas.confsúbor. Príkaz doas je jednoduchou náhradou sudo v OpenBSD. Pre pohodlie som pridal možnosť nopass, takže pri používaní doas nebudete musieť znova zadávať heslo. Ak to nechcete mať, nopass jednoducho vynechajte.

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

V závislosti od toho, ako bol OpenBSD zabalený na nasadenie, niekedy správca balíkov nemusí mať nakonfigurovaný archív. Na konfiguráciu oficiálneho úložiska OpenBSD musíme vytvoriť /etc/installurlsúbor.

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

Teraz musíme pridať PHP a niektoré extra moduly, ktoré bude WordPress potrebovať, aby si mohol poradiť s vecami, ako sú obrázky a šifrovanie. Po zobrazení výzvy vyberte inštaláciu najnovšieho balíka PHP. Jedna vec, ktorú musíte urobiť, je skopírovať ini súbory modulu zo vzorového adresára do hlavného. Toto je potrebné urobiť, aby ste povolili dodatočné moduly PHP.

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/.

Získajte certifikáty Let's Encrypt

V dnešnom svete musia byť webové stránky obsluhované prostredníctvom protokolu SSL alebo musia byť vyhľadávacími nástrojmi znížené. Našťastie má OpenBSD skvelú aplikáciu s názvom acme-client. Klient acme automaticky vygeneruje nový súkromný kľúč a požiada o nový plne platný certifikát. Acme-client závisí od toho, či má webový server na svojom mieste, takže budeme musieť vytvoriť rýchlu predvolenú definíciu servera.

Pomocou svojho obľúbeného editora vytvorte /etc/httpd.conf. Ostatné definície servera pridáme do súboru neskôr. Zatiaľ to bude stačiť, aby acme-klient fungoval správne.

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" } }

Tiež pomocou svojho obľúbeného editora vytvorte /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 }

Teraz musíme povoliť a spustiť httpd. Keď to urobíme, môžeme spustiť acme-client a čakať, kým získa náš čerstvý, nový certifikát. Keď to urobíme, pridáme úlohu cron, ktorá bude každých 7 dní automaticky požadovať novú, takže sa nemusíme obávať vypršania platnosti.

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

Teraz vytvoríme úlohu cron. Pridajte tento riadok pod úplne posledný záznam. V tomto prípade odkazujeme klientovi acme, aby o nový certifikát požiadal každú sobotu o 1:00.

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

Konfigurácia HTTPD pre WordPress

Teraz je čas nastaviť httpd pre WordPress. Namiesto toho, aby sme definíciu našej webovej stránky umiestnili priamo do /etc/httpd.conf, umiestnime ju do samostatného súboru s názvom /etc/httpd.conf.example.coma zahrnieme ju do hlavného konfiguračného súboru. Vo všeobecnosti je dobrým zvykom tieto dve veci oddeliť, pričom v hlavnom konfiguračnom súbore ponechajte definície pre celú lokalitu a nastavenia špecifické pre doménu v inom súbore.

Na koniec /etc/httpd.confsúboru pridajte nasledujúci riadok :

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

Teraz pomocou svojho obľúbeného editora vytvorte súbor /etc/httpd.conf.example.com. Pre pohodlie vytvoríme samostatné protokolové súbory pre vašu doménu. Uľahčuje to, keď sa pokúšate vyriešiť potenciálne problémy s vašou stránkou.

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" } }

Pre väčšiu bezpečnosť sa chystáme implementovať dodatočnú výzvu na zadanie používateľského mena a hesla pri prihlásení na administračnú stránku WordPress. Keďže deti zo skriptov radi opakovane skúšajú a brutálne vynucujú prihlásenie do WordPressu, vytvoríme dodatočné prihlásenie na úrovni webového servera. Zvyčajne dostanú asi 5 odhadov, kým WordPress vyvolá chybu 401 Neoprávnené.

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

Pripravte a nakonfigurujte PHP a PHP-FPM

Musíme urobiť zmenu v php, aby vaša inštalácia WordPress mohla odosielať e-maily. WordPress a niektoré doplnky sa spoliehajú na schopnosť odosielať e-maily s upozornením na inovácie, upozornenia a zmeny. Neschopnosť odosielať e-maily môže narušiť určité funkcie WordPress. Keďže httpd beží v chrootovanom prostredí, musíme php povedať, ako má posielať e-maily. Okrem toho musíme vykonať niekoľko vylepšení výkonu pre php-fpm.

Vyhľadajte sendmail_pathriadok /etc/php-7.3.inia vykonajte nasledujúcu zmenu:

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

Vyhľadajte nasledujúce riadky /etc/php-fpm.confa zmeňte ich takto:

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

Ďalším krokom je povoliť a spustiť php-fpm.

doas rcctl enable php73_fpm doas rcctl start php73_fpm

Pripravte a nakonfigurujte MariaDB

MariaDB je drop-in náhradný fork MySQL. Potrebujeme vykonať počiatočnú konfiguráciu a prípravu databázy pre WordPress.

Predtým, ako budeme môcť efektívne používať MariaDB, musíme démonovi mysql povoliť používať viac zdrojov, ako je predvolené. Ak to chcete urobiť, vykonajte nasledujúce zmeny /etc/login.confpridaním tohto záznamu do spodnej časti.

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

Musíme urobiť nejaké zmeny v konfiguračnom súbore MariaDB, /etc/my.cnf. Tým, že klient a server mysql komunikujú cez soket domény UNIX namiesto TCP, využitie pamäte vášho servera môže byť nižšie. Nemusíte vykonať všetky zmeny navrhované nižšie. Dve dôležité, ktoré treba zmeniť, sú socketriadok a komentár bind-address. Tým sa zásuvka presunie do /var/wwwprostredia chroot, aby sa WordPress mohol pripojiť k databáze. Tým, že komentuje von bind-addresslinku, aby sme zabránili mariadb z načúvania na TCP portu.

[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

Teraz musíme spustiť inštalačný binárny súbor MariaDB a povoliť a spustiť MariaDB. Tento postup nastaví heslo používateľa root a voliteľne zruší testovaciu databázu. Vo fáze bezpečnej inštalácie je dobré postupovať podľa všetkých návrhov.

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

Vytvorte databázu WordPress a používateľa databázy. Nezabudnite nahradiť <wp_user>užívateľským menom databázy <password>podľa vlastného výberu a zložitým heslom podľa vlastného výberu.

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

Nainštalujte a nakonfigurujte WordPress

WordPress už nejaký čas nemá oficiálny port OpenBSD, pretože v podstate funguje hneď po vybalení. Stiahnite si, extrahujte a presuňte inštalačný priečinok WordPress.

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 {} \;

Musíme skopírovať /etc/resolv.confa /etc/hostsdo adresára, ktorý vytvoríme s názvom /var/www/etc. Je to preto, aby sa WordPress mohol úspešne dostať na trh. Budete to potrebovať, aby ste si mohli stiahnuť doplnky a témy prostredníctvom stránky správcu WordPress. Je tiež dôležité, aby plugin Jet Pack fungoval správne.

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

Odtiaľto prejdite na svoju webovú stránku WordPress pomocou https cez adresu URL, ktorú ste zadali v definícii webového servera. Ak všetko funguje správne, mali by ste vidieť sprievodcu inštaláciou WordPress. Keď sa dostanete k možnosti zadať databázový server, mali by ste použiťlocalhost:/var/run/mysql/mysql.sock

Po nainštalovaní WordPress je čas nastaviť trvalé odkazy tak, aby vyzerali lepšie pre SEO. Na obrazovke správcu WordPress prejdite na Settings -> Permalinks. Kliknite na Vlastná štruktúra a zadajte /posts/%postname%. Po vykonaní tejto zmeny kliknite na tlačidlo Uložiť zmeny. Teraz máte oveľa krajšie odkazy. Napríklad trvalý odkaz bude vyzerať takto:https://example.com/posts/example-blog-post

Odtiaľ by ste mali mať pripravenú základnú webovú stránku. Uistite sa, že ste nainštalovali doplnky, ako je Jet Pack a WP-Super Cache. Doplnok WP-Super Cache pomáha zrýchliť váš web ukladaním webových stránok do vyrovnávacej pamäte a elimináciou neustáleho vyhľadávania v databáze a JetPack vám poskytuje vynikajúce štatistiky sledovanosti.

Zálohujte svoju webovú stránku a databázu WordPress

Malo by byť samozrejmosťou, že zálohovanie vašej webovej stránky a databázy je veľmi dôležité. Našťastie je to pomerne jednoduchá vec. Zálohujte si obe do svojho domovského adresára a potom ich môžete skopírovať cez scp na iné miesto. Snímku môžete vytvoriť aj prostredníctvom ovládacieho panela Vultr. Je to dobrý nápad urobiť oboje.

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

Obnovenie vášho webu WordPress

Ak je vaša databáza poškodená a je potrebná jej obnova, postupujte takto:

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

Ak ste v súbore skriptu WordPress vykonali zmenu, ktorá niečo pokazila, môžete WordPress kedykoľvek preinštalovať pomocou ovládacieho panela správcu. Vyhľadajte Updatessekciu a kliknite na odkaz. Hľadajte tlačidlo s označením Re-install Now. Toto opraví aspoň to, čo je pokazené, ale väčšina vašej konfigurácie by mala zostať nedotknutá.

Ak je vaša databáza v dobrom stave, ale omylom ste upravili súbor a rozbili veci do bodu, kedy sa nemôžete dostať ani do správcovskej konzoly WordPress, postupujte takto:

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 {} \;


Leave a Comment

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac