introduzione
Più vicino manterrai l'installazione di OpenBSD al valore predefinito e senza altrettanti pacchetti aggiunti, più sicura sarà. Mentre la configurazione più comune per WordPress è usare Apache e PHP, è sicuramente possibile (e preferibile) usare l'httpd incorporato di OpenBSD. Questo tutorial ti farà iniziare con una configurazione completa di un certificato Let's Encrypt, un web server e WordPress. Avrai bisogno dell'accesso root per poter fare questo.
Configurazione iniziale
Se non lo hai già fatto, dovrai creare un /etc/doas.conf
file. Il doas
comando è la sostituzione facile di OpenBSD per sudo
.
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf
Dobbiamo dire a OpenBSD dove si trovano i pacchetti. Questo succede nel /etc/installurl
file.
doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit
Ora dobbiamo aggiungere PHP e alcuni moduli extra di cui WordPress avrà bisogno per gestire cose come immagini e crittografia. Quando richiesto, scegliere di installare il pacchetto più recente di PHP. Una cosa che devi fare è copiare i ini
file del modulo dalla directory di esempio a quella principale. Questo deve essere fatto per abilitare i moduli PHP aggiuntivi.
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/.
Ottieni crittografiamo i certificati
OpenBSD ha una fantastica applicazione chiamata acme-client. Questa piccola innovazione è ciò che genererà la chiave dell'account, la chiave privata e otterrà un certificato per te. Il client acme dipende dalla presenza di un server Web, quindi definiamo una rapida definizione predefinita del server.
Con il tuo editor preferito, crea /etc/httpd.conf
. In seguito aggiungeremo le altre definizioni del server al file. Ciò che dobbiamo fare ora è preparare httpd per eseguire la risposta alla sfida per ottenere un certificato SSL gratuito e valido.
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"
}
}
Utilizzando anche il tuo editor preferito, crea /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
}
Abilitare e avviare httpd, quindi ottenere un certificato emesso. Vedrai che è stato emesso un certificato.
doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd
Aggiunta delle definizioni del server
Aggiungi le seguenti righe di configurazione a /etc/httpd.conf
, subito dopo le definizioni Let's Encrypt. Installa httpd per eseguire un reindirizzamento da http a https perché hai un certificato SSL gratuito e non vuoi mai rischiare di inviare un login e una password su un link non sicuro. Prendi nota della linea, location "/posts/*"
Questo è il pezzo che rende i permalink di WordPress belli. Inoltre, questa configurazione contiene un modo per prevenire tentativi di forza bruta di accedere al sito di amministrazione di WordPress.
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"
}
}
Crea il nome utente e la password per un ulteriore livello di sicurezza nel sito di amministrazione di WordPress. Scegli una buona password. Questo ti chiederà un nome utente e una password per eseguire lo wp-login.php
script.
doas su
cd /var/www/htdocs
htpasswd htpasswd wp_user
chown www:www htpasswd
chmod 0640 htpasswd
MariaDB è un fork sostitutivo drop-in di MySQL. Dobbiamo fare alcuni lavori di configurazione iniziale e preparazione del database per WordPress.
Prima di poter utilizzare MariaDB in modo efficace, dobbiamo consentire al demone mysql di utilizzare più risorse rispetto al valore predefinito. Per fare ciò, apporta le seguenti modifiche /etc/login.conf
aggiungendo questa voce in fondo.
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
Abilita e avvia MariaDB. Questa procedura imposterà una password di root e, facoltativamente, eliminerà il database di test. È una buona idea seguire i suggerimenti nella fase di installazione sicura.
doas mysql_install_db
doas rcctl enable mysqld
doas rcctl start mysqld
doas mysql_secure_installation
Creare il database WordPress e l'utente del database.
mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
WordPress non ha una porta ufficiale OpenBSD da un po 'di tempo perché praticamente funziona subito. Scarica, estrai e sposta la cartella di installazione di WordPress.
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
Dobbiamo copiare /etc/resolve.conf
e /etc/hosts
al /var/www/etc
. Questo in modo che WordPress possa raggiungere con successo il mercato. Ne avrai bisogno per scaricare plugin e temi tramite il sito di amministrazione di WordPress.
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.
Avviare httpd e php73_fpm
.
doas rcctl start httpd php73_fpm
Passare all'URL utilizzato nella definizione del server. Vedrai la procedura guidata di installazione di WordPress. Per l'opzione Server database, sostituire localhost con 127.0.0.1
.
Una volta installato WordPress, è il momento di impostare i permalink in modo che appaiano più SEO friendly. Dalla schermata di amministrazione di WordPress, vai a Settings -> Permalinks
. Clicca Custom Structure
e digita /posts/%postname%
. Dopo aver apportato questa modifica, fai clic sul Save Changes
pulsante. Ora hai collegamenti molto più belli. Ad esempio, un permalink sarà simile al seguente:https://example.com/posts/example-blog-post