OpenBSD
The OpenBSD project produces a FREE, multi-platform 4.4BSD-based UNIX-like operating system.
VirtualBox installation
- new
- name: OpenBSD6
- type: bsd
- version: openbsd 64 bit
- next
- 512 MB
- next
- create disk
- create
- vdi
- next
- fixed size
- next
- 8GB
- Create
- Settings
- Network card Intel PRO/1000 MT Desktop
- Start
- install60.iso
- Start
- (I)nstall
- ? choose keyboard
- pt
- System hostname: openbsd
- card: em0
- IP v4 address: dhcp
- IP v6: none
- done
- password for root: *******
- start sshd yes
- expect X11 yes
- X11 started by xdm: no
- setup a user: vitor
- Password for vitor ********
- Allow root ssh login no
- root disk wd0
- use whole disk
- Auto layout
- set location cd0
- pathname 6.0/amd64
- all
- done
- continue without verification yes
- done
- Timezone Portugal # Europe/Lisbon
- yes
- reboot
- Unmount ISO
- Login as vitor
- VM settings, network, adapter 1, NAT, port forwarding,
- add rule, protocol tcp, host port 2222, guest port 22
- add rule, protocol tcp, host port 8080, guest port 80
1 df -h
2 startx # fvwm window manager
3 setxkbmap pt
4 # default shell ksh
5 perl -v # 5.20
6 du -hs .
7
8 #edit /root/.profile
9 PKG_PATH=http://ftp.fr.openbsd.org/pub/OpenBSD/6.0/packages/amd64/
10 export PKG_PATH
11 exit
12 login
13 env
14 pkg_info python
15 pkg_add python-2.7.12 # pkg_add python-2.7.16
16 pkg_info -Q jdk
17 pkg_add jdk-1.8.0.72p0v0 # pkg_add jdk-11.0.2.9.3p0v0
18 # You may wish to add /usr/local/jdk-11/man to /etc/man.conf
19 cd /usr/local/jdk-1.8.0/bin # cd /usr/local/jdk-11/bin
20 ./java -version
21 python2.7 --version
22 pkg_info #list installed packages
23 #https://www.openbsd.org/faq/faq15.html#PkgMgmt
24
25 #install ntpd
26 pkg_add ntp
27 ntpdate pt.pool.ntp.org #update datetime
28
httpd service
In /etc/rc.conf remove the value NO for httpd_flags
httpd_flags=
In /etc/httpd.conf
server "localhost"{ listen on 0.0.0.0 port 80 root "/htdocs/localhost" }
- In the configuration file root points to /var/www
- The logs are in /var/ww/logs
1 /etc/rc.d/httpd start
2 /etc/rc.d/httpd check
3 pkg_info -Q wget
4 pkg_add wget-1.20.2
5 wget http://localhost/
6 mkdir -p /var/www/htdocs/localhost
7 echo -e "<html><body>Hello</body></html>" > /var/www/htdocs/localhost/index.html
8 /etc/rc.d/httpd restart
9 pkg_add fcgi-2.4.0p16
10 pkg_add spawn-fcgi-1.6.3p0
11 # https://web.archive.org/web/20160122022029/http://www.fastcgi.com/drupal/node/6?q=node/21
12
fcgi.c
1 #include "fcgi_stdio.h"
2 #include <stdlib.h>
3
4 void main(void)
5 {
6 int count = 0;
7 while(FCGI_Accept() >= 0)
8 printf("Content-type: text/html\r\n"
9 "\r\n"
10 "<title>FastCGI Hello!</title>"
11 "<h1>FastCGI Hello!</h1>"
12 "Request number %d running on host <i>%s</i>\n",
13 ++count, getenv("SERVER_NAME"));
14 }
1 cd /var/www/htdocs/localhost
2 cc fcgi.c -o fcgi -lfcgi -I /usr/local/include -L /usr/local/lib
3 mkdir -p /var/www/usr/bin
4 mkdir -p /var/www/usr/lib
5 mkdir -p /var/www/usr/libexec
6 cp /usr/lib/libc.so.95.0 /var/www/usr/lib/libc.so.95.0
7 cp /usr/libexec/ld.so /var/www/usr/libexec/ld.so
8 cp ./usr/local/lib/libfcgi.so.0.0 /var/www/usr/lib
9
10 mkdir -p /var/www/htdocs/localhost/usr/bin
11 mkdir -p /var/www/htdocs/localhost/usr/lib
12 mkdir -p /var/www/htdocs/localhost/usr/libexec
13 cp /usr/lib/libc.so.95.0 /var/www/htdocs/localhost/usr/lib/libc.so.95.0
14 cp /usr/libexec/ld.so /var/www/htdocs/localhost/usr/libexec/ld.so
15 cp /usr/local/lib/libfcgi.so.0.0 /var/www/htdocs/localhost/usr/lib
16
17 pkg_add apache-httpd-2.4.39p1
18 /etc/rc.d/apache2 start
19 # http://localhost:8080/
20
21 pkg_add gtar-1.32
22 wget http://mirrors.up.pt/pub/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.bz2
23 bunzip2 mod_fcgid-2.3.9.tar.bz2| tar xvf -
24 tar xvf mod_fcgid-2.3.9.tar
25 cd mod_fcgid-2.3.9
26 ./configure.apxs
27 make
28 make install
29 # /usr/local/lib/apache2/mod_fcgid.so
30 vi /etc/apache2/httpd2.conf
31 # LoadModule /usr/local/lib/apache2/mod_fcgid.so
32 # Virtual hosts
33 Include /etc/apache2/extra/httpd-vhosts.conf
34
35 /var/www/htdocs/localhost/cgi-bin
36 fcgi.c fcgi.fcgi
37
38 /etc/apache2/extra/httpd-vhosts.conf
39
40 <VirtualHost *:80>
41 ServerName localhost
42 FcgidInitialEnv name value
43 DocumentRoot "/var/www/htdocs/localhost"
44 ScriptAlias / /var/www/htdocs/localhost/
45 <Directory "/var/www/htdocs/localhost">
46 SetHandler fcgid-script
47 Options +ExecCGI
48 Allow from all
49 </Directory>
50 </VirtualHost>
51
52 # install pip
53 pkg_add py-pip-9.0.3
54 ln -sf /usr/local/bin/pip2.7 /usr/local/bin/pip
55 pip install flup
56 pkg_add py3-pip-9.0.3
57 pip3.6 install flup
Custom service
/usr/local/sbin/beat.py
1 #!/usr/bin/python
2 import threading
3 import time
4 import os
5 import syslog
6 import datetime
7 import sys
8 import signal
9
10 def termHandler(signal,frame):
11 print('Signal term caught')
12 sys.exit(0)
13
14 if __name__=="__main__":
15 f=open('/var/run/beat.pid','wa')
16 f.write('%d'%(os.getpid()))
17 f.close()
18 signal.signal(signal.SIGTERM,termHandler)
19
20 while True:
21 syslog.syslog(syslog.LOG_INFO, "Beat %s"%(datetime.datetime.now()) )
22 time.sleep(5)
/etc/rc.d/beat
daemon="/usr/local/bin/python2.7 /usr/local/sbin/beat.py" rc_bg=YES . /etc/rc.d/rc.subr rc_cmd $1