Pokretanje WordPressa na OpenBSD 6.6 s OpenBSDs HTTPD

Uvod

S obzirom na sklonost OpenBSD-a prema sigurnosti, ima smisla samo osnažiti svoju WordPress web stranicu s njom, pogotovo zato što su WordPress i PHP obično pokretne mete za skripte. Budući da je OpenBSD-ov httpd prvenstveno dizajniran za posluživanje statičkih stranica, POST operacije su rezervirane za fastcgi i slowcgi procese. To otežava lažnom akteru da potencijalno prekine proces web poslužitelja i dobije pristup vašem poslužitelju. POST operacije se prenose u proces fastcgi i koriste vanjski tumač. Ovaj članak će raspravljati ne samo o postavljanju vaše WordPress stranice, već i o nekim osnovnim tehnikama održavanja te o tome kako napraviti sigurnosnu kopiju i vratiti svoju stranicu i njezinu bazu podataka. Gdje god vidite example.comkao domenu, zamijenite je svojom domenom.

Početna konfiguracija

Ako to već niste učinili, morat ćete stvoriti /etc/doas.confdatoteku. Naredba doas je OpenBSD-ova jednostavna zamjena za sudo. Radi praktičnosti, dodao sam opciju nopass tako da nećete morati ponovno upisivati ​​svoju lozinku kada koristite doas. Ako ne želite ovo imati, jednostavno izostavite nopass.

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

Ovisno o tome kako je OpenBSD bio zapakiran za implementaciju, ponekad upravitelj paketa možda nema konfigurirano spremište. Da bismo konfigurirali službeno spremište OpenBSD-a, moramo kreirati /etc/installurldatoteku.

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

Sada moramo dodati PHP i neke dodatne module koji će WordPressu trebati za rukovanje stvarima poput slika i enkripcije. Kada se to od vas zatraži, odaberite instaliranje najnovijeg paketa PHP-a. Jedna stvar koju trebate učiniti je kopirati ini datoteke modula iz uzorka direktorija u glavni. To se mora učiniti kako bi se omogućili dodatni PHP moduli.

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

Nabavite Let's Encrypt certifikate

U današnjem svijetu, web stranice moraju biti poslužene putem SSL-a ili se suočiti s nižim rangom od strane tražilica. Srećom, OpenBSD ima sjajnu aplikaciju koja se zove acme-client. Acme-klijent će automatski generirati novi privatni ključ i zatražiti novi potpuno važeći certifikat. acme-client ovisi o tome da ima web poslužitelj na mjestu pa ćemo morati stvoriti brzu definiciju zadanog poslužitelja.

Sa svojim omiljenim uređivačem kreirajte /etc/httpd.conf. Kasnije ćemo dodati ostale definicije poslužitelja u datoteku. Za sada će to biti dovoljno da acme-client funkcionira ispravno.

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

Također pomoću svog omiljenog uređivača kreirajte /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 }

Sada moramo omogućiti i pokrenuti httpd. Kada to učinimo, možemo pokrenuti acme-client i čekati da dobije naš svježi, novi certifikat. Nakon što to učinimo, dodat ćemo cron posao da automatski traži novi svakih 7 dana tako da ne moramo brinuti o isteku.

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

Sada kreiramo cron posao. Dodajte ovaj redak ispod posljednjeg unosa. U ovom slučaju, kažemo acme-clientu da zatraži novi certifikat svake subote u 1:00 ujutro.

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

Konfiguriranje HTTPD-a za WordPress

Sada je vrijeme da postavite httpd za WordPress. Umjesto postavljanja definicije naše web stranice izravno u /etc/httpd.conf, stavit ćemo je u zasebnu datoteku pod nazivom /etc/httpd.conf.example.comi uključiti je u glavnu konfiguracijsku datoteku. Općenito je dobra praksa razdvojiti to dvoje, zadržavajući definicije za cijelu web lokaciju u glavnoj konfiguracijskoj datoteci, a postavke specifične za domenu u drugoj.

Dodajte sljedeći redak na dno svoje /etc/httpd.confdatoteke:

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

Sada koristeći svoj omiljeni uređivač, stvorite svoj /etc/httpd.conf.example.com. Radi praktičnosti, kreirat ćemo zasebne datoteke dnevnika za vašu domenu. To olakšava pokušaje rješavanja potencijalnih problema s vašom web lokacijom.

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

Radi veće sigurnosti implementirati ćemo dodatni upit za korisničko ime i lozinku prilikom prijave na web-stranicu za administraciju WordPress-a. Budući da klinci skripti vole više puta pokušavati grubo nametnuti WordPress prijavu, kreiramo dodatnu prijavu na razini web poslužitelja. Obično dobiju oko 5 nagađanja prije nego što WordPress izbaci pogrešku 401 Unauthorized.

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

Pripremite i konfigurirajte PHP i PHP-FPM

Moramo napraviti promjenu u php-u kako bi vaša WordPress instalacija mogla slati e-poštu. WordPress i neki dodaci oslanjaju se na mogućnost slanja e-pošte koja vas obavještava o nadogradnjama, upozorenjima i promjenama. Nemogućnost slanja e-pošte može pokvariti određene značajke WordPressa. Budući da httpd radi u chrooted okruženju, moramo reći php-u kako da šalje e-poštu. Nadalje, moramo napraviti neke promjene performansi za php-fpm.

Potražite sendmail_pathliniju /etc/php-7.3.inii izvršite sljedeću promjenu:

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

Potražite sljedeće retke /etc/php-fpm.confi promijenite ih na sljedeći način:

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

Sljedeći korak je omogućiti i pokrenuti php-fpm.

doas rcctl enable php73_fpm doas rcctl start php73_fpm

Pripremite i konfigurirajte MariaDB

MariaDB je zamjenska vilica za MySQL. Moramo obaviti početnu konfiguraciju i pripremu baze podataka za WordPress.

Prije nego što možemo učinkovito koristiti MariaDB, moramo dopustiti mysql demonu da koristi više resursa od zadanih. Da biste to učinili, izvršite sljedeće promjene /etc/login.confdodavanjem ovog unosa pri dnu.

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

Moramo napraviti neke promjene u MariaDB konfiguracijskoj datoteci, /etc/my.cnf. Ako mysql klijent i poslužitelj komuniciraju putem UNIX domenske utičnice umjesto TCP-a, korištenje memorije vašeg poslužitelja može se smanjiti. Ne morate izvršiti sve dolje predložene promjene. Dvije važne za promjenu su socketcrta i komentiranje bind-addressreda. Ovo pomiče socket unutar /var/wwwchroot okruženja tako da se WordPress može povezati s bazom podataka. Komentiranjem bind-addressretka sprječavamo MariaDB da sluša 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

Sada trebamo pokrenuti binarni program za instalaciju MariaDB-a te omogućiti i pokrenuti MariaDB. Ovaj postupak će postaviti root lozinku i po želji ispustiti testnu bazu podataka. Dobro je slijediti sve prijedloge u fazi sigurne instalacije.

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

Kreirajte bazu podataka WordPress i korisnika baze podataka. Ne zaboravite zamijeniti <wp_user>korisničkim imenom baze podataka po vašem izboru i <password>složenom lozinkom po vašem izboru.

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

Instalirajte i konfigurirajte WordPress

WordPress već neko vrijeme nije imao službeni OpenBSD port jer prilično radi odmah iz kutije. Preuzmite, raspakirajte i premjestite instalacijsku mapu WordPressa.

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

Moramo kopirati /etc/resolv.confi /etc/hostsu direktorij koji ćemo kreirati pod nazivom /var/www/etc. To je tako da WordPress može uspješno doći na tržište. Ovo će vam trebati za preuzimanje dodataka i tema putem web-mjesta WordPress administratora. Također je važno da dodatak Jet Pack ispravno radi.

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

Odavde idite na svoju WordPress web stranicu koristeći https putem URL-a koji ste naveli u definiciji web poslužitelja. Ako sve radi ispravno, trebali biste vidjeti čarobnjaka za instalaciju WordPressa. Kada dođete do opcije za određivanje poslužitelja baze podataka, trebali biste koristitilocalhost:/var/run/mysql/mysql.sock

Nakon što je WordPress instaliran, vrijeme je da postavite stalne veze tako da izgledaju SEO-friendly. S administratorskog zaslona WordPressa idite na Settings -> Permalinks. Kliknite na Prilagođena struktura i upišite /posts/%postname%. Nakon što izvršite ovu promjenu, kliknite gumb Spremi promjene. Sada imate mnogo ljepše veze. Na primjer, stalna veza će izgledati ovako:https://example.com/posts/example-blog-post

Odavde biste trebali imati osnovnu web stranicu spremnu za rad. Provjerite jeste li instalirali dodatke kao što su Jet Pack i WP-Super Cache. Dodatak WP-Super Cache pomaže ubrzati vašu web stranicu keširanjem web stranica i eliminiranjem stalnih pretraživanja baze podataka, a JetPack vam daje izvrsnu statistiku gledanosti.

Sigurnosno kopiranje vaše WordPress web stranice i baze podataka

Ne treba napominjati da je sigurnosna kopija vaše web stranice i baze podataka vrlo važna. Srećom, ovo je relativno lako učiniti. Sigurnosno kopirajte oba u svoj kućni imenik, a zatim ih možete kopirati putem scp-a na drugo mjesto. Također možete stvoriti snimku putem Vultr upravljačke ploče. Dobro je učiniti 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

Vraćanje vaše WordPress web stranice

Ako se vaša baza podataka ošteti i potrebno je vraćanje, učinite sljedeće:

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

Ako ste promijenili datoteku WordPress skripte koja je nešto pokvarila, uvijek možete ponovno instalirati WordPress putem upravljačke ploče administratora. Potražite Updatesodjeljak i kliknite na vezu. Potražite gumb s oznakom Re-install Now. Ovo će barem popraviti ono što je pokvareno, ali većina vaše konfiguracije treba ostati netaknuta.

Ako je vaša baza podataka u dobrom stanju, ali ste slučajno uredili datoteku i pokvarili stvari do točke u kojoj ne možete ni doći do administratorske konzole WordPressa, učinite sljedeće:

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


Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više