Uvod
Početna konfiguracija
Nabavite Let's Encrypt certifikate
Dodavanje definicija poslužitelja
Pripremite i konfigurirajte MariaDB
Instalirajte i konfigurirajte WordPress
Uvod
Što bliže držite svoju OpenBSD instalaciju na zadanoj i bez toliko dodanih paketa, to će biti sigurnije. Iako je uobičajena postavka za WordPress korištenje Apachea i PHP-a, definitivno je moguće (i poželjno) koristiti OpenBSD ugrađeni httpd. Ovaj vodič će vam pomoći da počnete s potpunim postavljanjem certifikata Let's Encrypt, web poslužitelja i WordPressa. Trebat će vam root pristup da biste to mogli učiniti.
Početna konfiguracija
Ako to već niste učinili, morat ćete stvoriti /etc/doas.confdatoteku. doasNaredba je OpenBSD je jednostavna zamjena za sudo.
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf
Moramo reći OpenBSD-u gdje se paketi nalaze. To se događa u /etc/installurldatoteci.
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 morate učiniti je kopirati inidatoteke 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 pecl73-mcrypt pecl73-imagick
doas su -
cp /etc/php-7.3.sample/* /etc/php-7.3/.
Nabavite Let's Encrypt certifikate
OpenBSD ima sjajnu aplikaciju koja se zove acme-client. Ova mala inovacija je ono što će za vas generirati ključ računa, privatni ključ i dobiti certifikat. acme-client ovisi o tome da ima web poslužitelj na mjestu, tako da definiramo brzu zadanu definiciju poslužitelja.
Sa svojim omiljenim uređivačem kreirajte /etc/httpd.conf. Kasnije ćemo dodati ostale definicije poslužitelja u datoteku. Ono što sada trebamo učiniti je pripremiti httpd za izvođenje izazova-odgovora za dobivanje besplatnog, važećeg SSL certifikata.
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-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
}
Omogućite i pokrenite httpd, a zatim izdajte certifikat. Vidjet ćete da je potvrda izdana.
doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd
Dodavanje definicija poslužitelja
Dodajte sljedeće konfiguracijske retke u /etc/httpd.conf, odmah nakon definicija Let's Encrypt. Postavite httpd da izvrši preusmjeravanje s http na https jer imate besplatni SSL certifikat i nikada ne želite riskirati slanje prijave i lozinke preko nesigurne veze. Obratite pažnju na liniju, location "/posts/*"ovo je dio zbog kojeg WordPress stalne veze izgledaju lijepo. Također, ova konfiguracija sadrži način za sprječavanje pokušaja grube sile prijave na web-stranicu WordPress administratora.
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"
}
}
Izradite datoteku s korisničkim imenom i lozinkom za dodatnu razinu sigurnosti na web-stranici WordPress administratora. Odaberite dobru lozinku. Ovo će od vas tražiti korisničko ime i lozinku kako biste pokrenuli wp-login.phpskriptu.
doas su
cd /var/www/htdocs
htpasswd htpasswd wp_user
chown www:www htpasswd
chmod 0640 htpasswd
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:
Omogućite i pokrenite MariaDB. Ovaj postupak će postaviti root lozinku i po želji ispustiti testnu bazu podataka. Dobro je slijediti prijedloge u fazi sigurne instalacije.
doas mysql_install_db
doas rcctl enable mysqld
doas rcctl start mysqld
doas mysql_secure_installation
Izradite bazu podataka WordPress i korisnika baze podataka.
mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
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/example.com
chown -R www:www /var/www/htdocs/example.com
Imamo kopirati /etc/resolve.confi /etc/hostsna /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.
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.
Pokrenite httpd i php73_fpm.
doas rcctl start httpd php73_fpm
Dođite do url-a koji ste koristili u definiciji poslužitelja. Vidjet ćete čarobnjaka za instalaciju WordPressa. Za opciju poslužitelja baze podataka, zamijenite localhost s 127.0.0.1.
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 Custom Structurei upišite /posts/%postname%. Nakon što izvršite ovu promjenu, kliknite Save Changesgumb. Sada imate mnogo ljepše veze. Na primjer, stalna veza će izgledati ovako:https://example.com/posts/example-blog-post