2023-06-29-Raspberry-Pi-Model-B-Rev-2--RAM-512-MB pi@raspberrypi:~ $ date Thu 29 Jun 2023 11:29:09 AM MDT pi@raspberrypi:~ $ cd /proc pi@raspberrypi:/proc $ sudo apt update Hit:1 http://archive.raspberrypi.org/debian bullseye InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. pi@raspberrypi:/proc $ $PATH bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory pi@raspberrypi:/proc $ cat cpuinfo processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 697.95 Features : half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2835 Revision : 000e Serial : 0000000004ea4fb7 Model : Raspberry Pi Model B Rev 2 pi@raspberrypi:/proc $ pi@raspberrypi:/proc $ cat meminfo MemTotal: 439596 kB MemFree: 81808 kB MemAvailable: 240176 kB Buffers: 7448 kB Cached: 195228 kB SwapCached: 18468 kB Active: 76848 kB Inactive: 230960 kB Active(anon): 10876 kB Inactive(anon): 100016 kB Active(file): 65972 kB Inactive(file): 130944 kB Unevictable: 16 kB Mlocked: 16 kB SwapTotal: 102396 kB SwapFree: 81916 kB Zswap: 0 kB Zswapped: 0 kB Dirty: 16 kB Writeback: 0 kB AnonPages: 86696 kB Mapped: 64516 kB Shmem: 5760 kB KReclaimable: 13012 kB Slab: 25132 kB SReclaimable: 13012 kB SUnreclaim: 12120 kB KernelStack: 1584 kB PageTables: 3932 kB SecPageTables: 0 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 322192 kB Committed_AS: 1143676 kB VmallocTotal: 573440 kB VmallocUsed: 5752 kB VmallocChunk: 0 kB Percpu: 64 kB CmaTotal: 262144 kB CmaFree: 19540 kB pi@raspberrypi:/proc $ pi@raspberrypi:/proc $ cat version Linux version 6.1.21+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1642 Mon Apr 3 17:19:14 BST 2023 pi@raspberrypi:/proc $ cd pi@raspberrypi:~ $ df -H Filesystem Size Used Avail Use% Mounted on /dev/root 31G 26G 2.9G 91% / devtmpfs 91M 0 91M 0% /dev tmpfs 226M 0 226M 0% /dev/shm tmpfs 91M 1.1M 89M 2% /run tmpfs 5.3M 4.1k 5.3M 1% /run/lock /dev/mmcblk0p1 265M 53M 212M 20% /boot tmpfs 46M 33k 45M 1% /run/user/1000 pi@raspberrypi:~ $ pi@raspberrypi:~ $ # Chromium is not supported on Raspberry Pi Model B pi@raspberrypi:~ $ pi@raspberrypi:~ $ # Loaded: CPU Freq frontend (Frequency:700 MHz), CPU Usage Monitor, CPU Temperature Monitor, Links2, File Manager, Terminal, Text Editor, Geany, and Pluma to Task Bar. pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ # from: freedom.zip file expanded to freedom. The directions: 2022-07-12-thttpd-install-on-32-or-64-bit-OS.txt pi@raspberrypi:~ $ pi@raspberrypi:~ $ # Make sure the "path" begins with: "/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/...." ***************************** pi@raspberrypi:~ $ pi@raspberrypi:~ $ $PATH bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ cd /etc pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ cat profile # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "$(id -u)" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" fi export PATH if [ "${PS1-}" ]; then if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1='\h:\w\$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "$(id -u)" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r $i ]; then . $i fi done unset i fi pi@raspberrypi:/etc $ sudo nano profile pi@raspberrypi:/etc $ Make changes to both PATH lines! pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ cat profile # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "$(id -u)" -eq 0 ]; then PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" fi export PATH if [ "${PS1-}" ]; then if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1='\h:\w\$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "$(id -u)" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r $i ]; then . $i fi done unset i fi pi@raspberrypi:/etc $ sudo reboot pi@raspberrypi:~ $ date Thu 29 Jun 2023 12:24:56 PM MDT pi@raspberrypi:~ $ $PATH bash: /home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory pi@raspberrypi:~ $ pi@raspberrypi:~ $ Start Geany, open: freedom/2022-07-12-thttpd-install-on-32-or-64-bit-OS.txt Under Document: Line Wrapping Auto-indention Indent Type: Tabs and Spaces Indent Width: 4 Read Only - This will keep you from messing up the directions. Set Line Endings: Convert and Set to CR/LF (Windows). Under View: Change Font... I changed the size to 16 or sometinig you can read. Show Markers Margin Show Line Numbers Show White Space Show Line Endings Show Message Window - This will be the Terminal Window when you scroll down to it. Show Tool Bar Bottom left hand corner, click down to Terminal (Message Window). Right Click in Terminal and choose Preferences: Set Font size to 16 or what you chose in the Geany View setting. Foreground Color: Black. I have trouble seeing some of the colors. Background Color: light Grey. Scrollback Lines: 5000 or what ever is max. It looks like 500 might be the max it will save. I think I am ready to start the build process. pi@raspberrypi:~ $ date Thu 29 Jun 2023 02:35:23 PM MDT pi@raspberrypi:~ $ pi@raspberrypi:~ $ $PATH ### 444 bash: /home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo mkdir -v /fd /hd /sd ### sudo 449 mkdir: created directory '/fd' mkdir: created directory '/hd' mkdir: created directory '/sd' pi@raspberrypi:~ $ # ***************************** pi@raspberrypi:~ $ cd ~/freedom/Acme.com/thttpd-2.29/ #***** pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ ls aclocal.m4 configure INSTALL match.o scripts timers.c cgi-bin configure.in install-sh mime_encodings.h strerror.c timers.h cgi-src contrib libhttpd.c mime_encodings.txt tdate_parse.c timers.o config.cache extras libhttpd.h mime_types.h tdate_parse.h TODO config.guess fdwatch.c libhttpd.o mime_types.txt tdate_parse.o version.h config.h fdwatch.h Makefile mmc.c thttpd config.log fdwatch.o Makefile.in mmc.h thttpd.8 config.status FILES match.c mmc.o thttpd.c config.sub index.html match.h README thttpd.o pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # Makefile.in is OK, Line 116 is man1 and 117 is man8. pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # config.h is OK, Line 131 #define TILDE_MAP_1 "users" pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # configure is OK, Line 12 is ac_default_prefix=/home/local pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # # Chromium is not supported on Raspberry Pi Model B pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # I saw that "Links2" is in "Add/Remove Software" under "Internet" and it does both text and graphics which one can add to the Panel Application Launch Bar to replace Chromium. pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ df -H Filesystem Size Used Avail Use% Mounted on /dev/root 31G 26G 2.9G 91% / devtmpfs 91M 0 91M 0% /dev tmpfs 226M 0 226M 0% /dev/shm tmpfs 91M 1.1M 89M 2% /run tmpfs 5.3M 4.1k 5.3M 1% /run/lock /dev/mmcblk0p1 265M 53M 212M 20% /boot tmpfs 46M 46k 45M 1% /run/user/1000 pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ cd /etc ### 835 pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ date Thu 29 Jun 2023 03:21:58 PM MDT pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ cat group ### (we are looking for a group "www") 839 root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:pi tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20:pi fax:x:21: voice:x:22: cdrom:x:24:pi floppy:x:25: tape:x:26: sudo:x:27:pi audio:x:29:pi,pulse dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:pi sasl:x:45: plugdev:x:46:pi staff:x:50: games:x:60:pi users:x:100:pi nogroup:x:65534: systemd-timesync:x:101: systemd-journal:x:102: systemd-network:x:103: systemd-resolve:x:104: input:x:105:pi kvm:x:106: render:x:107:pi crontab:x:108: netdev:x:109:pi pi:x:1000: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:pi i2c:x:998:pi gpio:x:997:pi lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,pi ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ sudo addgroup --system www ### sudo 967 Adding group `www' (GID 126) ... Done. pi@raspberrypi:/etc $ sudo adduser pi www ### sudo 977 Adding user `pi' to group `www' ... Adding user pi to group www Done. pi@raspberrypi:/etc $ cat group ### 988 root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:pi tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20:pi fax:x:21: voice:x:22: cdrom:x:24:pi floppy:x:25: tape:x:26: sudo:x:27:pi audio:x:29:pi,pulse dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:pi sasl:x:45: plugdev:x:46:pi staff:x:50: games:x:60:pi users:x:100:pi nogroup:x:65534: systemd-timesync:x:101: systemd-journal:x:102: systemd-network:x:103: systemd-resolve:x:104: input:x:105:pi kvm:x:106: render:x:107:pi crontab:x:108: netdev:x:109:pi pi:x:1000: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:pi i2c:x:998:pi gpio:x:997:pi lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,pi ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: www:x:126:pi pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ cd ~/freedom/Acme.com/thttpd-2.29 ### 1074 pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ date Thu 29 Jun 2023 03:41:07 PM MDT pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ date ### 1136 Thu 29 Jun 2023 03:42:55 PM MDT pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ make clean ### Step one. 1142 for i in cgi-src extras ; do ( \ cd $i ; \ pwd ; \ make clean \ ) ; done /home/pi/freedom/Acme.com/thttpd-2.29/cgi-src make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src' rm -f *.o redirect ssi phf make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src' /home/pi/freedom/Acme.com/thttpd-2.29/extras make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras' rm -f *.o makeweb htpasswd make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras' rm -f thttpd thttpd.o libhttpd.o fdwatch.o mmc.o timers.o match.o tdate_parse.o mime_encodings.h mime_types.h pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ ./configure ### Step two. 1175 loading cache ./config.cache checking host system type... Invalid configuration `armv6l-pc-linux-gnuoldld': machine `armv6l-pc' not recognized checking target system type... Invalid configuration `armv6l-pc-linux-gnuoldld': machine `armv6l-pc' not recognized checking build system type... Invalid configuration `armv6l-pc-linux-gnuoldld': machine `armv6l-pc' not recognized checking for gcc... (cached) gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking gcc version... (cached) 10 checking how to link static binaries... (cached) unknown checking for __progname... (cached) yes checking how to run the C preprocessor... (cached) gcc -E checking for fcntl.h... (cached) yes checking for grp.h... (cached) yes checking for memory.h... (cached) yes checking for paths.h... (cached) yes checking for poll.h... (cached) yes checking for sys/poll.h... (cached) yes checking for sys/devpoll.h... (cached) no checking for sys/event.h... (cached) no checking for osreldate.h... (cached) no checking whether time.h and sys/time.h may both be included... (cached) yes checking for dirent.h that defines DIR... (cached) yes checking for opendir in -ldir... (cached) no checking for /usr/local/v6/lib... no checking for gethostbyname... (cached) yes checking for socket... (cached) yes checking for main in -linet6... (cached) no checking for crypt... (cached) no checking for crypt in -lcrypt... (cached) yes checking for hstrerror... (cached) yes checking for strerror... (cached) yes checking for waitpid... (cached) yes checking for vsnprintf... (cached) yes checking for daemon... (cached) yes checking for setsid... (cached) yes checking for setlogin... (cached) no checking for getaddrinfo... (cached) yes checking for getnameinfo... (cached) yes checking for gai_strerror... (cached) yes checking for kqueue... (cached) no checking for sigset... (cached) yes checking for atoll... (cached) yes checking for unistd.h... (cached) yes checking for getpagesize... (cached) yes checking for working mmap... (cached) yes checking for select... (cached) yes checking for poll... (cached) yes checking if struct tm has tm_gmtoff member... (cached) yes checking if int64_t exists... (cached) yes checking if socklen_t exists... (cached) yes checking whether make sets ${MAKE}... (cached) yes checking for a BSD compatible install... (cached) /usr/bin/install -c creating ./config.status creating Makefile creating cgi-src/Makefile creating extras/Makefile pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ make ### Step three. 1251 gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -c thttpd.c thttpd.c: In function ‘main’: thttpd.c:611:12: warning: implicit declaration of function ‘sigset’; did you mean ‘isset’? [-Wimplicit-function-declaration] 611 | (void) sigset( SIGTERM, handle_term ); | ^~~~~~ | isset rm -f mime_encodings.h sed < mime_encodings.txt > mime_encodings.h \ -e 's/#.*//' -e 's/[ ]*$//' -e '/^$/d' \ -e 's/[ ][ ]*/", 0, "/' -e 's/^/{ "/' -e 's/$/", 0 },/' rm -f mime_types.h sed < mime_types.txt > mime_types.h \ -e 's/#.*//' -e 's/[ ]*$//' -e '/^$/d' \ -e 's/[ ][ ]*/", 0, "/' -e 's/^/{ "/' -e 's/$/", 0 },/' gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -c libhttpd.c libhttpd.c: In function ‘cgi_child’: libhttpd.c:3557:12: warning: implicit declaration of function ‘sigset’; did you mean ‘isset’? [-Wimplicit-function-declaration] 3557 | (void) sigset( SIGPIPE, SIG_DFL ); | ^~~~~~ | isset libhttpd.c: In function ‘ls’: libhttpd.c:2846:10: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=] 2846 | (void) strncpy( nameptrs[nnames], de->d_name, namlen ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ libhttpd.c:64:25: note: length computed here 64 | # define NAMLEN(dirent) strlen((dirent)->d_name) | ^~~~~~~~~~~~~~~~~~~~~~~~ libhttpd.c:2845:12: note: in expansion of macro ‘NAMLEN’ 2845 | namlen = NAMLEN(de); | ^~~~~~ gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -c fdwatch.c gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -c mmc.c gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -c timers.c gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -c match.c gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -c tdate_parse.c gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I. -o thttpd thttpd.o libhttpd.o fdwatch.o mmc.o timers.o match.o tdate_parse.o -lcrypt for i in cgi-src extras ; do ( \ cd $i ; \ pwd ; \ make \ WEBDIR=/home/local/www \ CGIBINDIR=/home/local/www/cgi-bin \ MANDIR=/home/local/man \ WEBGROUP=www \ ) ; done /home/pi/freedom/Acme.com/thttpd-2.29/cgi-src make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src' gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -c redirect.c gcc redirect.o -lcrypt -o redirect gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -c ssi.c ssi.c: In function ‘get_filename.constprop’: ssi.c:183:9: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=] 183 | (void) strncpy( fn, filename, fl - vl ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ssi.c:169:10: note: length computed here 169 | fl = strlen( filename ); | ^~~~~~~~~~~~~~~~~~ gcc ssi.o ../match.o -lcrypt -o ssi gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -c phf.c gcc phf.o -lcrypt -o phf make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src' /home/pi/freedom/Acme.com/thttpd-2.29/extras make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras' gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -DWEBDIR=\"/home/local/www\" -c makeweb.c gcc makeweb.o -o makeweb -lcrypt gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -DWEBDIR=\"/home/local/www\" -c htpasswd.c gcc htpasswd.o -o htpasswd -lcrypt make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras' pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ sudo make install ### sudo Step four. 1334 mkdir -p /home/local/sbin /usr/bin/install -c -m 555 -o bin -g bin thttpd /home/local/sbin mkdir -p /home/local/man/man1 mkdir -p /home/local/man/man8 /usr/bin/install -c -m 444 -o bin -g bin thttpd.8 /home/local/man/man8 for i in cgi-src extras ; do ( \ cd $i ; \ pwd ; \ make \ WEBDIR=/home/local/www \ CGIBINDIR=/home/local/www/cgi-bin \ MANDIR=/home/local/man \ WEBGROUP=www \ install \ ) ; done /home/pi/freedom/Acme.com/thttpd-2.29/cgi-src make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src' mkdir -p /home/local/www/cgi-bin rm -f /home/local/www/cgi-bin/redirect cp redirect /home/local/www/cgi-bin/redirect rm -f /home/local/man/man8/redirect.8 cp redirect.8 /home/local/man/man8/redirect.8 rm -f /home/local/www/cgi-bin/ssi cp ssi /home/local/www/cgi-bin/ssi rm -f /home/local/man/man8/ssi.8 cp ssi.8 /home/local/man/man8/ssi.8 rm -f /home/local/www/cgi-bin/phf cp phf /home/local/www/cgi-bin/phf make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src' /home/pi/freedom/Acme.com/thttpd-2.29/extras make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras' rm -f /home/local/sbin/makeweb /home/local/sbin/htpasswd /home/local/sbin/syslogtocern cp makeweb /home/local/sbin/makeweb chgrp www /home/local/sbin/makeweb chmod 2755 /home/local/sbin/makeweb cp htpasswd /home/local/sbin/htpasswd cp syslogtocern /home/local/sbin/syslogtocern rm -f /home/local/man/man1/makeweb.1 cp makeweb.1 /home/local/man/man1/makeweb.1 rm -f /home/local/man/man1/htpasswd.1 cp htpasswd.1 /home/local/man/man1/htpasswd.1 rm -f /home/local/man/man8/syslogtocern.8 cp syslogtocern.8 /home/local/man/man8/syslogtocern.8 make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras' pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ date ### 1389 Thu 29 Jun 2023 03:50:03 PM MDT pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ ### "thttpd" is now installed. 1398 pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ ### The next thing is to add directories "logs" and "users" to the "www" directory. pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ cd /home/local/www ### 1409 pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ ls -al ### 1414 total 12 drwxr-xr-x 3 root root 4096 Jun 29 15:49 . drwxr-xr-x 5 root root 4096 Jun 29 15:49 .. drwxr-xr-x 2 root root 4096 Jun 29 15:49 cgi-bin pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ sudo mkdir -v logs users ### sudo 1423 mkdir: created directory 'logs' mkdir: created directory 'logs' mkdir: created directory 'users' pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ ls -al ### 1430 total 20 drwxr-xr-x 5 root root 4096 Jun 29 15:55 . drwxr-xr-x 5 root root 4096 Jun 29 15:49 .. drwxr-xr-x 2 root root 4096 Jun 29 15:49 cgi-bin drwxr-xr-x 2 root root 4096 Jun 29 15:55 logs drwxr-xr-x 2 root root 4096 Jun 29 15:55 users pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ ### ***** Now we need to change the permissions on "users", so those in the "www" group can write to this directory!***** pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ sudo chmod -v 775 users ### sudo 1449 mode of 'users' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x) pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ ls -al ### 1455 total 20 drwxr-xr-x 5 root root 4096 Jun 29 15:55 . drwxr-xr-x 5 root root 4096 Jun 29 15:49 .. drwxr-xr-x 2 root root 4096 Jun 29 15:49 cgi-bin drwxr-xr-x 2 root root 4096 Jun 29 15:55 logs drwxrwxr-x 2 root root 4096 Jun 29 15:55 users pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ ### Make sure users is now 0775 (drwxrwxr-x). 1463 pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ ### Now we go back one level so we can change the owner and group on everything in the "www" directory from "root:root" to "root:www". pi@raspberrypi:/home/local/www $ pi@raspberrypi:/home/local/www $ cd ../ ### 1475 pi@raspberrypi:/home/local $ pi@raspberrypi:/home/local $ sudo chown -vR root:www www ### sudo 1480 changed ownership of 'www/users' from root:root to root:www changed ownership of 'www/logs' from root:root to root:www changed ownership of 'www/cgi-bin/redirect' from root:root to root:www changed ownership of 'www/cgi-bin/phf' from root:root to root:www changed ownership of 'www/cgi-bin/ssi' from root:root to root:www changed ownership of 'www/cgi-bin' from root:root to root:www changed ownership of 'www' from root:root to root:www pi@raspberrypi:/home/local $ pi@raspberrypi:/home/local $ pi@raspberrypi:/home/local $ ls -al ### 1492 total 20 drwxr-xr-x 5 root root 4096 Jun 29 15:49 . drwxr-xr-x 4 root root 4096 Jun 29 15:49 .. drwxr-xr-x 4 root root 4096 Jun 29 15:49 man drwxr-xr-x 2 root root 4096 Jun 29 15:49 sbin drwxr-xr-x 5 root www 4096 Jun 29 15:55 www pi@raspberrypi:/home/local $ pi@raspberrypi:/home/local $ pi@raspberrypi:/home/local $ ### We now change back to the "(pi)" home directory and are going to add a "user" that belongs in the "www" group, from the help on "adduser" we see what we have to type. pi@raspberrypi:/home/local $ pi@raspberrypi:/home/local $ cd ### 1511 pi@raspberrypi:~ $ pi@raspberrypi:~ $ ### For an example, one can think of these as different tabs or categories on your website. Use a different password for these "users" than the one you use for "(pi)" for more security. The information it asks for was for the "finger" program which most computers don't run for security reasons. I usually just use the "user" for the name and leave the rest blank. pi@raspberrypi:~ $ pi@raspberrypi:~ $ # This is where one should probably use "a0" "a" (61 hex) and "0" zero (30 hex), so it will be the master user and at the top of the list for any other users one might add. "a0" is where you can put your log files. pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo adduser --add_extra_groups a0 ### sudo 1557 Adding user `a0' ... Adding new group `a0' (1001) ... Adding new user `a0' (1001) with group `a0' ... Creating home directory `/home/a0' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for a0 Enter the new value, or press ENTER for the default Full Name []: a0 Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y Adding new user `a0' to extra groups ... Adding user `a0' to group `dialout' ... Adding user `a0' to group `cdrom' ... Adding user `a0' to group `floppy' ... Adding user `a0' to group `audio' ... Adding user `a0' to group `video' ... Adding user `a0' to group `plugdev' ... Adding user `a0' to group `users' ... pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo adduser a0 www ### sudo adduser XXXX to group yyy. 1596 Adding user `a0' to group `www' ... Adding user a0 to group www Done. pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ su a0 ### Change to user "a0" 1604 Password: a0@raspberrypi:/home/pi $ # here we are still in "/home/pi", and the user is now "a0". a0@raspberrypi:/home/pi $ a0@raspberrypi:/home/pi $ cd ### Change to the "a0" home directory. 1614 a0@raspberrypi:~ $ a0@raspberrypi:~ $ ls -al ### 1619 total 24 drwxr-xr-x 2 a0 a0 4096 Jun 29 16:04 . drwxr-xr-x 5 root root 4096 Jun 29 16:04 .. -rw-r--r-- 1 a0 a0 220 Jun 29 16:04 .bash_logout -rw-r--r-- 1 a0 a0 3523 Jun 29 16:04 .bashrc -rw-r--r-- 1 a0 a0 1670 Jun 29 16:04 .mkshrc -rw-r--r-- 1 a0 a0 807 Jun 29 16:04 .profile a0@raspberrypi:~ $ a0@raspberrypi:~ $ touch .1001 ### Since the computer uses numbers instead of names this is one way to know what number a user is. The period before the number will keep it from copying to the web page since it makes the file hidden. 1630 a0@raspberrypi:~ $ a0@raspberrypi:~ $ ### if makeweb does not work (no permission) did you?: sudo chmod -v 0775 /home/local/www/users #? and it actually changed the permissions to (drwxrwxr-x)? a0@raspberrypi:~ $ a0@raspberrypi:~ $ makeweb ### 1639 Created web directory /home/local/www/users/a0 Created symbolic link /home/a0/public_html a0@raspberrypi:~ $ a0@raspberrypi:~ $ a0@raspberrypi:~ $ ls -al ### 1646 total 24 drwxr-xr-x 2 a0 a0 4096 Jun 29 16:12 . drwxr-xr-x 5 root root 4096 Jun 29 16:04 .. -rw-r--r-- 1 a0 a0 0 Jun 29 16:11 .1001 -rw-r--r-- 1 a0 a0 220 Jun 29 16:04 .bash_logout -rw-r--r-- 1 a0 a0 3523 Jun 29 16:04 .bashrc -rw-r--r-- 1 a0 a0 1670 Jun 29 16:04 .mkshrc -rw-r--r-- 1 a0 a0 807 Jun 29 16:04 .profile lrwxrwxrwx 1 a0 www 24 Jun 29 16:12 public_html -> /home/local/www/users/a0 a0@raspberrypi:~ $ a0@raspberrypi:~ $ exit ### This lets us exit back to where we were. 1660 exit pi@raspberrypi:~ $ pi@raspberrypi:~ $ cat /etc/group ### 1666 root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:pi tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20:pi,a0 fax:x:21: voice:x:22: cdrom:x:24:pi,a0 floppy:x:25:a0 tape:x:26: sudo:x:27:pi audio:x:29:pi,pulse,a0 dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:pi,a0 sasl:x:45: plugdev:x:46:pi,a0 staff:x:50: games:x:60:pi users:x:100:pi,a0 nogroup:x:65534: systemd-timesync:x:101: systemd-journal:x:102: systemd-network:x:103: systemd-resolve:x:104: input:x:105:pi kvm:x:106: render:x:107:pi crontab:x:108: netdev:x:109:pi pi:x:1000: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:pi i2c:x:998:pi gpio:x:997:pi lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,pi ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: www:x:126:pi,a0 a0:x:1001: pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ cd /home ### 1744 pi@raspberrypi:/home $ pi@raspberrypi:/home $ ls -al ### 1748 total 20 drwxr-xr-x 5 root root 4096 Jun 29 16:04 . drwxr-xr-x 23 root root 4096 Jun 29 14:37 .. drwxr-xr-x 2 a0 a0 4096 Jun 29 16:14 a0 drwxr-xr-x 5 root root 4096 Jun 29 15:49 local drwxr-xr-x 21 pi pi 4096 Jun 29 15:52 pi pi@raspberrypi:/home $ pi@raspberrypi:/home $ ### Since I want to be able to access "a0" from "pi" I will change the group on "a0" to "www". pi@raspberrypi:/home $ pi@raspberrypi:/home $ sudo chown -vR a0:www a0 ### sudo 1763 changed ownership of 'a0/.1001' from a0:a0 to a0:www changed ownership of 'a0/.bashrc' from a0:a0 to a0:www changed ownership of 'a0/.bash_history' from a0:a0 to a0:www changed ownership of 'a0/.bash_logout' from a0:a0 to a0:www ownership of 'a0/public_html' retained as a0:www changed ownership of 'a0/.mkshrc' from a0:a0 to a0:www changed ownership of 'a0/.profile' from a0:a0 to a0:www changed ownership of 'a0' from a0:a0 to a0:www pi@raspberrypi:/home $ pi@raspberrypi:/home $ ls -al ### 1775 total 20 drwxr-xr-x 5 root root 4096 Jun 29 16:04 . drwxr-xr-x 23 root root 4096 Jun 29 14:37 .. drwxr-xr-x 2 a0 www 4096 Jun 29 16:14 a0 drwxr-xr-x 5 root root 4096 Jun 29 15:49 local drwxr-xr-x 21 pi pi 4096 Jun 29 15:52 pi pi@raspberrypi:/home $ pi@raspberrypi:/home $ cd /home/local/www/users ### 1785 pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ ls -al ### 1790 total 12 drwxrwxr-x 3 root www 4096 Jun 29 16:12 . drwxr-xr-x 5 root www 4096 Jun 29 15:55 .. drwxr-xr-x 2 a0 a0 4096 Jun 29 16:12 a0 pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ ### Since I want to be able to access "a0" from "pi" I will change the group on "a0" to "www". pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ sudo chown -vR a0:www a0 ### sudo 1803 changed ownership of 'a0' from a0:a0 to a0:www pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ ls -al ### 1809 total 12 drwxrwxr-x 3 root www 4096 Jun 29 16:12 . drwxr-xr-x 5 root www 4096 Jun 29 15:55 .. drwxr-xr-x 2 a0 www 4096 Jun 29 16:12 a0 pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ # So far so good! We now have a main www user installed. pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ date ### 1820 Thu 29 Jun 2023 04:21:41 PM MDT pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ ### I liked the "anvil_thttpd.gif" on the Acme.com website and chose it as my favicon.ico by renaming a copy to favicon.ico. An "anvil" is built to be hammered on without failing, and "thttpd" is built to take a hammering without failing. It is bullet proof! When you look at your logs you will see how "thttpd" will block all sorts of attempts to break your website! You will also get an idea of things to avoid on your website. pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ cd /home/local/sbin ### 1836 pi@raspberrypi:/home/local/sbin $ pi@raspberrypi:/home/local/sbin $ ls -al ### 1841 total 136 drwxr-xr-x 2 root root 4096 Jun 29 15:49 . drwxr-xr-x 5 root root 4096 Jun 29 15:49 .. -rwxr-xr-x 1 root root 13692 Jun 29 15:49 htpasswd -rwxr-sr-x 1 root www 12996 Jun 29 15:49 makeweb -r-xr-xr-x 1 root root 2878 Jun 29 15:49 syslogtocern -r-xr-xr-x 1 bin bin 91232 Jun 29 15:49 thttpd pi@raspberrypi:/home/local/sbin $ pi@raspberrypi:/home/local/sbin $ cd ~/freedom ### (The directory "freedom" should be in "/home/(pi)/"). 1853 pi@raspberrypi:~/freedom $ pi@raspberrypi:~/freedom $ ls -al ### 1857 total 1168 drwxr-xr-x 9 pi pi 4096 Jul 22 2022 . drwxr-xr-x 21 pi pi 4096 Jun 29 16:28 .. -r--r--r-- 1 pi pi 32014 Jan 8 2020 2010Website.pdf -r--r--r-- 1 pi pi 11024 Jan 8 2020 2019-09-05-Project.txt -r--r--r-- 1 pi pi 11941 Jan 8 2020 2019-10-01-website.txt -r--r--r-- 1 pi pi 6365 Jan 8 2020 2019-11-26-web-server.txt -r--r--r-- 1 pi pi 21340 Jan 8 2020 2019-12-06-Google-Search-Is-Broken.txt -r--r--r-- 1 pi pi 12817 Jun 14 2022 2020-07-17-thttpd.txt -r--r--r-- 1 pi pi 17955 Sep 10 2021 2021-09-01.txt -r--r--r-- 1 pi pi 18393 Sep 11 2021 2021-09-07-Formatting-Drives-Greater-Than-512GB.txt -r--r--r-- 1 pi pi 213516 Jul 12 2022 2022-07-12-thttpd-install-on-32-or-64-bit-OS.txt -r--r--r-- 1 pi pi 213516 Jul 12 2022 2022-07-12-thttpd-install-on-32-or-64-bit-OS.txt~ -r--r--r-- 1 pi pi 195627 Jul 13 2022 2022-07-12-thttpd-install-test.txt drwxr-xr-x 2 pi pi 4096 Jul 13 2022 2022-07-13-Pi-Model-B-Plus-Rev-2-1 drwxr-xr-x 2 pi pi 4096 Jul 13 2022 2022-07-13-Pi-Model-B-Rev-2 drwxr-xr-x 22 pi pi 4096 Jul 12 2022 Acme.com -rw-r--r-- 1 pi pi 26886 Jul 22 2022 command-line-PATH-bug.txt -r--r--r-- 1 pi pi 26886 Jul 22 2022 command-line-PATH-bug.txt~ drwxr-xr-x 4 pi pi 4096 Jul 12 2022 'HTML Sampler_files' -r--r--r-- 1 pi pi 26907 Aug 16 2021 'HTML Sampler.html' -rw-r--r-- 1 pi pi 85 Jun 7 2022 list.txt drwxr-xr-x 2 pi pi 4096 Jul 12 2022 os-debug -r--r--r-- 1 pi pi 4764 Jul 15 2022 Raspberry-Pi-wget-web-server-transfer-rates.txt -r--r--r-- 1 pi pi 75550 Jul 21 2022 readme.txt -r--r--r-- 1 pi pi 75550 Jul 21 2022 readme.txt~ -r--r--r-- 1 pi pi 80728 Sep 8 2021 rfc3875-CGI.txt -r--r--r-- 1 pi pi 186 Jan 8 2020 sitemap.xml -r--r--r-- 1 pi pi 186 Jan 8 2020 sitemap.xml.txt -rwxr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config -r-xr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config~ drwxr-xr-x 3 pi pi 4096 Jul 12 2022 thttpd-extras -r--r--r-- 1 pi pi 27291 Jul 21 2022 thttpd-man-page.txt drwxr-xr-x 4 pi pi 4096 Jul 12 2022 vhost-DN-test pi@raspberrypi:~/freedom $ pi@raspberrypi:~/freedom $ pi@raspberrypi:~/freedom $ sudo cp -av thttpd-extras /home/local/sbin/ ### sudo 1890 'thttpd-extras' -> '/home/local/sbin/thttpd-extras' 'thttpd-extras/sitemap.xml' -> '/home/local/sbin/thttpd-extras/sitemap.xml' 'thttpd-extras/thttpd-rotate' -> '/home/local/sbin/thttpd-extras/thttpd-rotate' 'thttpd-extras/thttpd_wrapper~' -> '/home/local/sbin/thttpd-extras/thttpd_wrapper~' 'thttpd-extras/readme.txt' -> '/home/local/sbin/thttpd-extras/readme.txt' 'thttpd-extras/favicon.ico' -> '/home/local/sbin/thttpd-extras/favicon.ico' 'thttpd-extras/robots.txt' -> '/home/local/sbin/thttpd-extras/robots.txt' 'thttpd-extras/anvil_thttpd.gif' -> '/home/local/sbin/thttpd-extras/anvil_thttpd.gif' 'thttpd-extras/thttpd_config~' -> '/home/local/sbin/thttpd-extras/thttpd_config~' 'thttpd-extras/thttpd_wrapper' -> '/home/local/sbin/thttpd-extras/thttpd_wrapper' 'thttpd-extras/rc.local' -> '/home/local/sbin/thttpd-extras/rc.local' 'thttpd-extras/sitemap.xml.txt' -> '/home/local/sbin/thttpd-extras/sitemap.xml.txt' 'thttpd-extras/thttpd.sh~' -> '/home/local/sbin/thttpd-extras/thttpd.sh~' 'thttpd-extras/rc.local~' -> '/home/local/sbin/thttpd-extras/rc.local~' 'thttpd-extras/thttpd.sh' -> '/home/local/sbin/thttpd-extras/thttpd.sh' 'thttpd-extras/thttpd-rotate~' -> '/home/local/sbin/thttpd-extras/thttpd-rotate~' 'thttpd-extras/robots-site.txt' -> '/home/local/sbin/thttpd-extras/robots-site.txt' 'thttpd-extras/thttpd_config' -> '/home/local/sbin/thttpd-extras/thttpd_config' 'thttpd-extras/vhost-DN-test' -> '/home/local/sbin/thttpd-extras/vhost-DN-test' 'thttpd-extras/vhost-DN-test/a0' -> '/home/local/sbin/thttpd-extras/vhost-DN-test/a0' 'thttpd-extras/vhost-DN-test/a0/test' -> '/home/local/sbin/thttpd-extras/vhost-DN-test/a0/test' 'thttpd-extras/vhost-DN-test/192.168.1.128' -> '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128' 'thttpd-extras/vhost-DN-test/192.168.1.128/sample.txt' -> '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/sample.txt' 'thttpd-extras/vhost-DN-test/192.168.1.128/a0' -> '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0' 'thttpd-extras/vhost-DN-test/192.168.1.128/a0/test' -> '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0/test' pi@raspberrypi:~/freedom $ pi@raspberrypi:~/freedom $ pi@raspberrypi:~/freedom $ sudo cp -av os-debug /home/local/sbin/ ### sudo 1919 'os-debug' -> '/home/local/sbin/os-debug' 'os-debug/readme.txt~' -> '/home/local/sbin/os-debug/readme.txt~' 'os-debug/thttpd-rotate' -> '/home/local/sbin/os-debug/thttpd-rotate' 'os-debug/thttpd_wrapper~' -> '/home/local/sbin/os-debug/thttpd_wrapper~' 'os-debug/dead-thttpd' -> '/home/local/sbin/os-debug/dead-thttpd' 'os-debug/readme.txt' -> '/home/local/sbin/os-debug/readme.txt' 'os-debug/dead-thttpd~' -> '/home/local/sbin/os-debug/dead-thttpd~' 'os-debug/thttpd_wrapper' -> '/home/local/sbin/os-debug/thttpd_wrapper' 'os-debug/datelog~' -> '/home/local/sbin/os-debug/datelog~' 'os-debug/thttpd-rotate~' -> '/home/local/sbin/os-debug/thttpd-rotate~' 'os-debug/datelog' -> '/home/local/sbin/os-debug/datelog' pi@raspberrypi:~/freedom $ pi@raspberrypi:~/freedom $ pi@raspberrypi:~/freedom $ cd /home/local/sbin/thttpd-extras ### 1935 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ls -al ### 1939 total 80 drwxr-xr-x 3 pi pi 4096 Jul 12 2022 . drwxr-xr-x 4 root root 4096 Jun 29 16:34 .. -r--r--r-- 1 pi pi 533 Jan 8 2020 anvil_thttpd.gif -rw-r--r-- 1 pi pi 533 Jan 8 2020 favicon.ico -rwxr-xr-- 1 pi pi 485 Aug 31 2021 rc.local -r-xr-xr-- 1 pi pi 485 Aug 31 2021 rc.local~ -rw-r--r-- 1 pi pi 308 Aug 13 2021 readme.txt -r--r--r-- 1 pi pi 73 Jan 8 2020 robots-site.txt -rw-r--r-- 1 pi pi 27 Jan 8 2020 robots.txt -rw-r--r-- 1 pi pi 186 Jan 8 2020 sitemap.xml -r--r--r-- 1 pi pi 186 Jan 8 2020 sitemap.xml.txt -rwxr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config -r-xr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config~ -rwxr-xr-- 1 pi pi 1746 Aug 31 2021 thttpd-rotate -r-xr-xr-- 1 pi pi 1746 Aug 31 2021 thttpd-rotate~ -rwxr-xr-- 1 pi pi 136 Apr 22 2022 thttpd.sh -r-xr-xr-- 1 pi pi 136 Apr 22 2022 thttpd.sh~ -rwxr-xr-- 1 pi pi 122 Aug 31 2021 thttpd_wrapper -r-xr-xr-- 1 pi pi 122 Aug 31 2021 thttpd_wrapper~ drwxr-xr-x 4 pi pi 4096 Jul 12 2022 vhost-DN-test pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat /etc/rc.local ### 1965 #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi exit 0 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat rc.local ### 1990 #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # Start thttpd echo "Starting thttpd. \n" . /etc/thttpd.sh # exit 0 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -av rc.local /etc/rc.local ### sudo 2019 'rc.local' -> '/etc/rc.local' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ls -l /etc/rc.local ### 2025 -rwxr-xr-- 1 pi pi 485 Aug 31 2021 /etc/rc.local pi@raspberrypi:/home/local/sbin/thttpd-extras $ # (rc.local is still 0754) 2027 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd.sh /etc/ ### sudo 2032 'thttpd.sh' -> '/etc/thttpd.sh' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ls -l /etc/thttpd.sh ### 2038 -rwxr-xr-- 1 pi pi 136 Apr 22 2022 /etc/thttpd.sh pi@raspberrypi:/home/local/sbin/thttpd-extras $ # (thttpd.sh is still 0754) 2040 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat thttpd.sh ### 2045 #!/bin/sh # thttpd.sh if [ -x /home/local/sbin/thttpd_wrapper ] ; then echo " thttpd " /home/local/sbin/thttpd_wrapper & fi # exit 0 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ### thttpd.sh is looking for thttpd_wrapper to be in "/home/local/sbin/" and being 0754, so we will copy "thttpd_wrapper" up one level to there pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd_wrapper ../ ### sudo 2064 'thttpd_wrapper' -> '../thttpd_wrapper' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ls -l /home/local/sbin ### 2069 total 140 -rwxr-xr-x 1 root root 13692 Jun 29 15:49 htpasswd -rwxr-sr-x 1 root www 12996 Jun 29 15:49 makeweb drwxr-xr-x 2 pi pi 4096 Jul 12 2022 os-debug -r-xr-xr-x 1 root root 2878 Jun 29 15:49 syslogtocern -r-xr-xr-x 1 bin bin 91232 Jun 29 15:49 thttpd drwxr-xr-x 3 pi pi 4096 Jul 12 2022 thttpd-extras -rwxr-xr-- 1 pi pi 122 Aug 31 2021 thttpd_wrapper pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ### The purpose of the file "thttpd_wrapper" is to restart "thttpd" if it stops, and it checks every 10 seconds to see if "/home/local/sbin/thttpd" is running and it also loads the configuration file that is: "/home/local/www/thttpd_config". If one changes the config file, one only has to kill the "thttpd pid number" and the wrapper will restart it in 10 seconds with the new configuration. "sudo kill xxxx" will kill a program. To get all of the running "pid" numbers use "ps -e". If you forget to use "sudo" to manually start "thttpd" or even "rc.local" every 10 seconds you will get a message that "/home/local/www/logs/thttpd_log" can not be written to! (because it is now owned by nobody). What appears on your screen is not what you type in, but both the error message and what you type in. Type in "ps -e" and look for the number for "thttpd_wrapper" and then type in "sudo kill xxxx" with "xxxx" being the "pid" number. Been there, done that way too many times! pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat thttpd_wrapper ### 2087 #!/bin/sh # thttpd_wrapper while true ; do /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config sleep 10 done # pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ # Next "thttpd-rotate" needs to be moved to "/etc/cron.daily/" so our log files get moved every day. The time they get rotated is in "/etc/crontab" pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat /etc/crontab ### 2105 # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) # pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd-rotate /etc/cron.daily/ ### sudo 2132 'thttpd-rotate' -> '/etc/cron.daily/thttpd-rotate' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ls -al /etc/cron.daily ### 2137 total 32 total 40 drwxr-xr-x 2 root root 4096 Jun 29 16:47 . drwxr-xr-x 128 root root 12288 Jun 29 16:40 .. -rwxr-xr-x 1 root root 1478 Jun 10 2021 apt-compat -rwxr-xr-x 1 root root 1298 Apr 29 2021 dpkg -rwxr-xr-x 1 root root 377 Feb 28 2021 logrotate -rwxr-xr-x 1 root root 1123 Feb 19 2021 man-db -rw-r--r-- 1 root root 102 Feb 22 2021 .placeholder -rwxr-xr-- 1 pi pi 1746 Aug 31 2021 thttpd-rotate bash: total: command not found pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ### (thttpd_rotate is still 0754) pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ### The "thttpd_rotate" file I made is for 50 days so you don't have to move them every day, week, or even month. I also put a header and a tail on the files when they rotate so you have an idea how long your website has been up. pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat thttpd-rotate ### 2156 #!/bin/sh # /etc/cron.daily/thttpd-rotate cd /home/local/www/logs rm -f thttpd_log.50 mv thttpd_log.49 thttpd_log.50 mv thttpd_log.48 thttpd_log.49 mv thttpd_log.47 thttpd_log.48 mv thttpd_log.46 thttpd_log.47 mv thttpd_log.45 thttpd_log.46 mv thttpd_log.44 thttpd_log.45 mv thttpd_log.43 thttpd_log.44 mv thttpd_log.42 thttpd_log.43 mv thttpd_log.41 thttpd_log.42 mv thttpd_log.40 thttpd_log.41 mv thttpd_log.39 thttpd_log.40 mv thttpd_log.38 thttpd_log.39 mv thttpd_log.37 thttpd_log.38 mv thttpd_log.36 thttpd_log.37 mv thttpd_log.35 thttpd_log.36 mv thttpd_log.34 thttpd_log.35 mv thttpd_log.33 thttpd_log.34 mv thttpd_log.32 thttpd_log.33 mv thttpd_log.31 thttpd_log.32 mv thttpd_log.30 thttpd_log.31 mv thttpd_log.29 thttpd_log.30 mv thttpd_log.28 thttpd_log.29 mv thttpd_log.27 thttpd_log.28 mv thttpd_log.26 thttpd_log.27 mv thttpd_log.25 thttpd_log.26 mv thttpd_log.24 thttpd_log.25 mv thttpd_log.23 thttpd_log.24 mv thttpd_log.22 thttpd_log.23 mv thttpd_log.21 thttpd_log.22 mv thttpd_log.20 thttpd_log.21 mv thttpd_log.19 thttpd_log.20 mv thttpd_log.18 thttpd_log.19 mv thttpd_log.17 thttpd_log.18 mv thttpd_log.16 thttpd_log.17 mv thttpd_log.15 thttpd_log.16 mv thttpd_log.14 thttpd_log.15 mv thttpd_log.13 thttpd_log.14 mv thttpd_log.12 thttpd_log.13 mv thttpd_log.11 thttpd_log.12 mv thttpd_log.10 thttpd_log.11 mv thttpd_log.09 thttpd_log.10 mv thttpd_log.08 thttpd_log.09 mv thttpd_log.07 thttpd_log.08 mv thttpd_log.06 thttpd_log.07 mv thttpd_log.05 thttpd_log.06 mv thttpd_log.04 thttpd_log.05 mv thttpd_log.03 thttpd_log.04 mv thttpd_log.02 thttpd_log.03 mv thttpd_log.01 thttpd_log.02 date >> thttpd_log w >> thttpd_log mv thttpd_log thttpd_log.01 date > thttpd_log w >> thttpd_log kill -usr1 `cat /var/run/thttpd.pid` # pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ # ********* ### To copy the log files to dates, I: ### cd /home/local/www/logs/ ### and then type: ### ls -al ### to get a listing of the files and the dates for the files. Then to copy the files: ### "sudo cp -iav *log.xx 2020.01.01" with xx being the log number and then year.mo.da and then check that I have everything right before I press the enter key. Since the log files belong to nobody and nogroup, one has to use "sudo" and "cp -iav" so root can then change the owner to something else. ### Example: # sudo cp -iv *log.xx year.mo.da ### (one can use ? to replace one character, or * to replace the rest of the string for all matching files). # ls -al # sudo chown -v a0:www year.mo.da ### the owner:group changes from root:root to a0:www # ls -al ### (lists the files and shows that they are "a0 www") # su a0 ### (Shell to user "a0" at this point you are still at: "/home/local/www/logs/") # cp -iav year.mo.da ~/logs/ ### which will copy the files into the /a0/logs/ file and then, # cp -iav year.mo.da ~/public_html/logs/ ### which will copy the files into the /home/local/www/users/a0/logs/ file, making them live on the www. They will be under "a0/logs/". Then I usually look on my Android phone and see if they are there. One has to refresh the page to get the new files to show. # exit ### this returns you back to (pi). # ********* pi@raspberrypi:/home/local/sbin/thttpd-extras $ ### The last files to copy will be the "thttpd_config" files which go to "/home/local/www/". pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd_config* /home/local/www/ ### sudo 2258 'thttpd_config' -> '/home/local/www/thttpd_config' 'thttpd_config~' -> '/home/local/www/thttpd_config~' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ls -al /home/local/www/ ### 2264 total 28 drwxr-xr-x 5 root www 4096 Jun 29 17:00 . drwxr-xr-x 5 root root 4096 Jun 29 15:49 .. drwxr-xr-x 2 root www 4096 Jun 29 15:49 cgi-bin drwxr-xr-x 2 root www 4096 Jun 29 15:55 logs -rwxr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config -r-xr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config~ drwxrwxr-x 3 root www 4096 Jun 29 16:12 users pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat thttpd_config ### 2277 # /home/local/www/thttpd_config dir=/home/local/www chroot #chroot jail data_dir=users #vhost # if you use a domain name you will have to uncomment (remove the # at the beginning) and then make a "user" directory using your external IPv4 address (xxx.xxx.xxx.xxx) and inside this directory make symbolic links back up to your other files in "users" (ln -rs ../"user-name"), see: "vhost-DN-test". cgipat=**.cgi logfile=/home/local/www/logs/thttpd_log pidfile=/var/run/thttpd.pid # pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ # ***************************** pi@raspberrypi:/home/local/sbin/thttpd-extras $ # ***************************** pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ### TESTING: 2300 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ date ### 2304 Thu 29 Jun 2023 05:04:09 PM MDT pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cd ../ ### 2309 pi@raspberrypi:/home/local/sbin $ pi@raspberrypi:/home/local/sbin $ pi@raspberrypi:/home/local/sbin $ # We need the line from thttpd_wrapper without the wrapper. pi@raspberrypi:/home/local/sbin $ pi@raspberrypi:/home/local/sbin $ cat thttpd_wrapper ### 2317 #!/bin/sh # thttpd_wrapper while true ; do /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config sleep 10 done # pi@raspberrypi:/home/local/sbin $ pi@raspberrypi:/home/local/sbin $ # ***** Start a new terminal here! ****** ### 2330 pi@raspberrypi:/home/local/sbin $ pi@raspberrypi:/home/local/sbin $ cd ### We are changing to pi home and will need to start a new terminal since it is going to lock up as soon as thttpd starts. 2334 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ # ***** Start a new terminal here! ****** ### 2330 pi@raspberrypi:~ $ pi@raspberrypi:~ $ # Well Links2 did not want to start so I tried ELinks which I also had loaded. It did bring up the web site and did work. I finally just did "ps -e" to find the PID number of ELinks so I could "sudo kill 6291" the PID and that dropped me out of ELinks. elinks http://localhost/ ### 2377 2023-06-29-ELinks-a0.txt Index of /

Index of /


mode  links    bytes  last-changed  name

    
dr-x 3 4096 Jun 29 22:12 ./ dr-x 5 4096 Jun 29 23:00 ../ dr-x 2 4096 Jun 29 22:12 a0/
pi@raspberrypi:~ $ ps -e PID TTY TIME CMD 1 ? 00:00:08 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 slub_flushwq 4 ? 00:00:00 netns many skipped lines 2025 ? 00:00:00 gvfsd-dnssd 3924 ? 00:00:00 kworker/0:2H-mmc_complete 3928 pts/2 00:00:00 bash 4598 ? 00:00:00 kworker/u2:1-events_unbound 5113 pts/2 00:00:00 sudo 5117 ? 00:00:51 thttpd 5837 ? 00:00:00 kworker/0:2-events_freezable 6291 pts/1 00:00:00 elinks 6452 ? 00:00:00 kworker/0:0-events_power_efficient 6665 ? 00:00:00 kworker/0:0H-mmc_complete 6723 ? 00:00:00 kworker/u2:2-events_unbound 7076 ? 00:00:00 kworker/0:1-events 7562 pts/3 00:00:00 bash 7582 pts/3 00:00:00 ps 9529 ? 00:24:09 geany 9576 pts/1 00:00:01 bash 13122 ? 00:08:41 mousepad 18469 ? 00:00:00 gvfsd-metadata pi@raspberrypi:~ $ sudo kill 6291 pi@raspberrypi:~ $ ### Everything should be working at this point. Test one OK. # ### On this terminal (in Geany), type: ps -e # to find the "PID"s so you can "kill" the processes after you do a test to see if entering "localhost" in your web browser brings up a green page with your web user. kill PIDs for sudo and thttpd! sudo kill 5113 5117 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo kill 5113 5117 pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo kill 5113 5117 kill: (5113): No such process kill: (5117): No such process pi@raspberrypi:~ $ sudo kill 6291 # elinks kill: (6291): No such process pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ The new terminal is now free and no longer locked up! pi@raspberrypi:~ $ pi@raspberrypi:~ $ # ***** Start a new terminal here! ****** ### 2330 pi@raspberrypi:~ $ pi@raspberrypi:~ $ cd ### We are changing to pi home and will need to start a new terminal since it is going to lock up as soon as thttpd starts. 2334 pi@raspberrypi:~ $ pi@raspberrypi:~ $ ### ***** On a new terminal ***** pi@raspberrypi:~ $ pi@raspberrypi:~ $ date Thu 29 Jun 2023 05:16:25 PM MDT pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config ### copy the line without the first # and paste it on to the command prompt in a new terminal window, as it will lock up when thttpd starts running. 2341 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ### Now you can look at your log file in: /home/local/www/logs/ pi@raspberrypi:~ $ pi@raspberrypi:~ $ date ### 2636 Thu 29 Jun 2023 06:07:37 PM MDT pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ cd /home/local/www/logs ### 2641 pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ls -al ### 2646 total 12 drwxr-xr-x 2 root www 4096 Jun 29 17:16 . drwxr-xr-x 5 root www 4096 Jun 29 17:00 .. -rw-r--r-- 1 nobody nogroup 269 Jun 29 17:31 thttpd_log pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log ### 2653 ::1 - - [29/Jun/2023:23:26:30 +0000] "GET / HTTP/1.1" 200 25000 "" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x7-2)" ::1 - - [29/Jun/2023:23:31:50 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://localhost/" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x16-2)" pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ### The program thttpd is working OK. 2659 pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ### Now we need to add the files to "users" that are in "/home/local/sbin/thttpd-extras". pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cd /home/local/sbin/thttpd-extras/ ### 2668 pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ls -al ### 2672 total 80 drwxr-xr-x 3 pi pi 4096 Jul 12 2022 . drwxr-xr-x 4 root root 4096 Jun 29 16:43 .. -r--r--r-- 1 pi pi 533 Jan 8 2020 anvil_thttpd.gif -rw-r--r-- 1 pi pi 533 Jan 8 2020 favicon.ico -rwxr-xr-- 1 pi pi 485 Aug 31 2021 rc.local -r-xr-xr-- 1 pi pi 485 Aug 31 2021 rc.local~ -rw-r--r-- 1 pi pi 308 Aug 13 2021 readme.txt -r--r--r-- 1 pi pi 73 Jan 8 2020 robots-site.txt -rw-r--r-- 1 pi pi 27 Jan 8 2020 robots.txt -rw-r--r-- 1 pi pi 186 Jan 8 2020 sitemap.xml -r--r--r-- 1 pi pi 186 Jan 8 2020 sitemap.xml.txt -rwxr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config -r-xr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config~ -rwxr-xr-- 1 pi pi 1746 Aug 31 2021 thttpd-rotate -r-xr-xr-- 1 pi pi 1746 Aug 31 2021 thttpd-rotate~ -rwxr-xr-- 1 pi pi 136 Apr 22 2022 thttpd.sh -r-xr-xr-- 1 pi pi 136 Apr 22 2022 thttpd.sh~ -rwxr-xr-- 1 pi pi 122 Aug 31 2021 thttpd_wrapper -r-xr-xr-- 1 pi pi 122 Aug 31 2021 thttpd_wrapper~ drwxr-xr-x 4 pi pi 4096 Jul 12 2022 vhost-DN-test pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -iav favicon.ico /home/local/www/users/ ### sudo 2698 'favicon.ico' -> '/home/local/www/users/favicon.ico' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -iav readme.txt /home/local/www/users/ ### sudo 2703 'readme.txt' -> '/home/local/www/users/readme.txt' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo cp -iav robots.txt /home/local/www/users/ ### sudo 2708 'robots.txt' -> '/home/local/www/users/robots.txt' pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ sudo ls -al /home/local/www/users/ ### sudo 2713 total 24 drwxrwxr-x 3 root www 4096 Jun 29 18:13 . drwxr-xr-x 5 root www 4096 Jun 29 17:00 .. drwxr-xr-x 2 a0 www 4096 Jun 29 16:12 a0 -rw-r--r-- 1 pi pi 533 Jan 8 2020 favicon.ico -rw-r--r-- 1 pi pi 308 Aug 13 2021 readme.txt -rw-r--r-- 1 pi pi 27 Jan 8 2020 robots.txt pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ date ### 2723 Thu 29 Jun 2023 06:14:57 PM MDT pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat robots-site.txt ### 2729 User-agent: * Disallow: Sitemap: http://xxx.xxx.xxx.xxx/sitemap.xml/ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cat sitemap.xml ### 2737 http://xxx.xxx.xxx.xxx/ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ ### You would use "robots-site.txt" replacing the XXX.xxx.xxx.xxx with your external static IPv4 address and then naming it "robots.txt". Likewise, with the "sitemap.xml" file and keep the same name for it. Adding both of these files to “/home/local/www/users/”, if you have an external static IP address pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ pi@raspberrypi:/home/local/sbin/thttpd-extras $ cd /etc ### 2759 pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ ### **** If you don't use sudo here it will start looping every 10 seconds. Then you would have to find the PID number for thttpd_wrapper and sudo kill "pid-number" because it is trying to write to root files!!!, or just turn off the computer. **** pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ date ### 2765 Thu 29 Jun 2023 06:18:31 PM MDT pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ # I finally figured out to get Links2 to populate the header one has to press the "Esc" key while on the top line with the little arrow to the left! pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ sudo ./rc.local ### sudo (Starting thttpd from rc.local, REMEMBER the sudo!!!!!!) 2771 My IP address is 192.168.1.187 Starting thttpd. thttpd pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ # on the line above, (Notice the thttpd above the "frank@raspberrypi:/etc" on the terminal screen, it is still running.) pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ # Here we see that my local IP Address is 192.168.1.187 and thttpd has started and is now running. so we will see if this IP Address will get to my web site. pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ links2 192.168.1.187 Index of / (p1 of 5) Index of / mode links bytes last-changed name OK pi@raspberrypi:/etc $ # "Ctrl-C" got me oout of "Links2"! pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ cat /home/local/www/logs/*log ### 2841 ::1 - - [29/Jun/2023:23:26:30 +0000] "GET / HTTP/1.1" 200 25000 "" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x7-2)" ::1 - - [29/Jun/2023:23:31:50 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://localhost/" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x16-2)" 192.168.1.187 - - [30/Jun/2023:00:29:43 +0000] "GET / HTTP/1.1" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:51 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:57 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:30:16 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:31:06 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:43:25 +0000] "GET / HTTP/1.0" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:23 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:50 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ ### At this point I want to do a log rotate and check it out. pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ cd cron.daily ### 2863 pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ ls -al ### 2867 total 40 drwxr-xr-x 2 root root 4096 Jun 29 16:47 . drwxr-xr-x 128 root root 12288 Jun 29 16:40 .. -rwxr-xr-x 1 root root 1478 Jun 10 2021 apt-compat -rwxr-xr-x 1 root root 1298 Apr 29 2021 dpkg -rwxr-xr-x 1 root root 377 Feb 28 2021 logrotate -rwxr-xr-x 1 root root 1123 Feb 19 2021 man-db -rw-r--r-- 1 root root 102 Feb 22 2021 .placeholder -rwxr-xr-- 1 pi pi 1746 Aug 31 2021 thttpd-rotate pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ ### One has to use sudo because they are owned by root. The period "." stands for "do" then it needs a space, hence the "/". pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ sudo ./thttpd-rotate ### # These files do not exist yet because we do not have 50 log files. 2884 mv: cannot stat 'thttpd_log.49': No such file or directory mv: cannot stat 'thttpd_log.48': No such file or directory mv: cannot stat 'thttpd_log.47': No such file or directory mv: cannot stat 'thttpd_log.46': No such file or directory mv: cannot stat 'thttpd_log.45': No such file or directory mv: cannot stat 'thttpd_log.44': No such file or directory mv: cannot stat 'thttpd_log.43': No such file or directory mv: cannot stat 'thttpd_log.42': No such file or directory mv: cannot stat 'thttpd_log.41': No such file or directory mv: cannot stat 'thttpd_log.40': No such file or directory mv: cannot stat 'thttpd_log.39': No such file or directory mv: cannot stat 'thttpd_log.38': No such file or directory mv: cannot stat 'thttpd_log.37': No such file or directory mv: cannot stat 'thttpd_log.36': No such file or directory mv: cannot stat 'thttpd_log.35': No such file or directory mv: cannot stat 'thttpd_log.34': No such file or directory mv: cannot stat 'thttpd_log.33': No such file or directory mv: cannot stat 'thttpd_log.32': No such file or directory mv: cannot stat 'thttpd_log.31': No such file or directory mv: cannot stat 'thttpd_log.30': No such file or directory mv: cannot stat 'thttpd_log.29': No such file or directory mv: cannot stat 'thttpd_log.28': No such file or directory mv: cannot stat 'thttpd_log.27': No such file or directory mv: cannot stat 'thttpd_log.26': No such file or directory mv: cannot stat 'thttpd_log.25': No such file or directory mv: cannot stat 'thttpd_log.24': No such file or directory mv: cannot stat 'thttpd_log.23': No such file or directory mv: cannot stat 'thttpd_log.22': No such file or directory mv: cannot stat 'thttpd_log.21': No such file or directory mv: cannot stat 'thttpd_log.20': No such file or directory mv: cannot stat 'thttpd_log.19': No such file or directory mv: cannot stat 'thttpd_log.18': No such file or directory mv: cannot stat 'thttpd_log.17': No such file or directory mv: cannot stat 'thttpd_log.16': No such file or directory mv: cannot stat 'thttpd_log.15': No such file or directory mv: cannot stat 'thttpd_log.14': No such file or directory mv: cannot stat 'thttpd_log.13': No such file or directory mv: cannot stat 'thttpd_log.12': No such file or directory mv: cannot stat 'thttpd_log.11': No such file or directory mv: cannot stat 'thttpd_log.10': No such file or directory mv: cannot stat 'thttpd_log.09': No such file or directory mv: cannot stat 'thttpd_log.08': No such file or directory mv: cannot stat 'thttpd_log.07': No such file or directory mv: cannot stat 'thttpd_log.06': No such file or directory mv: cannot stat 'thttpd_log.05': No such file or directory mv: cannot stat 'thttpd_log.04': No such file or directory mv: cannot stat 'thttpd_log.03': No such file or directory mv: cannot stat 'thttpd_log.02': No such file or directory mv: cannot stat 'thttpd_log.01': No such file or directory pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ cat /home/local/www/logs/*log ### 2939 Thu 29 Jun 2023 06:52:37 PM MDT 18:52:38 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ cat /home/local/www/logs/*log.01 ### 2949 ::1 - - [29/Jun/2023:23:26:30 +0000] "GET / HTTP/1.1" 200 25000 "" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x7-2)" ::1 - - [29/Jun/2023:23:31:50 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://localhost/" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x16-2)" 192.168.1.187 - - [30/Jun/2023:00:29:43 +0000] "GET / HTTP/1.1" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:51 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:57 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:30:16 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:31:06 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:43:25 +0000] "GET / HTTP/1.0" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:23 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:50 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" Thu 29 Jun 2023 06:52:37 PM MDT 18:52:37 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ cat /home/local/www/logs/*log.01 ### 2949 ::1 - - [29/Jun/2023:23:26:30 +0000] "GET / HTTP/1.1" 200 25000 "" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x7-2)" ::1 - - [29/Jun/2023:23:31:50 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://localhost/" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x16-2)" 192.168.1.187 - - [30/Jun/2023:00:29:43 +0000] "GET / HTTP/1.1" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:51 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:57 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:30:16 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:31:06 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:43:25 +0000] "GET / HTTP/1.0" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:23 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:50 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" Thu 29 Jun 2023 06:52:37 PM MDT 18:52:37 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ cd ### Change to (pi) home. 2971 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ man makeweb ### 2973 pi@raspberrypi:~ $ pi@raspberrypi:~ $ man syslogtocern ### 2977 pi@raspberrypi:~ $ pi@raspberrypi:~ $ man thttpd ### 2979 pi@raspberrypi:~ $ pi@raspberrypi:~ $ man redirect ### 2981 pi@raspberrypi:~ $ pi@raspberrypi:~ $ man ssi ### 2983 pi@raspberrypi:~ $ pi@raspberrypi:~ $ man strftime ### 2985 pi@raspberrypi:~ $ pi@raspberrypi:~ $ man weblog_parse ### 2987 No manual entry for weblog_parse pi@raspberrypi:~ $ pi@raspberrypi:~ $ man http_get ### 2990 No manual entry for http_get pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ### It looks like all of the man pages that come with thttpd are working. Some systems will not find the path to the man pages and those systems can use: sudo cp -iav /home/local/man/* /usr/local/man # to copy them over into "/usr/local/man" (see below). 2996 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ # ************************************ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ # ************************************ pi@raspberrypi:/etc $ ### If the man pages did not work, this should let them work. pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ pi@raspberrypi:/etc $ cd /home/local/man ### 3006 pi@raspberrypi:/home/local/man $ pi@raspberrypi:/home/local/man $ ls -al ### 3010 total 16 drwxr-xr-x 4 root root 4096 Mar 16 21:27 . drwxr-xr-x 5 root root 4096 Mar 16 21:27 .. drwxr-xr-x 2 root root 4096 Mar 16 21:27 man1 drwxr-xr-x 2 root root 4096 Mar 16 21:27 man8 pi@raspberrypi:/home/local/man $ pi@raspberrypi:/home/local/man $ pi@raspberrypi:/home/local/man $ sudo cp -iav /home/local/man/* /usr/local/man ### sudo 3020 '/home/local/man/man1' -> '/usr/local/man/man1' '/home/local/man/man1/makeweb.1' -> '/usr/local/man/man1/makeweb.1' '/home/local/man/man1/htpasswd.1' -> '/usr/local/man/man1/htpasswd.1' '/home/local/man/man8' -> '/usr/local/man/man8' '/home/local/man/man8/thttpd.8' -> '/usr/local/man/man8/thttpd.8' '/home/local/man/man8/redirect.8' -> '/usr/local/man/man8/redirect.8' '/home/local/man/man8/ssi.8' -> '/usr/local/man/man8/ssi.8' '/home/local/man/man8/syslogtocern.8' -> '/usr/local/man/man8/syslogtocern.8' pi@raspberrypi:/home/local/man $ pi@raspberrypi:/home/local/man $ pi@raspberrypi:/home/local/man $ # Then test to see if the man pages work, as was done above. 3033 pi@raspberrypi:/home/local/man $ pi@raspberrypi:/home/local/man $ cd /etc ### 3035 pi@raspberrypi:/etc $ ###**************************** pi@raspberrypi:~ $ cd ### 3042 pi@raspberrypi:~ $ pi@raspberrypi:~ $ date ### 3046 Thu 29 Jun 2023 07:17:15 PM MDT pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ###****************************make log entries using different machines or phones. 3051 pi@raspberrypi:~ $ pi@raspberrypi:~ $ sudo datelogpi@raspberrypi:~ $ pi@raspberrypi:~ $ ### Since I was having problems with my setup I decided I needed more information in my logs to be able to see when I had to restart my computer, or when my power went down. I am on batteries and an inverter, and have other problems so I built the "os-debug" directory under /home/local/sbin/. pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ date ### 3059 Thu 29 Jun 2023 07:22:54 PM MDT pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ cd /home/local/www/logs ### 3069 pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ls -al ### 3073 total 16 drwxr-xr-x 2 root www 4096 Jun 29 18:52 . drwxr-xr-x 5 root www 4096 Jun 29 17:00 .. -rw-r--r-- 1 nobody nogroup 1204 Jun 29 19:25 thttpd_log -rw-r--r-- 1 nobody nogroup 1831 Jun 29 18:52 thttpd_log.01 pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log.01 ### 3083 ::1 - - [29/Jun/2023:23:26:30 +0000] "GET / HTTP/1.1" 200 25000 "" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x7-2)" ::1 - - [29/Jun/2023:23:31:50 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://localhost/" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x16-2)" 192.168.1.187 - - [30/Jun/2023:00:29:43 +0000] "GET / HTTP/1.1" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:51 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:57 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:30:16 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:31:06 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:43:25 +0000] "GET / HTTP/1.0" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:23 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:50 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" Thu 29 Jun 2023 06:52:37 PM MDT 18:52:37 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log ### 3105 Thu 29 Jun 2023 06:52:37 PM MDT 18:52:38 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi 192.168.1.216 - - [30/Jun/2023:01:24:36 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:24:43 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:24:56 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:25:10 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:25:29 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ### thttpd is still running and I am going to change and add the os-debug files and then you can see the difference they make to the log. pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cd /home/local/sbin/os-debug/ ### 3140 pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ ### The files in os-debug have additional thttpd pid numbers to help with OS problems. pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ ls -al ### 3147 total 48 drwxr-xr-x 2 pi pi 4096 Jul 12 2022 . drwxr-xr-x 4 root root 4096 Jun 29 16:43 .. -rwxr-xr-- 1 pi pi 185 Aug 31 2021 datelog -r-xr-xr-- 1 pi pi 185 Aug 31 2021 datelog~ -rwxr-xr-- 1 pi pi 385 Aug 31 2021 dead-thttpd -r-xr-xr-- 1 pi pi 385 Aug 31 2021 dead-thttpd~ -r--r--r-- 1 pi pi 792 Apr 22 2022 readme.txt -r--r--r-- 1 pi pi 792 Apr 22 2022 readme.txt~ -rwxr-xr-- 1 pi pi 1965 Aug 31 2021 thttpd-rotate -r-xr-xr-- 1 pi pi 1965 Aug 31 2021 thttpd-rotate~ -rwxr-xr-- 1 pi pi 153 Aug 31 2021 thttpd_wrapper -r-xr-xr-- 1 pi pi 153 Aug 31 2021 thttpd_wrapper~ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ cat readme.txt ### 3165 #readme.txt # # The files in os-debug have additional thttpd pid numbers to help with OS problems. # #pi@AC0XL-Pi-400:~$ #pi@AC0XL-Pi-400:~$ cd /home/local/sbin/os-debug/ ### #pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ #pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ sudo cp -av d* thttp*r ../ ### sudo #'datelog' -> '../datelog' #'dead-thttpd' -> '../dead-thttpd' #'thttpd_wrapper' -> '../thttpd_wrapper' #pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ #pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ # # Now we have to replace thttpd-rotate in /etc/cron.daily. # #pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ sudo cp -av thttpd-rotate /etc/cron.daily ### sudo - we are adding lines for thttpd pid information. #pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ # pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ sudo cp -av d* thttp*r ../ ### sudo 3189 'datelog' -> '../datelog' 'datelog~' -> '../datelog~' 'dead-thttpd' -> '../dead-thttpd' 'dead-thttpd~' -> '../dead-thttpd~' 'thttpd_wrapper' -> '../thttpd_wrapper' pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ # Now we have to replace thttpd-rotate in /etc/cron.daily. pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ sudo cp -av thttpd-rotate /etc/cron.daily ### sudo - we are adding lines for thttpd PID information. 3203 'thttpd-rotate' -> '/etc/cron.daily/thttpd-rotate' pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ # ***************** pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ cat thttpd_wrapper ### 3211 #!/bin/sh # thttpd_wrapper while true ; do /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config /home/local/sbin/dead-thttpd sleep 10 done # pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ cat thttpd-rotate ### 3226 #!/bin/sh # /etc/cron.daily/thttpd-rotate cd /home/local/www/logs rm -f thttpd_log.50 mv thttpd_log.49 thttpd_log.50 mv thttpd_log.48 thttpd_log.49 mv thttpd_log.47 thttpd_log.48 mv thttpd_log.46 thttpd_log.47 mv thttpd_log.45 thttpd_log.46 mv thttpd_log.44 thttpd_log.45 mv thttpd_log.43 thttpd_log.44 mv thttpd_log.42 thttpd_log.43 mv thttpd_log.41 thttpd_log.42 mv thttpd_log.40 thttpd_log.41 mv thttpd_log.39 thttpd_log.40 mv thttpd_log.38 thttpd_log.39 mv thttpd_log.37 thttpd_log.38 mv thttpd_log.36 thttpd_log.37 mv thttpd_log.35 thttpd_log.36 mv thttpd_log.34 thttpd_log.35 mv thttpd_log.33 thttpd_log.34 mv thttpd_log.32 thttpd_log.33 mv thttpd_log.31 thttpd_log.32 mv thttpd_log.30 thttpd_log.31 mv thttpd_log.29 thttpd_log.30 mv thttpd_log.28 thttpd_log.29 mv thttpd_log.27 thttpd_log.28 mv thttpd_log.26 thttpd_log.27 mv thttpd_log.25 thttpd_log.26 mv thttpd_log.24 thttpd_log.25 mv thttpd_log.23 thttpd_log.24 mv thttpd_log.22 thttpd_log.23 mv thttpd_log.21 thttpd_log.22 mv thttpd_log.20 thttpd_log.21 mv thttpd_log.19 thttpd_log.20 mv thttpd_log.18 thttpd_log.19 mv thttpd_log.17 thttpd_log.18 mv thttpd_log.16 thttpd_log.17 mv thttpd_log.15 thttpd_log.16 mv thttpd_log.14 thttpd_log.15 mv thttpd_log.13 thttpd_log.14 mv thttpd_log.12 thttpd_log.13 mv thttpd_log.11 thttpd_log.12 mv thttpd_log.10 thttpd_log.11 mv thttpd_log.09 thttpd_log.10 mv thttpd_log.08 thttpd_log.09 mv thttpd_log.07 thttpd_log.08 mv thttpd_log.06 thttpd_log.07 mv thttpd_log.05 thttpd_log.06 mv thttpd_log.04 thttpd_log.05 mv thttpd_log.03 thttpd_log.04 mv thttpd_log.02 thttpd_log.03 mv thttpd_log.01 thttpd_log.02 date >> thttpd_log echo "log rotate end, thttpd pid = " `ps -C thttpd` >> thttpd_log w >> thttpd_log mv thttpd_log thttpd_log.01 date > thttpd_log echo "old log rotate end, old thttpd pid = " `ps -C thttpd` >> thttpd_log kill -usr1 `cat /var/run/thttpd.pid` sleep 15 echo "log rotate new, thttpd pid = " `ps -C thttpd` >> thttpd_log w >> thttpd_log # pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ cat dead-thttpd ### 3305 #!/bin/sh # dead-thttpd echo "old dead-thttpd pid = " `cat /var/run/thttpd.pid` >> /home/local/www/logs/thttpd_log date >> /home/local/www/logs/thttpd_log w >> /home/local/www/logs/thttpd_log # sleep 15 # echo "dead-thttpd, new thttpd pid = " `ps -C thttpd` >> /home/local/www/logs/thttpd_log # date >> /home/local/www/logs/thttpd_log # w >> /home/local/www/logs/thttpd_log # pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ cat datelog ### 3325 #!/bin/sh # datelog echo "datelog, thttpd pid = " `ps -C thttpd` >> /home/local/www/logs/thttpd_log date >> /home/local/www/logs/thttpd_log w >> /home/local/www/logs/thttpd_log # pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ date ### 3340 Thu 29 Jun 2023 07:40:53 PM MDT pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ date ### 3340 Thu 29 Jun 2023 07:55:08 PM MDT pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ ### sudo datelog is entered at the command prompt and there has been a problem with the system finding it, which I will test. When the commands are run from the system they all work but there seems to be a bug with them coming from the command line. 3346 pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ sudo datelog sudo: datelog: command not found pi@raspberrypi:/home/local/sbin/os-debug $ sudo datelog sudo: datelog: command not found pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ pi@raspberrypi:/home/local/sbin/os-debug $ cd /etc/cron.daily ### 3352 pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ ls -al ### 3356 total 40 drwxr-xr-x 2 root root 4096 Jun 29 16:47 . drwxr-xr-x 128 root root 12288 Jun 29 16:40 .. -rwxr-xr-x 1 root root 1478 Jun 10 2021 apt-compat -rwxr-xr-x 1 root root 1298 Apr 29 2021 dpkg -rwxr-xr-x 1 root root 377 Feb 28 2021 logrotate -rwxr-xr-x 1 root root 1123 Feb 19 2021 man-db -rw-r--r-- 1 root root 102 Feb 22 2021 .placeholder -rwxr-xr-- 1 pi pi 1965 Aug 31 2021 thttpd-rotate pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ cat thttpd-rotate ### 3370 #!/bin/sh # /etc/cron.daily/thttpd-rotate cd /home/local/www/logs rm -f thttpd_log.50 mv thttpd_log.49 thttpd_log.50 mv thttpd_log.48 thttpd_log.49 mv thttpd_log.47 thttpd_log.48 mv thttpd_log.46 thttpd_log.47 mv thttpd_log.45 thttpd_log.46 mv thttpd_log.44 thttpd_log.45 mv thttpd_log.43 thttpd_log.44 mv thttpd_log.42 thttpd_log.43 mv thttpd_log.41 thttpd_log.42 mv thttpd_log.40 thttpd_log.41 mv thttpd_log.39 thttpd_log.40 mv thttpd_log.38 thttpd_log.39 mv thttpd_log.37 thttpd_log.38 mv thttpd_log.36 thttpd_log.37 mv thttpd_log.35 thttpd_log.36 mv thttpd_log.34 thttpd_log.35 mv thttpd_log.33 thttpd_log.34 mv thttpd_log.32 thttpd_log.33 mv thttpd_log.31 thttpd_log.32 mv thttpd_log.30 thttpd_log.31 mv thttpd_log.29 thttpd_log.30 mv thttpd_log.28 thttpd_log.29 mv thttpd_log.27 thttpd_log.28 mv thttpd_log.26 thttpd_log.27 mv thttpd_log.25 thttpd_log.26 mv thttpd_log.24 thttpd_log.25 mv thttpd_log.23 thttpd_log.24 mv thttpd_log.22 thttpd_log.23 mv thttpd_log.21 thttpd_log.22 mv thttpd_log.20 thttpd_log.21 mv thttpd_log.19 thttpd_log.20 mv thttpd_log.18 thttpd_log.19 mv thttpd_log.17 thttpd_log.18 mv thttpd_log.16 thttpd_log.17 mv thttpd_log.15 thttpd_log.16 mv thttpd_log.14 thttpd_log.15 mv thttpd_log.13 thttpd_log.14 mv thttpd_log.12 thttpd_log.13 mv thttpd_log.11 thttpd_log.12 mv thttpd_log.10 thttpd_log.11 mv thttpd_log.09 thttpd_log.10 mv thttpd_log.08 thttpd_log.09 mv thttpd_log.07 thttpd_log.08 mv thttpd_log.06 thttpd_log.07 mv thttpd_log.05 thttpd_log.06 mv thttpd_log.04 thttpd_log.05 mv thttpd_log.03 thttpd_log.04 mv thttpd_log.02 thttpd_log.03 mv thttpd_log.01 thttpd_log.02 date >> thttpd_log echo "log rotate end, thttpd pid = " `ps -C thttpd` >> thttpd_log w >> thttpd_log mv thttpd_log thttpd_log.01 date > thttpd_log echo "old log rotate end, old thttpd pid = " `ps -C thttpd` >> thttpd_log kill -usr1 `cat /var/run/thttpd.pid` sleep 15 echo "log rotate new, thttpd pid = " `ps -C thttpd` >> thttpd_log w >> thttpd_log # pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ ### That looks better! there is a sleep 15 near the end and that is to wait for the new PID to be set up. pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ ### Notice that this program takes 15 seconds so that the new PID number will have time to come up. pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ ### Also, the lines are not written to the log file until they finish. The "kill -usr1 `cat /var/run/thttpd.pid`" stops thttpd from taking more requests. The "kill -usr1 `cat /var/run/thttpd.pid`" stops thttpd from taking any more requests but lets the ones that are running finish before it starts again with a new log file. That is why at times one will see extra lines after the log rotate normal ending. pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ sudo ./thttpd-rotate ### sudo 3458 mv: cannot stat 'thttpd_log.49': No such file or directory mv: cannot stat 'thttpd_log.48': No such file or directory mv: cannot stat 'thttpd_log.47': No such file or directory mv: cannot stat 'thttpd_log.46': No such file or directory mv: cannot stat 'thttpd_log.45': No such file or directory mv: cannot stat 'thttpd_log.44': No such file or directory mv: cannot stat 'thttpd_log.43': No such file or directory mv: cannot stat 'thttpd_log.42': No such file or directory mv: cannot stat 'thttpd_log.41': No such file or directory mv: cannot stat 'thttpd_log.40': No such file or directory mv: cannot stat 'thttpd_log.39': No such file or directory mv: cannot stat 'thttpd_log.38': No such file or directory mv: cannot stat 'thttpd_log.37': No such file or directory mv: cannot stat 'thttpd_log.36': No such file or directory mv: cannot stat 'thttpd_log.35': No such file or directory mv: cannot stat 'thttpd_log.34': No such file or directory mv: cannot stat 'thttpd_log.33': No such file or directory mv: cannot stat 'thttpd_log.32': No such file or directory mv: cannot stat 'thttpd_log.31': No such file or directory mv: cannot stat 'thttpd_log.30': No such file or directory mv: cannot stat 'thttpd_log.29': No such file or directory mv: cannot stat 'thttpd_log.28': No such file or directory mv: cannot stat 'thttpd_log.27': No such file or directory mv: cannot stat 'thttpd_log.26': No such file or directory mv: cannot stat 'thttpd_log.25': No such file or directory mv: cannot stat 'thttpd_log.24': No such file or directory mv: cannot stat 'thttpd_log.23': No such file or directory mv: cannot stat 'thttpd_log.22': No such file or directory mv: cannot stat 'thttpd_log.21': No such file or directory mv: cannot stat 'thttpd_log.20': No such file or directory mv: cannot stat 'thttpd_log.19': No such file or directory mv: cannot stat 'thttpd_log.18': No such file or directory mv: cannot stat 'thttpd_log.17': No such file or directory mv: cannot stat 'thttpd_log.16': No such file or directory mv: cannot stat 'thttpd_log.15': No such file or directory mv: cannot stat 'thttpd_log.14': No such file or directory mv: cannot stat 'thttpd_log.13': No such file or directory mv: cannot stat 'thttpd_log.12': No such file or directory mv: cannot stat 'thttpd_log.11': No such file or directory mv: cannot stat 'thttpd_log.10': No such file or directory mv: cannot stat 'thttpd_log.09': No such file or directory mv: cannot stat 'thttpd_log.08': No such file or directory mv: cannot stat 'thttpd_log.07': No such file or directory mv: cannot stat 'thttpd_log.06': No such file or directory mv: cannot stat 'thttpd_log.05': No such file or directory mv: cannot stat 'thttpd_log.04': No such file or directory mv: cannot stat 'thttpd_log.03': No such file or directory mv: cannot stat 'thttpd_log.02': No such file or directory pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ sudo datelog ### 3512 sudo: datelog: command not found pi@raspberrypi:/etc/cron.daily $ # This is the problem when the command is entered from the command line and it is not in "/usr/local/sbin/" even though all of the other commands ran from "/home/local/sbin/"! 3514 pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ sudo ls -al /home/local/sbin ### 3518 total 164 drwxr-xr-x 4 root root 4096 Jun 29 19:33 . drwxr-xr-x 5 root root 4096 Jun 29 15:49 .. -rwxr-xr-- 1 pi pi 185 Aug 31 2021 datelog -r-xr-xr-- 1 pi pi 185 Aug 31 2021 datelog~ -rwxr-xr-- 1 pi pi 385 Aug 31 2021 dead-thttpd -r-xr-xr-- 1 pi pi 385 Aug 31 2021 dead-thttpd~ -rwxr-xr-x 1 root root 13692 Jun 29 15:49 htpasswd -rwxr-sr-x 1 root www 12996 Jun 29 15:49 makeweb drwxr-xr-x 2 pi pi 4096 Jul 12 2022 os-debug -r-xr-xr-x 1 root root 2878 Jun 29 15:49 syslogtocern -r-xr-xr-x 1 bin bin 91232 Jun 29 15:49 thttpd drwxr-xr-x 3 pi pi 4096 Jul 12 2022 thttpd-extras -rwxr-xr-- 1 pi pi 153 Aug 31 2021 thttpd_wrapper pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ sudo cp -iav /home/local/sbin/* /usr/local/sbin ### sudo 3537 '/home/local/sbin/datelog' -> '/usr/local/sbin/datelog' '/home/local/sbin/datelog~' -> '/usr/local/sbin/datelog~' '/home/local/sbin/dead-thttpd' -> '/usr/local/sbin/dead-thttpd' '/home/local/sbin/dead-thttpd~' -> '/usr/local/sbin/dead-thttpd~' '/home/local/sbin/htpasswd' -> '/usr/local/sbin/htpasswd' '/home/local/sbin/makeweb' -> '/usr/local/sbin/makeweb' '/home/local/sbin/os-debug' -> '/usr/local/sbin/os-debug' '/home/local/sbin/os-debug/readme.txt~' -> '/usr/local/sbin/os-debug/readme.txt~' '/home/local/sbin/os-debug/thttpd-rotate' -> '/usr/local/sbin/os-debug/thttpd-rotate' '/home/local/sbin/os-debug/thttpd_wrapper~' -> '/usr/local/sbin/os-debug/thttpd_wrapper~' '/home/local/sbin/os-debug/dead-thttpd' -> '/usr/local/sbin/os-debug/dead-thttpd' '/home/local/sbin/os-debug/readme.txt' -> '/usr/local/sbin/os-debug/readme.txt' '/home/local/sbin/os-debug/dead-thttpd~' -> '/usr/local/sbin/os-debug/dead-thttpd~' '/home/local/sbin/os-debug/thttpd_wrapper' -> '/usr/local/sbin/os-debug/thttpd_wrapper' '/home/local/sbin/os-debug/datelog~' -> '/usr/local/sbin/os-debug/datelog~' '/home/local/sbin/os-debug/thttpd-rotate~' -> '/usr/local/sbin/os-debug/thttpd-rotate~' '/home/local/sbin/os-debug/datelog' -> '/usr/local/sbin/os-debug/datelog' '/home/local/sbin/syslogtocern' -> '/usr/local/sbin/syslogtocern' '/home/local/sbin/thttpd' -> '/usr/local/sbin/thttpd' '/home/local/sbin/thttpd-extras' -> '/usr/local/sbin/thttpd-extras' '/home/local/sbin/thttpd-extras/sitemap.xml' -> '/usr/local/sbin/thttpd-extras/sitemap.xml' '/home/local/sbin/thttpd-extras/thttpd-rotate' -> '/usr/local/sbin/thttpd-extras/thttpd-rotate' '/home/local/sbin/thttpd-extras/thttpd_wrapper~' -> '/usr/local/sbin/thttpd-extras/thttpd_wrapper~' '/home/local/sbin/thttpd-extras/readme.txt' -> '/usr/local/sbin/thttpd-extras/readme.txt' '/home/local/sbin/thttpd-extras/favicon.ico' -> '/usr/local/sbin/thttpd-extras/favicon.ico' '/home/local/sbin/thttpd-extras/robots.txt' -> '/usr/local/sbin/thttpd-extras/robots.txt' '/home/local/sbin/thttpd-extras/anvil_thttpd.gif' -> '/usr/local/sbin/thttpd-extras/anvil_thttpd.gif' '/home/local/sbin/thttpd-extras/thttpd_config~' -> '/usr/local/sbin/thttpd-extras/thttpd_config~' '/home/local/sbin/thttpd-extras/thttpd_wrapper' -> '/usr/local/sbin/thttpd-extras/thttpd_wrapper' '/home/local/sbin/thttpd-extras/rc.local' -> '/usr/local/sbin/thttpd-extras/rc.local' '/home/local/sbin/thttpd-extras/sitemap.xml.txt' -> '/usr/local/sbin/thttpd-extras/sitemap.xml.txt' '/home/local/sbin/thttpd-extras/thttpd.sh~' -> '/usr/local/sbin/thttpd-extras/thttpd.sh~' '/home/local/sbin/thttpd-extras/rc.local~' -> '/usr/local/sbin/thttpd-extras/rc.local~' '/home/local/sbin/thttpd-extras/thttpd.sh' -> '/usr/local/sbin/thttpd-extras/thttpd.sh' '/home/local/sbin/thttpd-extras/thttpd-rotate~' -> '/usr/local/sbin/thttpd-extras/thttpd-rotate~' '/home/local/sbin/thttpd-extras/robots-site.txt' -> '/usr/local/sbin/thttpd-extras/robots-site.txt' '/home/local/sbin/thttpd-extras/thttpd_config' -> '/usr/local/sbin/thttpd-extras/thttpd_config' '/home/local/sbin/thttpd-extras/vhost-DN-test' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test' '/home/local/sbin/thttpd-extras/vhost-DN-test/a0' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/a0' '/home/local/sbin/thttpd-extras/vhost-DN-test/a0/test' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/a0/test' '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128' '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/sample.txt' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/sample.txt' '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0' '/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0/test' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0/test' '/home/local/sbin/thttpd_wrapper' -> '/usr/local/sbin/thttpd_wrapper' pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ ls -al /usr/local/sbin ### 3586 total 164 drwxr-xr-x 4 root root 4096 Jun 29 20:14 . drwxr-xr-x 10 root root 4096 Jan 27 2022 .. -rwxr-xr-- 1 pi pi 185 Aug 31 2021 datelog -r-xr-xr-- 1 pi pi 185 Aug 31 2021 datelog~ -rwxr-xr-- 1 pi pi 385 Aug 31 2021 dead-thttpd -r-xr-xr-- 1 pi pi 385 Aug 31 2021 dead-thttpd~ -rwxr-xr-x 1 root root 13692 Jun 29 15:49 htpasswd -rwxr-sr-x 1 root www 12996 Jun 29 15:49 makeweb drwxr-xr-x 2 pi pi 4096 Jul 12 2022 os-debug -r-xr-xr-x 1 root root 2878 Jun 29 15:49 syslogtocern -r-xr-xr-x 1 bin bin 91232 Jun 29 15:49 thttpd drwxr-xr-x 3 pi pi 4096 Jul 12 2022 thttpd-extras -rwxr-xr-- 1 pi pi 153 Aug 31 2021 thttpd_wrapper pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ sudo datelog ### 3605 pi@raspberrypi:/etc/cron.daily $ ### Magic!! Now sudo datelog works!!! The only thing different is the command is coming from the command line and not from a program which all of the other commands come from and work without being under /usr/local/sbin/!!! 3607 pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ pi@raspberrypi:/etc/cron.daily $ cd /home/local/www/logs ### 3613 pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ls -al ### 3617 total 20 drwxr-xr-x 2 root www 4096 Jun 29 20:11 . drwxr-xr-x 5 root www 4096 Jun 29 17:00 .. -rw-r--r-- 1 nobody nogroup 920 Jun 29 20:16 thttpd_log -rw-r--r-- 1 nobody nogroup 1628 Jun 29 20:11 thttpd_log.01 -rw-r--r-- 1 nobody nogroup 1831 Jun 29 18:52 thttpd_log.02 pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log.02 ### 3628 ::1 - - [29/Jun/2023:23:26:30 +0000] "GET / HTTP/1.1" 200 25000 "" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x7-2)" ::1 - - [29/Jun/2023:23:31:50 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://localhost/" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x16-2)" 192.168.1.187 - - [30/Jun/2023:00:29:43 +0000] "GET / HTTP/1.1" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:51 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:57 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:30:16 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:31:06 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:43:25 +0000] "GET / HTTP/1.0" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:23 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:50 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" Thu 29 Jun 2023 06:52:37 PM MDT 18:52:37 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log.01 ### 3650 Thu 29 Jun 2023 06:52:37 PM MDT 18:52:38 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi 192.168.1.216 - - [30/Jun/2023:01:24:36 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:24:43 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:24:56 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:25:10 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:25:29 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" Thu 29 Jun 2023 08:11:40 PM MDT log rotate end, thttpd pid = PID TTY TIME CMD 16850 ? 00:03:21 thttpd 20:11:40 up 7:51, 2 users, load average: 0.58, 0.44, 0.56 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:51m 0.80s 0.63s -bash pi tty7 :0 12:21 7:50m 36:11 6.62s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log ### 3686 Thu 29 Jun 2023 08:11:40 PM MDT old log rotate end, old thttpd pid = PID TTY TIME CMD 16850 ? 00:03:21 thttpd log rotate new, thttpd pid = PID TTY TIME CMD 26571 ? 00:00:00 thttpd 20:11:56 up 7:51, 2 users, load average: 0.45, 0.42, 0.55 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:51m 0.80s 0.63s -bash pi tty7 :0 12:21 7:51m 36:12 6.62s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi datelog, thttpd pid = PID TTY TIME CMD 26571 ? 00:00:10 thttpd Thu 29 Jun 2023 08:16:06 PM MDT 20:16:06 up 7:55, 2 users, load average: 1.20, 1.11, 0.83 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:55m 0.80s 0.63s -bash pi tty7 :0 12:21 7:55m 36:34 6.66s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ### As you can see thttpd can be updated while it is still running! pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ### While it is still running I will finish with adding more "users" to the web site. pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ date ### 3713 Thu 29 Jun 2023 08:21:42 PM MDT pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ # ***************************** pi@raspberrypi:/home/local/www/logs $ # ***************************** pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cd /home/ ### 3725 pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ # Adding more Web Users, (Headings). pi@raspberrypi:/home $ pi@raspberrypi:/home $ # Other ideas for web "users" could be: documents, downloads, games, memes, music, notices, pictures, videos, etc., just categories of what you want on your website, or what you want to share. This time we will use a different process to add only www users. pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ addgroup --help ### 3738 adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a normal user adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a system user adduser --group [--gid ID] GROUP addgroup [--gid ID] GROUP Add a user group addgroup --system [--gid ID] GROUP Add a system group adduser USER GROUP Add an existing user to an existing group general options: --quiet | -q don't give process information to stdout --force-badname allow usernames which do not match the NAME_REGEX configuration variable --help | -h usage message --version | -v version number and copyright --conf | -c FILE use FILE as configuration file pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ # This is where if you have a list of typed "users" you can just copy the "name" and then be able to paste it several times without having to re-type it, or making typing mistakes. I made the file "list.txt" in the freedom directory. pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ # # Again the process: # # sudo adduser --ingroup www videos # (new web user "videos") # (use a password that is different from the one for "(pi)") # su videos # (shell to user "videos") # cd # (change to shell home directory) # touch .user-number # that is a period and the number all in one, (.user-number) # makeweb # ls -al # exit # (exit the shell back to where you were) # # # ********* Line # 3788 # ### Lines missing from 3788 to 3951 source file: 2022-07-12-thttpd-install-on-32-or-64-bit-OS.txt ******************************* ### These lines overflowed the Terminal buffer ************************************** memes@raspberrypi:/home $ memes@raspberrypi:/home $ memes@raspberrypi:/home $ cd ### 3951 memes@raspberrypi:~ $ memes@raspberrypi:~ $ touch .1004 ### 3954 memes@raspberrypi:~ $ memes@raspberrypi:~ $ makeweb ### 3957 Created web directory /home/local/www/users/memes Created symbolic link /home/memes/public_html memes@raspberrypi:~ $ memes@raspberrypi:~ $ ls -al ### 3962 total 24 drwxr-xr-x 2 memes www 4096 Jun 29 20:55 . drwxr-xr-x 8 root root 4096 Jun 29 20:53 .. -rw-r--r-- 1 memes www 0 Jun 29 20:55 .1004 -rw-r--r-- 1 memes www 220 Jun 29 20:53 .bash_logout -rw-r--r-- 1 memes www 3523 Jun 29 20:53 .bashrc -rw-r--r-- 1 memes www 1670 Jun 29 20:53 .mkshrc -rw-r--r-- 1 memes www 807 Jun 29 20:53 .profile lrwxrwxrwx 1 memes www 27 Jun 29 20:55 public_html -> /home/local/www/users/memes memes@raspberrypi:~ $ memes@raspberrypi:~ $ exit ### 3974 exit pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ date Thu 29 Jun 2023 08:56:53 PM MDT pi@raspberrypi:/home $ pi@raspberrypi:/home $ sudo adduser --ingroup www music ### sudo 3981 Adding user `music' ... Adding new user `music' (1005) with group `www' ... Creating home directory `/home/music' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for music Enter the new value, or press ENTER for the default Full Name []: music Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y pi@raspberrypi:/home $ pi@raspberrypi:/home $ su music ### 4001 Password: music@raspberrypi:/home $ cd ### 4005 music@raspberrypi:~ $ music@raspberrypi:~ $ touch .1005 ### 4008 music@raspberrypi:~ $ music@raspberrypi:~ $ makeweb ### 4011 Created web directory /home/local/www/users/music Created symbolic link /home/music/public_html music@raspberrypi:~ $ music@raspberrypi:~ $ ls -al ### 4016 total 24 drwxr-xr-x 2 music www 4096 Jun 29 20:59 . drwxr-xr-x 9 root root 4096 Jun 29 20:57 .. -rw-r--r-- 1 music www 0 Jun 29 20:59 .1005 -rw-r--r-- 1 music www 220 Jun 29 20:57 .bash_logout -rw-r--r-- 1 music www 3523 Jun 29 20:57 .bashrc -rw-r--r-- 1 music www 1670 Jun 29 20:57 .mkshrc -rw-r--r-- 1 music www 807 Jun 29 20:57 .profile lrwxrwxrwx 1 music www 27 Jun 29 20:59 public_html -> /home/local/www/users/music music@raspberrypi:~ $ music@raspberrypi:~ $ exit ### 4028 exit pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ date Thu 29 Jun 2023 09:00:52 PM MDT pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ sudo adduser --ingroup www notices ### sudo 4035 Adding user `notices' ... Adding new user `notices' (1006) with group `www' ... Creating home directory `/home/notices' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for notices Enter the new value, or press ENTER for the default Full Name []: notices Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y pi@raspberrypi:/home $ pi@raspberrypi:/home $ su notices ### 4055 Password: notices@raspberrypi:/home $ notices@raspberrypi:/home $ cd ### 4059 notices@raspberrypi:~ $ notices@raspberrypi:~ $ touch .1006 ### 4062 notices@raspberrypi:~ $ notices@raspberrypi:~ $ makeweb ### 4065 Created web directory /home/local/www/users/notices Created symbolic link /home/notices/public_html notices@raspberrypi:~ $ notices@raspberrypi:~ $ ls -al ### 4070 total 24 drwxr-xr-x 2 notices www 4096 Jun 29 21:04 . drwxr-xr-x 10 root root 4096 Jun 29 21:01 .. -rw-r--r-- 1 notices www 0 Jun 29 21:03 .1006 -rw-r--r-- 1 notices www 220 Jun 29 21:01 .bash_logout -rw-r--r-- 1 notices www 3523 Jun 29 21:01 .bashrc -rw-r--r-- 1 notices www 1670 Jun 29 21:01 .mkshrc -rw-r--r-- 1 notices www 807 Jun 29 21:01 .profile lrwxrwxrwx 1 notices www 29 Jun 29 21:04 public_html -> /home/local/www/users/notices notices@raspberrypi:~ $ notices@raspberrypi:~ $ exit ### 4082 exit pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ date Thu 29 Jun 2023 09:05:13 PM MDT pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ sudo adduser --ingroup www pictures ### sudo 4089 Adding user `pictures' ... Adding new user `pictures' (1007) with group `www' ... Creating home directory `/home/pictures' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for pictures Enter the new value, or press ENTER for the default Full Name []: pictures Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ su pictures ### 4109 Password: pictures@raspberrypi:/home $ pictures@raspberrypi:/home $ cd ### 4113 pictures@raspberrypi:~ $ pictures@raspberrypi:~ $ touch .1007 ### 4116 pictures@raspberrypi:~ $ pictures@raspberrypi:~ $ makeweb ### 4119 Created web directory /home/local/www/users/pictures Created symbolic link /home/pictures/public_html pictures@raspberrypi:~ $ pictures@raspberrypi:~ $ ls -al ### 4124 total 24 drwxr-xr-x 2 pictures www 4096 Jun 29 21:08 . drwxr-xr-x 11 root root 4096 Jun 29 21:05 .. -rw-r--r-- 1 pictures www 0 Jun 29 21:08 .1007 -rw-r--r-- 1 pictures www 220 Jun 29 21:05 .bash_logout -rw-r--r-- 1 pictures www 3523 Jun 29 21:05 .bashrc -rw-r--r-- 1 pictures www 1670 Jun 29 21:05 .mkshrc -rw-r--r-- 1 pictures www 807 Jun 29 21:05 .profile lrwxrwxrwx 1 pictures www 30 Jun 29 21:08 public_html -> /home/local/www/users/pictures pictures@raspberrypi:~ $ pictures@raspberrypi:~ $ exit ### 4136 exit pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ date Thu 29 Jun 2023 09:09:26 PM MDT pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ sudo adduser --ingroup www videos ### sudo 4143 Adding user `videos' ... Adding new user `videos' (1008) with group `www' ... Creating home directory `/home/videos' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for videos Enter the new value, or press ENTER for the default Full Name []: videos Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y pi@raspberrypi:/home $ pi@raspberrypi:/home $ su videos ### 4163 Password: videos@raspberrypi:/home $ videos@raspberrypi:/home $ cd ### 4167 videos@raspberrypi:~ $ videos@raspberrypi:~ $ touch .1008 ### 4170 videos@raspberrypi:~ $ videos@raspberrypi:~ $ makeweb ### 4173 Created web directory /home/local/www/users/videos Created symbolic link /home/videos/public_html videos@raspberrypi:~ $ videos@raspberrypi:~ $ ls -al ### 4178 total 24 drwxr-xr-x 2 videos www 4096 Jun 29 21:12 . drwxr-xr-x 12 root root 4096 Jun 29 21:09 .. -rw-r--r-- 1 videos www 0 Jun 29 21:12 .1008 -rw-r--r-- 1 videos www 220 Jun 29 21:09 .bash_logout -rw-r--r-- 1 videos www 3523 Jun 29 21:09 .bashrc -rw-r--r-- 1 videos www 1670 Jun 29 21:09 .mkshrc -rw-r--r-- 1 videos www 807 Jun 29 21:09 .profile lrwxrwxrwx 1 videos www 28 Jun 29 21:12 public_html -> /home/local/www/users/videos videos@raspberrypi:~ $ videos@raspberrypi:~ $ exit ### 4190 exit pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ date Thu 29 Jun 2023 09:13:24 PM MDT pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ ls -al ### 4197 total 48 drwxr-xr-x 12 root root 4096 Jun 29 21:09 . drwxr-xr-x 23 root root 4096 Jun 29 14:37 .. drwxr-xr-x 2 a0 www 4096 Jun 29 16:14 a0 drwxr-xr-x 2 documents www 4096 Jun 29 20:46 documents drwxr-xr-x 2 downloads www 4096 Jun 29 20:52 downloads drwxr-xr-x 5 root root 4096 Jun 29 15:49 local drwxr-xr-x 2 memes www 4096 Jun 29 20:56 memes drwxr-xr-x 2 music www 4096 Jun 29 21:00 music drwxr-xr-x 2 notices www 4096 Jun 29 21:05 notices drwxr-xr-x 22 pi pi 4096 Jun 29 20:32 pi drwxr-xr-x 2 pictures www 4096 Jun 29 21:09 pictures drwxr-xr-x 2 videos www 4096 Jun 29 21:13 videos pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ sudo chown -Rv a0:www a0 ### 4216 ownership of 'a0/.1001' retained as a0:www ownership of 'a0/.bashrc' retained as a0:www ownership of 'a0/.bash_history' retained as a0:www ownership of 'a0/.bash_logout' retained as a0:www ownership of 'a0/public_html' retained as a0:www ownership of 'a0/.mkshrc' retained as a0:www ownership of 'a0/.profile' retained as a0:www ownership of 'a0' retained as a0:www pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ ls -al ### 4229 total 48 drwxr-xr-x 12 root root 4096 Jun 29 21:09 . drwxr-xr-x 23 root root 4096 Jun 29 14:37 .. drwxr-xr-x 2 a0 www 4096 Jun 29 16:14 a0 drwxr-xr-x 2 documents www 4096 Jun 29 20:46 documents drwxr-xr-x 2 downloads www 4096 Jun 29 20:52 downloads drwxr-xr-x 5 root root 4096 Jun 29 15:49 local drwxr-xr-x 2 memes www 4096 Jun 29 20:56 memes drwxr-xr-x 2 music www 4096 Jun 29 21:00 music drwxr-xr-x 2 notices www 4096 Jun 29 21:05 notices drwxr-xr-x 22 pi pi 4096 Jun 29 20:32 pi drwxr-xr-x 2 pictures www 4096 Jun 29 21:09 pictures drwxr-xr-x 2 videos www 4096 Jun 29 21:13 videos pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ cd /home/local/www/users ### 4247 pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ ls -al ### 4252 total 52 drwxrwxr-x 10 root www 4096 Jun 29 21:12 . drwxr-xr-x 5 root www 4096 Jun 29 17:00 .. drwxr-xr-x 2 a0 www 4096 Jun 29 16:12 a0 drwxr-xr-x 2 documents www 4096 Jun 29 20:45 documents drwxr-xr-x 2 downloads www 4096 Jun 29 20:50 downloads -rw-r--r-- 1 pi pi 533 Jan 8 2020 favicon.ico drwxr-xr-x 2 memes www 4096 Jun 29 20:55 memes drwxr-xr-x 2 music www 4096 Jun 29 20:59 music drwxr-xr-x 2 notices www 4096 Jun 29 21:04 notices drwxr-xr-x 2 pictures www 4096 Jun 29 21:08 pictures -rw-r--r-- 1 pi pi 308 Aug 13 2021 readme.txt -rw-r--r-- 1 pi pi 27 Jan 8 2020 robots.txt drwxr-xr-x 2 videos www 4096 Jun 29 21:12 videos pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ date ### 4271 Thu 29 Jun 2023 09:19:41 PM MDT pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ df -H ### 4277 Filesystem Size Used Avail Use% Mounted on /dev/root 31G 26G 2.9G 91% / devtmpfs 91M 0 91M 0% /dev tmpfs 226M 0 226M 0% /dev/shm tmpfs 91M 1.2M 89M 2% /run tmpfs 5.3M 4.1k 5.3M 1% /run/lock /dev/mmcblk0p1 265M 53M 212M 20% /boot tmpfs 46M 46k 45M 1% /run/user/1000 pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ date ### 4290 Thu 29 Jun 2023 09:20:36 PM MDT pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ pi@raspberrypi:/home/local/www/users $ cd ### 4296 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ps -e ### 4300 PID TTY TIME CMD 1 ? 00:00:09 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 slub_flushwq 4 ? 00:00:00 netns 8 ? 00:00:00 mm_percpu_wq 9 ? 00:00:00 rcu_tasks_rude_kthread 10 ? 00:00:00 rcu_tasks_trace_kthread 11 ? 00:00:18 ksoftirqd/0 12 ? 00:00:00 kdevtmpfs 13 ? 00:00:00 inet_frag_wq 14 ? 00:00:00 kauditd 15 ? 00:00:00 khungtaskd 17 ? 00:00:00 oom_reaper 18 ? 00:00:00 writeback 20 ? 00:00:06 kcompactd0 21 ? 00:00:00 kintegrityd 22 ? 00:00:00 kblockd 23 ? 00:00:00 blkcg_punt_bio 24 ? 00:00:00 watchdogd 26 ? 00:00:00 rpciod 27 ? 00:00:00 xprtiod 28 ? 00:00:04 kswapd0 29 ? 00:00:00 nfsiod 33 ? 00:00:00 hwrng 34 ? 00:00:00 iscsi_conn_clea 35 ? 00:00:00 dwc_otg 36 ? 00:00:00 DWC Notificatio 38 ? 00:00:06 vchiq-slot/0 39 ? 00:00:00 vchiq-recy/0 40 ? 00:00:00 vchiq-sync/0 41 ? 00:00:00 zswap-shrink 59 ? 00:00:00 irq/160-usb-001:003:01 61 ? 00:00:00 kworker/u3:0 62 ? 00:00:00 mmc_complete 64 ? 00:00:00 jbd2/mmcblk0p2-8 65 ? 00:00:00 ext4-rsv-conver 67 ? 00:00:00 mld 68 ? 00:00:00 ipv6_addrconf 108 ? 00:00:04 systemd-journal 129 ? 00:00:02 systemd-udevd 147 ? 00:00:00 vchiq-keep/0 148 ? 00:00:00 SMIO 174 ? 00:00:00 mmal-vchiq 175 ? 00:00:00 mmal-vchiq 177 ? 00:00:00 mmal-vchiq 178 ? 00:00:00 mmal-vchiq 179 ? 00:00:00 mmal-vchiq 180 ? 00:00:00 mmal-vchiq 181 ? 00:00:00 mmal-vchiq 211 ? 00:00:01 systemd-timesyn 244 ? 00:00:00 avahi-daemon 245 ? 00:00:00 cron 246 ? 00:00:05 dbus-daemon 247 ? 00:00:00 avahi-daemon 257 ? 00:00:01 polkitd 284 ? 00:00:00 rsyslogd 299 ? 00:00:01 systemd-logind 300 ? 00:01:10 thd 304 ? 00:00:01 udisksd 310 ? 00:00:00 wpa_supplicant 350 ? 00:00:01 ModemManager 352 ? 00:00:00 cupsd 354 ? 00:00:02 epmd 356 ? 00:00:00 rngd 374 ? 00:00:00 cfg80211 375 ? 00:00:00 dhcpcd 382 ? 00:00:00 cups-browsed 385 ? 00:00:00 lightdm 399 tty1 00:00:00 login 400 ? 00:00:00 agetty 427 ? 00:00:01 systemd 431 ? 00:00:00 cec-vc4-hdmi 433 ? 00:00:00 irq/64-vc4 hdmi cec 451 ? 00:00:00 (sd-pam) 454 ? 00:00:00 card0-crtc0 459 ? 00:00:00 card0-crtc1 460 ? 00:00:00 card0-crtc2 461 ? 00:00:00 card0-crtc3 462 tty7 00:42:03 Xorg 527 ? 00:00:00 pipewire 528 ? 00:00:03 pulseaudio 531 tty1 00:00:00 bash 536 ? 00:00:01 rtkit-daemon 555 ? 00:00:03 dbus-daemon 556 ? 00:00:02 pipewire-media- 571 ? 00:00:00 lightdm 582 ? 00:00:07 lxsession 634 ? 00:00:00 ssh-agent 670 ? 00:00:00 gvfsd 675 ? 00:00:00 gvfsd-fuse 685 ? 00:00:49 openbox 686 ? 00:00:00 lxpolkit 688 ? 01:11:01 lxpanel 691 ? 00:01:15 pcmanfm 698 ? 00:00:10 applet.py 713 ? 00:00:00 ssh-agent 718 ? 00:00:00 xcompmgr 723 ? 00:00:00 agent 779 ? 00:00:00 gvfs-udisks2-vo 785 ? 00:00:00 menu-cached 791 ? 00:00:00 gvfs-mtp-volume 795 ? 00:00:04 gvfs-afc-volume 800 ? 00:00:00 gvfs-gphoto2-vo 804 ? 00:00:00 gvfs-goa-volume 853 ? 00:00:00 gvfsd-trash 897 ? 00:01:10 packagekitd 964 ? 00:00:00 kworker/0:1H-mmc_complete 1030 ? 00:01:47 lxterminal 1079 pts/0 00:00:00 bash 1137 ? 00:00:00 xfconfd 1183 ? 00:00:00 dconf-service 1507 ? 00:00:00 kworker/u2:0-events_unbound 1635 ? 00:00:00 kworker/0:0H-kblockd 1997 ? 00:00:00 gvfsd-network 2006 ? 00:00:02 gvfsd-smb-brows 2025 ? 00:00:00 gvfsd-dnssd 2166 ? 00:00:00 kworker/0:2-events_freezable 2398 ? 00:00:00 kworker/0:2H 2795 ? 00:00:00 kworker/0:0-events_power_efficient 2896 pts/1 00:00:00 ps 3928 pts/2 00:00:00 bash 7562 pts/3 00:00:00 bash 9529 ? 00:45:02 geany 9576 pts/1 00:00:04 bash 13122 ? 00:16:15 mousepad 13283 pts/1 00:00:00 thttpd_wrapper 18469 ? 00:00:00 gvfsd-metadata 26571 ? 00:02:58 thttpd 29347 ? 00:00:04 links2 31411 ? 00:00:01 kworker/u2:2-events_unbound 31442 ? 00:00:02 kworker/0:1-events pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ date ### 4489 Thu 29 Jun 2023 09:22:21 PM MDT pi@raspberrypi:~ $ pi@raspberrypi:~ $ df -H ### 4495 Filesystem Size Used Avail Use% Mounted on /dev/root 31G 26G 2.9G 91% / devtmpfs 91M 0 91M 0% /dev tmpfs 226M 0 226M 0% /dev/shm tmpfs 91M 1.2M 89M 2% /run tmpfs 5.3M 4.1k 5.3M 1% /run/lock /dev/mmcblk0p1 265M 53M 212M 20% /boot tmpfs 46M 46k 45M 1% /run/user/1000 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ls -al ### This is to check if anything got added here like a touch number or the public_html symbolic link. 4508 total 6892 drwxr-xr-x 22 pi pi 4096 Jun 29 20:32 . drwxr-xr-x 12 root root 4096 Jun 29 21:09 .. -rw-r--r-- 1 pi pi 646 Jun 29 17:42 2023-06-29-ELinks-a0.txt -rw-r--r-- 1 pi pi 123091 Jun 29 20:32 2023-06-29-Raspberry-Pi-Model-B-Rev-2--RAM-512-MB -rw------- 1 pi pi 1244 Jun 29 15:18 .bash_history -rw-r--r-- 1 pi pi 220 Jan 27 2022 .bash_logout -rw-r--r-- 1 pi pi 3523 Jan 27 2022 .bashrc drwxr-xr-x 2 pi pi 4096 Jan 27 2022 Bookshelf drwxr-xr-x 9 pi pi 4096 Jun 28 16:03 .cache drwx------ 18 pi pi 4096 Jun 29 12:27 .config drwxr-xr-x 2 pi pi 4096 Jun 28 15:56 Desktop drwx------ 2 pi pi 4096 Jun 28 17:59 .dillo drwxr-xr-x 2 pi pi 4096 Jun 28 15:57 Documents drwxr-xr-x 3 pi pi 4096 Jul 19 2022 Downloads drwx------ 2 pi pi 4096 Jun 29 17:37 .elinks drwx------ 3 pi pi 4096 Jun 28 16:54 .fltk drwxr-xr-x 9 pi pi 4096 Jul 22 2022 freedom drwxr-xr-x 7 pi pi 4096 Jun 14 2022 freedom-old -rw-r--r-- 1 pi pi 6805716 Jun 28 17:32 freedom.zip drwx------ 2 pi pi 4096 Jun 29 20:34 .links2 drwxr-xr-x 3 pi pi 4096 Jan 27 2022 .local drwxr-xr-x 2 pi pi 4096 Jan 27 2022 Music drwxr-xr-x 2 pi pi 4096 Jan 27 2022 Pictures drwx------ 3 pi pi 4096 Jul 19 2022 .pki drwx------ 4 pi pi 4096 Jun 28 15:51 .pp_backup -rw-r--r-- 1 pi pi 807 Jan 27 2022 .profile drwxr-xr-x 2 pi pi 4096 Jan 27 2022 Public drwxr-xr-x 2 pi pi 4096 Jan 27 2022 Templates drwxr-xr-x 2 pi pi 4096 Jan 27 2022 Videos -rw------- 1 pi pi 56 Jun 29 12:21 .Xauthority -rw------- 1 pi pi 2522 Jun 29 12:21 .xsession-errors -rw------- 1 pi pi 2489 Jun 29 11:26 .xsession-errors.old pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ### partial ps -e follows: 9576 pts/1 00:00:04 bash 13122 ? 00:16:15 mousepad 13283 pts/1 00:00:00 thttpd_wrapper 18469 ? 00:00:00 gvfsd-metadata 26571 ? 00:02:58 thttpd 29347 ? 00:00:04 links2 31411 ? 00:00:01 kworker/u2:2-events_unbound 31442 ? 00:00:02 kworker/0:1-events pi@raspberrypi:~ $ pi@raspberrypi:~ $ ### Notice the wrapper is still running at 13283 while thttpd is at 26571 and it should show up in the log files when the PID's were changed. # Stop the computer, then start the computer to see where "thttpd_wrapper" ends up, by using ps -e, as the computer loads from scratch! 4585 # ***************************** pi@raspberrypi:~ $ w 21:45:48 up 3 min, 2 users, load average: 2.87, 2.32, 1.02 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 21:42 3:24 0.81s 0.64s -bash pi tty7 :0 21:43 3:10 5.61s 0.81s /usr/bin/lxsess pi@raspberrypi:~ $ df -H Filesystem Size Used Avail Use% Mounted on /dev/root 31G 26G 2.9G 91% / devtmpfs 91M 0 91M 0% /dev tmpfs 226M 0 226M 0% /dev/shm tmpfs 91M 1.1M 89M 2% /run tmpfs 5.3M 4.1k 5.3M 1% /run/lock /dev/mmcblk0p1 265M 53M 212M 20% /boot tmpfs 46M 33k 45M 1% /run/user/1000 pi@raspberrypi:~ $ cd /home/ pi@raspberrypi:/home $ ls -al total 48 drwxr-xr-x 12 root root 4096 Jun 29 21:09 . drwxr-xr-x 23 root root 4096 Jun 29 14:37 .. drwxr-xr-x 2 a0 www 4096 Jun 29 16:14 a0 drwxr-xr-x 2 documents www 4096 Jun 29 20:46 documents drwxr-xr-x 2 downloads www 4096 Jun 29 20:52 downloads drwxr-xr-x 5 root root 4096 Jun 29 15:49 local drwxr-xr-x 2 memes www 4096 Jun 29 20:56 memes drwxr-xr-x 2 music www 4096 Jun 29 21:00 music drwxr-xr-x 2 notices www 4096 Jun 29 21:05 notices drwxr-xr-x 22 pi pi 4096 Jun 29 21:43 pi drwxr-xr-x 2 pictures www 4096 Jun 29 21:09 pictures drwxr-xr-x 2 videos www 4096 Jun 29 21:13 videos pi@raspberrypi:/home $ pi@raspberrypi:/home $ pi@raspberrypi:/home $ du -bd4 10956 ./a0 10443 ./memes 10446 ./pictures 10444 ./videos 10443 ./music 10447 ./documents 35958780 ./pi/Bookshelf 4096 ./pi/Templates 4096 ./pi/Videos 4190 ./pi/.fltk/fltk.org 8286 ./pi/.fltk 70075 ./pi/.pki/nssdb 74171 ./pi/.pki 4466 ./pi/.config/autostart 4494 ./pi/.config/openbox 4330 ./pi/.config/qt5ct 29672 ./pi/.config/pulse 4096 ./pi/.config/chromium/WidevineCdm 4096 ./pi/.config/chromium/OptimizationGuidePredictionModels 217017 ./pi/.config/chromium/AutofillStates 8035744 ./pi/.config/chromium/OnDeviceHeadSuggestModel 22618 ./pi/.config/chromium/MEIPreload 4096 ./pi/.config/chromium/NativeMessagingHosts 322964 ./pi/.config/chromium/DesktopSharingHub 13965 ./pi/.config/chromium/OriginTrials 15960 ./pi/.config/chromium/FirstPartySetsPreloaded 1313090 ./pi/.config/chromium/hyphen-data 4096 ./pi/.config/chromium/FileTypePolicies 4096 ./pi/.config/chromium/Safe Browsing 26747 ./pi/.config/chromium/Crowd Deny 5845360 ./pi/.config/chromium/GrShaderCache 4096 ./pi/.config/chromium/TrustTokenKeyCommitments 4096 ./pi/.config/chromium/Floc 80745 ./pi/.config/chromium/SafetyTips 108634 ./pi/.config/chromium/AutofillRegex 299589 ./pi/.config/chromium/Subresource Filter 565616 ./pi/.config/chromium/ShaderCache 218062 ./pi/.config/chromium/PKIMetadata 807561 ./pi/.config/chromium/ZxcvbnData 456064 ./pi/.config/chromium/Dictionaries 4096 ./pi/.config/chromium/ClientSidePhishing 38501 ./pi/.config/chromium/CertificateRevocation 17011 ./pi/.config/chromium/SSLErrorAssistant 107752 ./pi/.config/chromium/Crash Reports 17597610 ./pi/.config/chromium/Default 15191 ./pi/.config/chromium/OptimizationHints 40364738 ./pi/.config/chromium 4471 ./pi/.config/lxsession/LXDE-pi 8567 ./pi/.config/lxsession 4138 ./pi/.config/gtk-3.0 4096 ./pi/.config/geany/tags 4354 ./pi/.config/geany/filedefs 8405 ./pi/.config/geany/templates 4096 ./pi/.config/geany/colorschemes 30782 ./pi/.config/geany 4576 ./pi/.config/pcmanfm/LXDE-pi 8672 ./pi/.config/pcmanfm 10646 ./pi/.config/Mousepad 6267 ./pi/.config/dconf 10863 ./pi/.config/lxpanel/LXDE-pi 14959 ./pi/.config/lxpanel 5550 ./pi/.config/lxterminal 4096 ./pi/.config/pipewire-media-session 4588 ./pi/.config/xarchiver 8192 ./pi/.config/xfce4/xfconf 12288 ./pi/.config/xfce4 40522987 ./pi/.config 7708 ./pi/Desktop 4494 ./pi/.pp_backup/.config/openbox 4330 ./pi/.pp_backup/.config/qt5ct 8567 ./pi/.pp_backup/.config/lxsession 4138 ./pi/.pp_backup/.config/gtk-3.0 8616 ./pi/.pp_backup/.config/pcmanfm 14888 ./pi/.pp_backup/.config/lxpanel 5548 ./pi/.pp_backup/.config/lxterminal 54677 ./pi/.pp_backup/.config 16608 ./pi/.pp_backup/.local/share 20704 ./pi/.pp_backup/.local 79477 ./pi/.pp_backup 59020 ./pi/.cache/menus 3159312 ./pi/.cache/fontconfig 4096 ./pi/.cache/openbox/sessions 8277 ./pi/.cache/openbox 4096 ./pi/.cache/thumbnails/large 4096 ./pi/.cache/thumbnails/normal 12288 ./pi/.cache/thumbnails 1314824 ./pi/.cache/mesa_shader_cache 1992566 ./pi/.cache/chromium/Default 1996662 ./pi/.cache/chromium 16890 ./pi/.cache/lxsession/LXDE-pi 20986 ./pi/.cache/lxsession 6575465 ./pi/.cache 4096 ./pi/Public 4109 ./pi/.dillo 12353 ./pi/freedom-old/thttpd-extras/vhost-DN-test 24275 ./pi/freedom-old/thttpd-extras 11056 ./pi/freedom-old/os-debug 4161 ./pi/freedom-old/vhost-DN-test/192.168.1.128 4096 ./pi/freedom-old/vhost-DN-test/a0 12353 ./pi/freedom-old/vhost-DN-test 237507 ./pi/freedom-old/HTML Sampler_files/ads_data 4096 ./pi/freedom-old/HTML Sampler_files/aframe_data 932967 ./pi/freedom-old/HTML Sampler_files 7914 ./pi/freedom-old/Acme.com/Other Web Resources_files 7914 ./pi/freedom-old/Acme.com/ssi man page_files 852242 ./pi/freedom-old/Acme.com/thttpd-2.29 101698 ./pi/freedom-old/Acme.com/thttpd man page_files 7914 ./pi/freedom-old/Acme.com/makeweb man page_files 114800 ./pi/freedom-old/Acme.com/Web Server Comparisons_files 544619 ./pi/freedom-old/Acme.com/thttpd-2.29-home 544553 ./pi/freedom-old/Acme.com/thttpd-2.29-original 9920 ./pi/freedom-old/Acme.com/http_load_files 927311 ./pi/freedom-old/Acme.com/thttpd notes_files 932967 ./pi/freedom-old/Acme.com/HTML Sampler_files 7914 ./pi/freedom-old/Acme.com/syslogtocern man page_files 7914 ./pi/freedom-old/Acme.com/htpasswd man page_files 924810 ./pi/freedom-old/Acme.com/Configuration Options_files 7914 ./pi/freedom-old/Acme.com/redirect man page_files 903873 ./pi/freedom-old/Acme.com/ACME Laboratories_files 7769 ./pi/freedom-old/Acme.com/acme.com's hardware_files 7914 ./pi/freedom-old/Acme.com/Auxiliary Programs_files 1983911 ./pi/freedom-old/Acme.com/old-thttpd-2.29 15304 ./pi/freedom-old/Acme.com/thttpd_files 8310959 ./pi/freedom-old/Acme.com 18775563 ./pi/freedom-old 4096 ./pi/Music 8181 ./pi/.links2 74829 ./pi/Downloads/http_load-09Mar2016 159552 ./pi/Downloads 4096 ./pi/.local/share/applications 36928 ./pi/.local/share/gvfs-metadata 12512 ./pi/.local/share/themes 4096 ./pi/.local/share/desktop-directories 65452 ./pi/.local/share 69548 ./pi/.local 7708 ./pi/Documents 4182 ./pi/.elinks 4096 ./pi/Pictures 16444 ./pi/freedom/thttpd-extras/vhost-DN-test 28366 ./pi/freedom/thttpd-extras 11056 ./pi/freedom/os-debug 20984510 ./pi/freedom/2022-07-13-Pi-Model-B-Rev-2 8252 ./pi/freedom/vhost-DN-test/192.168.1.128 4096 ./pi/freedom/vhost-DN-test/a0 16444 ./pi/freedom/vhost-DN-test 237507 ./pi/freedom/HTML Sampler_files/ads_data 4096 ./pi/freedom/HTML Sampler_files/aframe_data 932967 ./pi/freedom/HTML Sampler_files 7914 ./pi/freedom/Acme.com/Other Web Resources_files 7914 ./pi/freedom/Acme.com/ssi man page_files 852234 ./pi/freedom/Acme.com/thttpd-2.29 101698 ./pi/freedom/Acme.com/thttpd man page_files 7914 ./pi/freedom/Acme.com/makeweb man page_files 114800 ./pi/freedom/Acme.com/Web Server Comparisons_files 544619 ./pi/freedom/Acme.com/thttpd-2.29-home 544553 ./pi/freedom/Acme.com/thttpd-2.29-original 9920 ./pi/freedom/Acme.com/http_load_files 927311 ./pi/freedom/Acme.com/thttpd notes_files 932967 ./pi/freedom/Acme.com/HTML Sampler_files 7914 ./pi/freedom/Acme.com/syslogtocern man page_files 7914 ./pi/freedom/Acme.com/htpasswd man page_files 924810 ./pi/freedom/Acme.com/Configuration Options_files 7914 ./pi/freedom/Acme.com/redirect man page_files 903873 ./pi/freedom/Acme.com/ACME Laboratories_files 7769 ./pi/freedom/Acme.com/acme.com's hardware_files 7914 ./pi/freedom/Acme.com/Auxiliary Programs_files 1983911 ./pi/freedom/Acme.com/old-thttpd-2.29 15304 ./pi/freedom/Acme.com/thttpd_files 8310951 ./pi/freedom/Acme.com 20985865 ./pi/freedom/2022-07-13-Pi-Model-B-Plus-Rev-2-1 52374784 ./pi/freedom 161633187 ./pi 10446 ./notices 10447 ./downloads 16444 ./local/sbin/thttpd-extras/vhost-DN-test 28366 ./local/sbin/thttpd-extras 11056 ./local/sbin/os-debug 165609 ./local/sbin 4096 ./local/www/users/a0 4096 ./local/www/users/memes 4096 ./local/www/users/pictures 4096 ./local/www/users/videos 4096 ./local/www/users/music 4096 ./local/www/users/documents 4096 ./local/www/users/notices 4096 ./local/www/users/downloads 37732 ./local/www/users 8475 ./local/www/logs 38948 ./local/www/cgi-bin 90253 ./local/www 39573 ./local/man/man8 6145 ./local/man/man1 49814 ./local/man 309772 ./local 162031127 . pi@raspberrypi:/home $ cd local/www/ pi@raspberrypi:/home/local/www $ ls -al total 28 drwxr-xr-x 5 root www 4096 Jun 29 17:00 . drwxr-xr-x 5 root root 4096 Jun 29 15:49 .. drwxr-xr-x 2 root www 4096 Jun 29 15:49 cgi-bin drwxr-xr-x 2 root www 4096 Jun 29 20:11 logs -rwxr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config -r-xr-xr-- 1 pi pi 501 Jun 7 2022 thttpd_config~ drwxrwxr-x 10 root www 4096 Jun 29 21:12 users pi@raspberrypi:/home/local/www $ du -bd4 4096 ./users/a0 4096 ./users/memes 4096 ./users/pictures 4096 ./users/videos 4096 ./users/music 4096 ./users/documents 4096 ./users/notices 4096 ./users/downloads 37732 ./users 8475 ./logs 38948 ./cgi-bin 90253 . pi@raspberrypi:/home/local/www $ cd logs/ pi@raspberrypi:/home/local/www/logs $ ls -al total 20 drwxr-xr-x 2 root www 4096 Jun 29 20:11 . drwxr-xr-x 5 root www 4096 Jun 29 17:00 .. -rw-r--r-- 1 nobody nogroup 920 Jun 29 20:16 thttpd_log -rw-r--r-- 1 nobody nogroup 1628 Jun 29 20:11 thttpd_log.01 -rw-r--r-- 1 nobody nogroup 1831 Jun 29 18:52 thttpd_log.02 pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log.02 ::1 - - [29/Jun/2023:23:26:30 +0000] "GET / HTTP/1.1" 200 25000 "" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x7-2)" ::1 - - [29/Jun/2023:23:31:50 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://localhost/" "ELinks/0.13.2 (textmode; Linux 6.1.21+ armv6l; 94x16-2)" 192.168.1.187 - - [30/Jun/2023:00:29:43 +0000] "GET / HTTP/1.1" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:51 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:29:57 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:30:16 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:31:06 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; x)" 192.168.1.187 - - [30/Jun/2023:00:43:25 +0000] "GET / HTTP/1.0" 200 25000 "" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:23 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" 192.168.1.187 - - [30/Jun/2023:00:44:50 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.187/" "Links (2.21; Linux 6.1.21+ armv6l; GNU C 10.2; text)" Thu 29 Jun 2023 06:52:37 PM MDT 18:52:37 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log.01 Thu 29 Jun 2023 06:52:37 PM MDT 18:52:38 up 6:32, 2 users, load average: 0.85, 0.55, 0.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 6:32m 0.80s 0.63s -bash pi tty7 :0 12:21 6:31m 30:00 6.09s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi 192.168.1.216 - - [30/Jun/2023:01:24:36 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:24:43 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:24:56 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:25:10 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" 192.168.1.216 - - [30/Jun/2023:01:25:29 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.187/" "Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/112.0 Firefox/112.0" Thu 29 Jun 2023 08:11:40 PM MDT log rotate end, thttpd pid = PID TTY TIME CMD 16850 ? 00:03:21 thttpd 20:11:40 up 7:51, 2 users, load average: 0.58, 0.44, 0.56 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:51m 0.80s 0.63s -bash pi tty7 :0 12:21 7:50m 36:11 6.62s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log Thu 29 Jun 2023 08:11:40 PM MDT old log rotate end, old thttpd pid = PID TTY TIME CMD 16850 ? 00:03:21 thttpd log rotate new, thttpd pid = PID TTY TIME CMD 26571 ? 00:00:00 thttpd 20:11:56 up 7:51, 2 users, load average: 0.45, 0.42, 0.55 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:51m 0.80s 0.63s -bash pi tty7 :0 12:21 7:51m 36:12 6.62s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi datelog, thttpd pid = PID TTY TIME CMD 26571 ? 00:00:10 thttpd Thu 29 Jun 2023 08:16:06 PM MDT 20:16:06 up 7:55, 2 users, load average: 1.20, 1.11, 0.83 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:55m 0.80s 0.63s -bash pi tty7 :0 12:21 7:55m 36:34 6.66s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ sudo datelog pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ cat *log Thu 29 Jun 2023 08:11:40 PM MDT old log rotate end, old thttpd pid = PID TTY TIME CMD 16850 ? 00:03:21 thttpd log rotate new, thttpd pid = PID TTY TIME CMD 26571 ? 00:00:00 thttpd 20:11:56 up 7:51, 2 users, load average: 0.45, 0.42, 0.55 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:51m 0.80s 0.63s -bash pi tty7 :0 12:21 7:51m 36:12 6.62s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi datelog, thttpd pid = PID TTY TIME CMD 26571 ? 00:00:10 thttpd Thu 29 Jun 2023 08:16:06 PM MDT 20:16:06 up 7:55, 2 users, load average: 1.20, 1.11, 0.83 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 12:20 7:55m 0.80s 0.63s -bash pi tty7 :0 12:21 7:55m 36:34 6.66s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi datelog, thttpd pid = PID TTY TIME CMD 372 ? 00:00:10 thttpd Thu 29 Jun 2023 09:50:52 PM MDT 21:50:52 up 8 min, 2 users, load average: 0.25, 0.96, 0.79 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pi tty1 - 21:42 8:28 0.81s 0.64s -bash pi tty7 :0 21:43 8:14 20.45s 0.81s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ ps -e PID TTY TIME CMD 1 ? 00:00:08 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 slub_flushwq 4 ? 00:00:00 netns 7 ? 00:00:02 kworker/u2:0-events_unbound 8 ? 00:00:00 mm_percpu_wq 9 ? 00:00:00 rcu_tasks_rude_kthread 10 ? 00:00:00 rcu_tasks_trace_kthread 11 ? 00:00:00 ksoftirqd/0 12 ? 00:00:00 kdevtmpfs 13 ? 00:00:00 inet_frag_wq 14 ? 00:00:00 kauditd 15 ? 00:00:00 khungtaskd 17 ? 00:00:00 oom_reaper 18 ? 00:00:00 writeback 19 ? 00:00:01 kworker/u2:2-events_unbound 20 ? 00:00:00 kcompactd0 21 ? 00:00:00 kintegrityd 22 ? 00:00:00 kblockd 23 ? 00:00:00 blkcg_punt_bio 24 ? 00:00:00 watchdogd 25 ? 00:00:00 kworker/0:1-events_power_efficient 26 ? 00:00:00 rpciod 27 ? 00:00:00 xprtiod 28 ? 00:00:01 kswapd0 29 ? 00:00:00 nfsiod 33 ? 00:00:00 hwrng 34 ? 00:00:00 iscsi_conn_clea 35 ? 00:00:00 dwc_otg 36 ? 00:00:00 DWC Notificatio 37 ? 00:00:01 kworker/0:2-events 38 ? 00:00:00 vchiq-slot/0 39 ? 00:00:00 vchiq-recy/0 40 ? 00:00:00 vchiq-sync/0 41 ? 00:00:00 zswap-shrink 59 ? 00:00:00 irq/160-usb-001:003:01 61 ? 00:00:00 kworker/u3:0 62 ? 00:00:00 mmc_complete 63 ? 00:00:03 kworker/0:1H-kblockd 64 ? 00:00:00 jbd2/mmcblk0p2-8 65 ? 00:00:00 ext4-rsv-conver 66 ? 00:00:00 kworker/0:2H-kblockd 67 ? 00:00:00 mld 68 ? 00:00:00 ipv6_addrconf 108 ? 00:00:02 systemd-journal 129 ? 00:00:02 systemd-udevd 146 ? 00:00:00 vchiq-keep/0 147 ? 00:00:00 SMIO 173 ? 00:00:00 mmal-vchiq 175 ? 00:00:00 mmal-vchiq 177 ? 00:00:00 mmal-vchiq 178 ? 00:00:00 mmal-vchiq 179 ? 00:00:00 mmal-vchiq 180 ? 00:00:00 mmal-vchiq 181 ? 00:00:00 mmal-vchiq 210 ? 00:00:00 systemd-timesyn 250 ? 00:00:00 avahi-daemon 251 ? 00:00:00 cron 252 ? 00:00:01 dbus-daemon 254 ? 00:00:00 avahi-daemon 264 ? 00:00:01 polkitd 290 ? 00:00:00 rsyslogd 306 ? 00:00:01 systemd-logind 307 ? 00:00:00 thd 312 ? 00:00:01 udisksd 317 ? 00:00:00 wpa_supplicant 354 ? 00:00:01 ModemManager 356 ? 00:00:00 cupsd 359 ? 00:00:00 epmd 361 ? 00:00:00 rngd 371 ? 00:00:00 thttpd_wrapper 372 ? 00:00:11 thttpd 379 ? 00:00:00 cfg80211 381 ? 00:00:00 dhcpcd 383 ? 00:00:00 lightdm 389 ? 00:00:00 cups-browsed 407 tty1 00:00:00 login 409 ? 00:00:00 agetty 436 ? 00:00:00 cec-vc4-hdmi 437 ? 00:00:00 irq/64-vc4 hdmi cec 454 tty7 00:00:21 Xorg 459 ? 00:00:00 card0-crtc0 462 ? 00:00:00 card0-crtc1 464 ? 00:00:00 card0-crtc2 466 ? 00:00:00 card0-crtc3 472 ? 00:00:01 systemd 493 ? 00:00:00 (sd-pam) 542 ? 00:00:00 pipewire 543 ? 00:00:03 pulseaudio 546 tty1 00:00:00 bash 547 ? 00:00:00 rtkit-daemon 570 ? 00:00:00 dbus-daemon 571 ? 00:00:00 pipewire-media- 582 ? 00:00:00 lightdm 586 ? 00:00:00 lxsession 634 ? 00:00:00 ssh-agent 670 ? 00:00:00 gvfsd 675 ? 00:00:00 gvfsd-fuse 685 ? 00:00:02 openbox 686 ? 00:00:00 lxpolkit 688 ? 00:01:06 lxpanel 691 ? 00:00:12 pcmanfm 698 ? 00:00:06 applet.py 709 ? 00:00:00 ssh-agent 717 ? 00:00:00 xcompmgr 726 ? 00:00:00 agent 779 ? 00:00:00 gvfs-udisks2-vo 785 ? 00:00:00 menu-cached 791 ? 00:00:00 gvfs-mtp-volume 795 ? 00:00:00 gvfs-afc-volume 800 ? 00:00:00 gvfs-gphoto2-vo 804 ? 00:00:00 gvfs-goa-volume 853 ? 00:00:00 gvfsd-trash 899 ? 00:00:54 packagekitd 1204 ? 00:00:13 lxterminal 1219 pts/0 00:00:00 bash 1446 ? 00:00:00 kworker/0:0H-kblockd 1603 ? 00:00:00 kworker/u2:1-events_unbound 1825 ? 00:00:00 kworker/0:0-events_power_efficient 1925 pts/0 00:00:00 ps pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $ pi@raspberrypi:/home/local/www/logs $