The Server
OpenBSD's webserver is called httpd and is very easy to use. In order to get my website running (without ssl for now because I haven't decided on a domain name), I ran a few simple commands. I will update this once I choose a domain and start serving on 443. Here's the output from fc -l
# install deps pkg_add php git # copy default configs, start services cd /etc cp examples/httpd.conf ./ rcctl enable php74_fpm rcctl start php74_fpm rcctl enable httpd rcctl start httpd # edit configs vi httpd.conf # restart services rcctl restart httpd # add documents to be served cd /var/www/htdocs/ rm -rf bgplg/ git clone https://gitlab.com/binrc/site mv ./site/* ./ rm -rf ./site
These commands should be self explanatory but I will go into more detail. First, we install php and git. Neither of these are necessary, OpenBSD comes with everything you need in the box. I installed php because I'll be serving dynamic content. I typically just use rsync for file transfer but today I felt like using git.
The next thing we do is get a functional configuration file. Mine looks like this. Everything that starts with a # is a comment. Instead of removing these unused lines, I like to comment them out. It makes it easier to quickly add ssl support later.
# $OpenBSD: httpd.conf,v 1.22 2020/11/04 10:34:18 denis Exp $
server "default" {
listen on * port 80
directory index index.php
location "*.php" {
fastcgi socket "/run/php-fpm.sock"
}
# location "/.well-known/acme-challenge/*" {
# root "/acme"
# request strip 2
# }
# location * {
# block return 302 "https://$HTTP_HOST$REQUEST_URI"
# }
}
#server "example.com" {
# listen on * tls port 443
# tls {
# certificate "/etc/ssl/example.com.fullchain.pem"
# key "/etc/ssl/private/example.com.key"
# }
# location "/pub/*" {
# directory auto index
# }
# location "/.well-known/acme-challenge/*" {
# root "/acme"
# request strip 2
# }
#}
What this means is "listen for http requests on port 80. When someone visits the site and doesn't request a specific file, assume they want index.php, if the client requests a php file, process it with php-fpm first."
That's it. In less than five minutes, less than fifteen commands, and less than 8 lines of parsed configs I have a functional webserver.
Monero:
Bitcoin:
http://ilsstfnqt4vpykd2bqc7ntxf2tqupqzi6d5zmk767qtingw2vp2hawyd.onion:8080
http://xzh77mcyknkkghfqpwgzosukbshxq3nwwe2cg3dtla7oqoaqknia.b32.i2p:9090
|
