Introduksjon
Innledende konfigurasjon
Skaff Let's Encrypt-sertifikater
Legge til serverdefinisjoner
Forbered og konfigurer MariaDB
Installer og konfigurer WordPress
Introduksjon
Jo nærmere du holder din OpenBSD-installasjon til standarden og uten så mange ekstra pakker, jo sikrere vil den være. Mens det mer vanlige oppsettet for WordPress er å bruke Apache og PHP, er det definitivt mulig (og å foretrekke) å bruke OpenBSDs innebygde httpd. Denne opplæringen vil komme i gang med et komplett oppsett av et Let's Encrypt-sertifikat, en webserver og WordPress. Du trenger root-tilgang for å kunne gjøre dette.
Innledende konfigurasjon
Hvis du ikke allerede har gjort det, må du opprette en /etc/doas.conffil. Den doaskommandoen er OpenBSD er lett erstatning for sudo.
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf
Vi må fortelle OpenBSD hvor pakkene er plassert. Dette skjer i /etc/installurlfilen.
doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit
Nå må vi legge til PHP og noen ekstra moduler som WordPress trenger for å håndtere ting som bilder og kryptering. Når du blir bedt om det, velg å installere den nyeste pakken med PHP. En ting du må gjøre er å kopiere modulfilene inifra eksempelkatalogen til hovedkatalogen. Dette må gjøres for å aktivere de ekstra PHP-modulene.
doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli pecl73-mcrypt pecl73-imagick
doas su -
cp /etc/php-7.3.sample/* /etc/php-7.3/.
Skaff Let's Encrypt-sertifikater
OpenBSD har en flott applikasjon kalt acme-client. Denne lille innovasjonen er det som vil generere din kontonøkkel, private nøkkel og få et sertifikat for deg. Acme-klienten er avhengig av å ha en webserver på plass, så vi definerer en rask standardserverdefinisjon.
Med din favorittredigerer, lag /etc/httpd.conf. Vi vil legge til de andre serverdefinisjonene til filen senere. Det vi trenger å gjøre nå er å forberede httpd for å utføre utfordringssvaret for å få et gratis, gyldig SSL-sertifikat.
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"
}
}
Bruk også favorittredigeringsprogrammet ditt, lag /etc/acme-client.conf.
authority letsencrypt {
api url "https://acme-v01.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
api url "https://acme-staging.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.fullchain.pem"
sign with letsencrypt
}
Aktiver og start httpd, og få utstedt et sertifikat. Du vil se at et sertifikat er utstedt.
doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd
Legge til serverdefinisjoner
Legg til følgende konfigurasjonslinjer til /etc/httpd.conf, like etter Let's Encrypt-definisjonene. Sett opp httpd for å utføre en omdirigering fra http til https fordi du har et gratis SSL-sertifikat og du aldri vil risikere å sende innlogging og passord over en usikker lenke. Legg merke til linjen, location "/posts/*"dette er stykket som får WordPress-permalinkene til å se pene ut. Denne konfigurasjonen inneholder også en måte å forhindre brute-force-forsøk på å logge på WordPress-administrasjonssiden.
server "example.com" {
listen on egress port 80
alias "www.example.com"
block return 302 "https://$SERVER_NAME$REQUEST_URI"
}
server "example.com" {
listen on egress tls port 443
alias "www.example.com"
root "/htdocs/example.com
directory index "index.php"
location "/posts/*" {
fastcgi {
param SCRIPT_FILENAME "/htdocs/example.com/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-json/*" {
fastcgi {
param SCRIPT_FILENAME "/htdocs/example.com/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-login.php*" {
authenticate "WordPress" with "/htdocs/htpasswd"
fastcgi socket "/run/php-fpm.sock"
}
#Uncomment the following lines to disable xmlrpc. You increase security
#at the expense of being able to use to use
#the Android and iPhone WordPress App.
#location "xmlrpc.php*" {
# block return 404
#}
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
tls {
certificate "/etc/ssl/example.com.fullchain.pem"
key "/etc/ssl/private/example.com.key"
}
}
Opprett brukernavn- og passordfilen for et ekstra sikkerhetsnivå til WordPress-administrasjonssiden. Velg et godt passord. Dette vil be deg om et brukernavn og passord for å kjøre wp-login.phpskriptet.
doas su
cd /var/www/htdocs
htpasswd htpasswd wp_user
chown www:www htpasswd
chmod 0640 htpasswd
MariaDB er en drop-in erstatningsgaffel av MySQL. Vi må gjøre noe innledende konfigurasjons- og databaseforberedelsesarbeid for WordPress.
Før vi kan bruke MariaDB effektivt, må vi la mysql-demonen bruke flere ressurser enn standarden. For å gjøre dette, gjør følgende endringer /etc/login.confved å legge til denne oppføringen nederst.
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
Aktiver og start MariaDB. Denne prosedyren vil angi et root-passord og eventuelt droppe testdatabasen. Det er en god idé å følge forslagene i den sikre installasjonsfasen.
doas mysql_install_db
doas rcctl enable mysqld
doas rcctl start mysqld
doas mysql_secure_installation
Opprett WordPress-databasen og databasebrukeren.
mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
WordPress har ikke hatt en offisiell OpenBSD-port på lenge fordi den fungerer rett ut av esken. Last ned, pakk ut og flytt WordPress-installasjonsmappen.
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/example.com
chown -R www:www /var/www/htdocs/example.com
Vi må kopiere /etc/resolve.confog /etc/hoststil /var/www/etc. Dette er slik at WordPress med suksess kan nå markedsplassen. Du trenger dette for å laste ned plugins og temaer via WordPress adminside.
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.
Start httpd og php73_fpm.
doas rcctl start httpd php73_fpm
Bla til url-en du brukte i serverdefinisjonen. Du vil se installasjonsveiviseren for WordPress. For alternativet Databaseserver erstatter du localhost med 127.0.0.1.
Når WordPress er installert, er det på tide å sette opp permalinkene slik at de ser mer SEO-vennlige ut. Gå til WordPress-administrasjonsskjermen Settings -> Permalinks. Klikk på Custom Structureog skriv inn /posts/%postname%. Etter å ha gjort denne endringen, klikk på Save Changesknappen. Du har nå mye penere lenker. For eksempel vil en permalink se slik ut:https://example.com/posts/example-blog-post