On 2024/08/21 10:21, David Colburn wrote:
> Notes:
> 
> 1. I've read the manual entry, and multiple threads related to this, more 
> than once.
> 
> 2. The “chroot location” as defined in /etc/lighttpd.conf. is unchanged - 
> /var/www
> 
> 3. Someone suggested, and I also tried "/var/www/" - same error.
> 
> 4. As previously noted - Stuart's answer was tested on a clean, unmodified, 
> lighttpd.conf.
> 
> 5. As previously noted I also tried removing "nodev" from /etc/fstab on line 
> "/var ffs
> rw,nosuid 1 2"

Did you either reboot or remount /var after changing this?


> Thanks
> 
> 
> ``` # lighttpd configuration file
> 
> ############ Options you really have to take care of ####################
> 
> ## modules to load
> # at least mod_access and mod_accesslog should be loaded
> # all other module should only be loaded if really neccesary
> # - saves some time
> # - saves memory
> server.modules              = (
> #                               "mod_rewrite",
> #                               "mod_redirect",
> #                               "mod_alias",
>                                 "mod_access",
> #                               "mod_trigger_b4_dl",
> #                               "mod_auth",
> #                               "mod_status",
> #                               "mod_setenv",
> #                               "mod_fastcgi",
> #                               "mod_proxy",
> #                               "mod_simple_vhost",
> #                               "mod_evhost",
> #                               "mod_userdir",
> #                               "mod_cgi",
> #                               "mod_deflate",
> #                               "mod_ssi",
> #                               "mod_expire",
> #                               "mod_rrdtool",
>                                 "mod_accesslog" )
> 
> ## A static document-root. For virtual hosting take a look at the
> ## mod_simple_vhost module.
> server.document-root        = "htdocs/"
> 
> #### accesslog module
> accesslog.filename          = "logs/access.log"
> 
> ## where to send error-messages to
> server.errorlog             = "logs/error.log"
> 
> # files to check for if .../ is requested
> index-file.names            = ( "index.html", "index.htm", "default.htm" )
> 
> server.event-handler = "kqueue"
> server.network-backend = "writev"
> 
> server.bind = "0.0.0.0"
> server.port = "80"
> 
> $SERVER["socket"] == "[::]:80" { }
> 
> # mimetype mapping
> 
> mimetype.assign             = (
>   ".pdf"          =>      "application/pdf",
>   ".sig"          =>      "application/pgp-signature",
>   ".spl"          =>      "application/futuresplash",
>   ".class"        =>      "application/octet-stream",
>   ".ps"           =>      "application/postscript",
>   ".torrent"      =>      "application/x-bittorrent",
>   ".dvi"          =>      "application/x-dvi",
>   ".gz"           =>      "application/x-gzip",
>   ".pac"          =>      "application/x-ns-proxy-autoconfig",
>   ".swf"          =>      "application/x-shockwave-flash",
>   ".tar.gz"       =>      "application/x-tgz",
>   ".tgz"          =>      "application/x-tgz",
>   ".tar"          =>      "application/x-tar",
>   ".zip"          =>      "application/zip",
>   ".mp3"          =>      "audio/mpeg",
>   ".m3u"          =>      "audio/x-mpegurl",
>   ".wma"          =>      "audio/x-ms-wma",
>   ".wax"          =>      "audio/x-ms-wax",
>   ".ogg"          =>      "application/ogg",
>   ".wav"          =>      "audio/x-wav",
>   ".gif"          =>      "image/gif",
>   ".jar"          =>      "application/x-java-archive",
>   ".jpg"          =>      "image/jpeg",
>   ".jpeg"         =>      "image/jpeg",
>   ".png"          =>      "image/png",
>   ".xbm"          =>      "image/x-xbitmap",
>   ".xpm"          =>      "image/x-xpixmap",
>   ".xwd"          =>      "image/x-xwindowdump",
>   ".css"          =>      "text/css",
>   ".html"         =>      "text/html",
>   ".htm"          =>      "text/html",
>   ".js"           =>      "text/javascript",
>   ".asc"          =>      "text/plain",
>   ".c"            =>      "text/plain",
>   ".cpp"          =>      "text/plain",
>   ".log"          =>      "text/plain",
>   ".conf"         =>      "text/plain",
>   ".text"         =>      "text/plain",
>   ".txt"          =>      "text/plain",
>   ".dtd"          =>      "text/xml",
>   ".xml"          =>      "text/xml",
>   ".mpeg"         =>      "video/mpeg",
>   ".mpg"          =>      "video/mpeg",
>   ".mov"          =>      "video/quicktime",
>   ".qt"           =>      "video/quicktime",
>   ".avi"          =>      "video/x-msvideo",
>   ".asf"          =>      "video/x-ms-asf",
>   ".asx"          =>      "video/x-ms-asf",
>   ".wmv"          =>      "video/x-ms-wmv",
>   ".bz2"          =>      "application/x-bzip",
>   ".tbz"          =>      "application/x-bzip-compressed-tar",
>   ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
>   # default mime type
>   ""              =>      "application/octet-stream",
>  )
> 
> # Use the "Content-Type" extended attribute to obtain mime type if possible
> #mimetype.use-xattr        = "enable"
> 
> ## send a different Server: header
> ## be nice and keep it at lighttpd
> # server.tag                 = "lighttpd"
> 
> ## deny access the file-extensions
> #
> # ~    is for backupfiles from vi, emacs, joe, ...
> # .inc is often used for code includes which should in general not be part
> #      of the document-root
> url.access-deny             = ( "~", ".inc" )
> 
> $HTTP["url"] =~ "\.pdf$" {
>   server.range-requests = "disable"
> }
> 
> ##
> # which extensions should not be handle via static-file transfer
> #
> # .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
> static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
> 
> ######### Options that are good to be but not neccesary to be changed #######
> 
> ## error-handler for status 404
> #server.error-handler-404   = "/error-handler.html"
> #server.error-handler-404   = "/error-handler.php"
> 
> ## to help the rc.scripts
> server.pid-file            = "/var/run/lighttpd.pid"
> 
> ###### virtual hosts
> ##
> ##  If you want name-based virtual hosting add the next three settings and 
> load
> ##  mod_simple_vhost
> ##
> ## document-root =
> ##   virtual-server-root + virtual-server-default-host + 
> virtual-server-docroot
> ## or
> ##   virtual-server-root + http-host + virtual-server-docroot
> ##
> #simple-vhost.server-root   = "/srv/www/vhosts/"
> #simple-vhost.default-host  = "www.example.org"
> #simple-vhost.document-root = "/htdocs/"
> 
> 
> ##
> ## Format: <errorfile-prefix><status-code>.html
> ## -> ..../status-404.html for 'File not found'
> #server.errorfile-prefix    = "/usr/share/lighttpd/errors/status-"
> #server.errorfile-prefix    = "/srv/www/errors/status-"
> 
> ## virtual directory listings
> #dir-listing.activate       = "enable"
> ## select encoding for directory listings
> #dir-listing.encoding        = "utf-8"
> 
> ## enable debugging
> #debug.log-request-header   = "enable"
> #debug.log-response-header  = "enable"
> #debug.log-request-handling = "enable"
> #debug.log-file-not-found   = "enable"
> 
> # chroot() to directory
> server.chroot              = "/var/www"
> 
> server.username            = "_lighttpd"
> server.groupname           = "_lighttpd"
> 
> #### compress module
> #compress.cache-dir         = "/var/cache/lighttpd/compress/"
> #compress.filetype          = ("text/plain", "text/html")
> 
> #### proxy module
> ## read proxy.txt for more info
> #proxy.server               = ( ".php" =>
> #                               ( "localhost" =>
> #                                 (
> #                                   "host" => "192.168.0.101",
> #                                   "port" => 80
> #                                 )
> #                               )
> #                             )
> 
> #### fastcgi module
> ## read fastcgi.txt for more info
> ## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
> #fastcgi.server             = ( ".php" =>
> #                               ( "localhost" =>
> #                                 (
> #                                   "socket" => 
> "/var/run/lighttpd/php-fastcgi.socket",
> #                                   "bin-path" => "/usr/local/bin/php-cgi"
> #                                 )
> #                               )
> #                            )
> 
> #### CGI module
> #cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
> #                               ".cgi" => "/usr/bin/perl" )
> #
> 
> #### SSL engine
> #ssl.engine                 = "enable"
> #ssl.pemfile                = "/etc/ssl/private/lighttpd.pem"
> 
> #### status module
> #status.status-url          = "/server-status"
> #status.config-url          = "/server-config"
> 
> #### auth module
> ## read authentication.txt for more info
> #auth.backend               = "plain"
> #auth.backend.plain.userfile = "lighttpd.user"
> #auth.backend.plain.groupfile = "lighttpd.group"
> 
> #auth.backend.ldap.hostname = "localhost"
> #auth.backend.ldap.base-dn  = "dc=my-domain,dc=com"
> #auth.backend.ldap.filter   = "(uid=$)"
> 
> #auth.require               = ( "/server-status" =>
> #                               (
> #                                 "method"  => "digest",
> #                                 "realm"   => "download archiv",
> #                                 "require" => "user=jan"
> #                               ),
> #                               "/server-config" =>
> #                               (
> #                                 "method"  => "digest",
> #                                 "realm"   => "download archiv",
> #                                 "require" => "valid-user"
> #                               )
> #                             )
> 
> #### url handling modules (rewrite, redirect, access)
> #url.rewrite                = ( "^/$"             => "/server-status" )
> #url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1"; )
> #### both rewrite/redirect support back reference to regex conditional using 
> %n
> #$HTTP["host"] =~ "^www\.(.*)" {
> #  url.redirect            = ( "^/(.*)" => "http://%1/$1"; )
> #}
> 
> #
> # define a pattern for the host url finding
> # %% => % sign
> # %0 => domain name + tld
> # %1 => tld
> # %2 => domain name without tld
> # %3 => subdomain 1 name
> # %4 => subdomain 2 name
> #
> #evhost.path-pattern        = "/srv/www/vhosts/%3/htdocs/"
> 
> #### expire module
> #expire.url                 = ( "/buggy/" => "access 2 hours", "/asdhas/" => 
> "access plus 1
> seconds>
> 
> #### ssi
> #ssi.extension              = ( ".shtml" )
> 
> #### rrdtool
> #rrdtool.binary             = "/usr/local/bin/rrdtool"
> #rrdtool.db-name            = "/var/lib/lighttpd/lighttpd.rrd"
> 
> #### setenv
> #setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
> #setenv.add-response-header = ( "X-Secret-Message" => "42" )
> 
> ## for mod_trigger_b4_dl
> # trigger-before-download.gdbm-filename = "/var/lib/lighttpd/trigger.db"
> # trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
> # trigger-before-download.trigger-url = "^/trigger/"
> # trigger-before-download.download-url = "^/download/"
> # trigger-before-download.deny-url = "http://127.0.0.1/index.html";
> # trigger-before-download.trigger-timeout = 10
> 
> #### variable usage:
> ## variable name without "." is auto prefixed by "var." and becomes "var.bar"
> #bar = 1
> #var.mystring = "foo"
> 
> ## integer add
> #bar += 1
> ## string concat, with integer cast as string, result: "www.foo1.com"
> #server.name = "www." + mystring + var.bar + ".com"
> ## array merge
> #index-file.names = (foo + ".php") + index-file.names
> #index-file.names += (foo + ".php")
> 
> #### include
> #include /etc/lighttpd/lighttpd-inc.conf
> ## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
> #include "lighttpd-inc.conf"
> 
> #### include_shell
> #include_shell "echo var.a=1"
> ## the above is same as:
> #var.a=1
> 
> ```
> 
> On 8/21/24 06:06, Robert Klein wrote:
> 
>     Hi,
> 
>     your “chroot location” is defined in /etc/lighttpd.conf.  If you didn't 
> change it, it is /var/www.
> 
>     Please read the man page for chroot(8).  The command to do this is “man 8 
> chroot” (without the quotes).  Alternatively the Wikipedia entry for chroot 
> can help you understand what chroot is and does.
> 
>     Stuart's answers assume you didn't change the file /etc/lighttpd.conf.  
> If you did change it, you might want to send the contents of the changed 
> file, too.
> 
>     Best regards,
>     Robert
> 
> 
>     On Tue, 20 Aug 2024 12:33:57 -0400
>     David Colburn <q...@kd4e.com> wrote:
> 
> 
>         So, I'm at a dead end atm.
> 
>         It was a clean install - OpenBSD 7.5, php 8.3.10, 
> lighttpd-1.4.74-mysql
> 
>         What should have worked (Stuart's instructions) didn't.
> 
>         'chroot' locations are as listed (see following).
> 
>         Where do I go from here, please?
> 
>         Is it possible that the lighttpd.conf from lighttpd-1.4.74-mysql
>         contains errors?
> 
>         Or, that I should have used a different version of lighttpd?
> 
>         Or ...
> 
>         Thanks.
> 
> 
>         b7# locate chroot
> 
>         /usr/local/share/doc/pkg-readmes/femail-chroot
> 
>         /usr/sbin/chroot
> 
>         /usr/share/man/man2/chroot.2
> 
>         /usr/share/man/man8/chroot.8
> 
>         /var/db/pkg/femail-chroot-1.0p3
> 
>         /var/db/pkg/femail-chroot-1.0p3/+CONTENTS
> 
>         /var/db/pkg/femail-chroot-1.0p3/+DESC
> 
>         /var/db/pkg/femail-chroot-1.0p3/+REQUIRED_BY
> 
>         /var/db/pkg/femail-chroot-1.0p3/REQUIRING
> 
>         On 8/18/24 20:30, Stuart Henderson wrote:
> 
>             Hmm. That should be ok...
> 
>             --
>               Sent from a phone, apologies for poor formatting.
> 
> 
>             On 18 August 2024 21:19:25 David Colburn <q...@kd4e.com> wrote:
> 
> 
>                 total 0
> 
>                 crw-rw-rw- 1 root  wheel  2, 2 Aug 18 10:07 null
> 
> 
>                 On 8/18/24 16:00, Stuart Henderson wrote:
> 
>                     Did you do the mkdir etc? What does ls -l /var/www/dev 
> show?
> 
>                     --
>                       Sent from a phone, apologies for poor formatting.
> 
> 
>                     On 18 August 2024 17:01:52 David Colburn <q...@kd4e.com> 
> wrote:
> 
> 
>                         I removed "nodev" from the /var line and rebooted.
> 
>                         Same error:
> 
>                         2024-08-13 22:29:37:
>                         
> (/usr/obj/ports/lighttpd-1.4.74-mysql/lighttpd-1.4.74/src/configfile.c.1891)
> 
>                         opening /dev/null failed. No such file or directory.
>                         2024-08-13 22:29:37:
>                         
> (/usr/obj/ports/lighttpd-1.4.74-mysql/lighttpd-1.4.74/src/server.c.1935)
> 
>                         Opening errorlog failed.
> 
> 
>                         On 8/18/24 11:19, David Colburn wrote:
> 
>                             /etc/fstab currently looks like this:
> 
>                             none swap sw
>                             / ffs rw 1 1
>                             /home ffs rw,nodev,nosuid 1 2
>                             /tmp ffs rw,nodev,nosuid 1 2
>                             /usr ffs rw,nodev 1 2
>                             /usr/X11R6 ffs rw,nodev 1 2
>                             /usr/local ffs rw,wxallowed,nodev 1 2
>                             /usr/obj ffs rw,nodev,nosuid 1 2
>                             /usr/src ffs rw,nodev,nosuid 1 2
>                             /var ffs rw,nodev,nosuid 1 2
> 
> 
>                             On 8/18/24 10:28, David Colburn wrote:
> 
>                                 That's very helpful, thanks!
> 
>                                 /var is mounted "ffs rw,nodev,nosuid, 1 2"
> 
>                                 /var/www isn't specifically mentioned.
> 
>                                 Would it be affected by the /var mount 
> settings?
> 
>                                 Thanks again.
> 
>                                 On 8/18/24 07:50, Stuart Henderson wrote:
> 
>                                     On 2024-08-15, David Colburn 
> <q...@kd4e.com> wrote:
> 
>                                         This is a multi-part message in MIME 
> format.
>                                         --------------SIjdwSa43FawypA6wB8kzt18
>                                         Content-Type: text/plain; 
> charset=UTF-8; format=flowed
>                                         Content-Transfer-Encoding: 7bit
> 
>                                         Dell OptiPlex 7050
> 
>                                         OpenBSD 7.5
> 
>                                         php 8.3.10
> 
>                                         lighttpd-1.4.74-mysql
> 
>                                         I'm using root.
> 
>                                         "*rcctl -df start lighttpd*" errors
> 
>                                         "/daemonized server failed to start; 
> check error log for
>                                         details doing
>                                         _rc_rm_runfile (failed)/"
> 
>                                         error.log says:
> 
>                                         "...
>                                         
> (/usr/obj/ports/lighttpd-1.4.74-mysql/lighttpd-1.4.74/src/configfile.c.1981)
> 
> 
>                                         opening /dev/null failed: No such 
> file or directory"
> 
>                                         "...
>                                         
> (/usr/obj/ports/lighttpd-1.4.74-mysql/lighttpd-1.4.74/src/configfile.c.1935)
> 
> 
>                                         Opening errorlog failed: No such file 
> or directory"
> 
>                                         According to this:
> 
>                                         
> https://www.reddit.com/r/openbsd/comments/nygjdm/lighttpd_cant_find_devnull_on_69/
> 
> 
> 
>                                         there's supposed to be a directory 
> here: /usr/sbin/chroot/ but
>                                         chroot is
>                                         actually a file.
> 
>                                         I'm not sure how to proceed to fix 
> the dev/null problem ...
> 
>                                     Assuming /var/www/dev does not already 
> exist, this should do it:
> 
>                                     # mkdir /var/www/dev
>                                     # cd /var/www/dev
>                                     # sh /dev/MAKEDEV std
>                                     # rm !(null)
> 
>                                     If it already exists then you may need to 
> adapt the rm command to
>                                     preserve existing entries, or use 
> mknod(8) manually to just create
>                                     the "null" node.
> 
>                                     You'll also need to make sure that 
> /var/www is _not_ mounted with
>                                     the "nodev" option (/etc/fstab).
> 
>                                     If this is a hard requirement for 
> lighttpd then the port could
>                                     probably do with explaining it somewhere 
> .. (maintainer cc'd)
> 
> 
> 
> 
> 

Reply via email to