Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

What are the current options for Web Server on unRAID? can we do LAMP?

Featured Replies

Hi there,

 

Is unRAID-Web the only option for a web server on our unRAID boxes?  I can't figure out how to get the wizard that BubbaQ created to work.  It fails everytime I save configuration. So I was wondering if there is another way to get a LAMP type stack installed our rigs.

 

Cheers,

Shifty

Which version of unRAID are you running and which wizard are you talking about?

  • Author

I am running 4.5.6 and the wizard i'm talking about is this one:

http://cl.ly/fd43bae96521cec52847

 

 

After I set the root directory and the port I want (8081 in this case), I get the option to restart the server (this: http://cl.ly/01aca8e6a9f10c04bd7c).  When I do that and try to visit http://192.168.1.111:8081 I get this error:

 

http://cl.ly/20e36aff8c69b20eff55

 

And then, back to the main unRAID-Web interface, the whole thing seems broken, when I click on main unMENU option from the sidebar for example I get a "500 - Internal Server Error"

 

And then finally even rebooting the server does not bring up any web interface at the port I configured.  I tried running lighttpd manually by entering:

lighttpd -f /boot/custom/lighttpd/lighttpd.conf.include

but all I get is this:

 

http://cl.ly/5e39fa5c58f9ba398a21

 

any thoughts?  Thanks man!

 

 

 

  • Author

ah, forgot, and hte only way to get unRAID-Web back running is to run your install command again:

 

wget -O /tmp/unweb.tgz http://www.tcpatools.com/bubba/unraidweb-0.1.05-i386-bubba.tgz ;  installpkg /tmp/unweb.tgz

If the root is not set properly, lighttpd will not load.

 

Fix your root in the config.

  • Author

sorry, but what do you mean fix your root in the config?

sorry, but what do you mean fix your root in the config?

 

The webserver root... the directory you want your webserver to point to for your web documents.

 

It is the field promoted for by "Directory for the web server files".

  • Author

yeah, so I inputed this:

 

/mnt/user/LS_Storage/www/

 

is that not kosher?

You tell us. It's your system with your shares and directories.

 

 

/mnt/user/LS_Storage/www/

 

Does that directory exist?

  • Author

yep the directory exists, i created it before starting the process

post a copy of the

/boot/custom/lighttpd/lighttpd.conf.include

file.

  • Author

interesting, after running the configuration, that file is completely empty.  just has a comment at the top that was there beforehand.

Sounds like there is a permissions problem or something else preventing the wizard from writing to it.

 

 

  • Author

that sucks.  I just did chmod 777 -R on the entire /boot/custom/ directory to see if it was that and still nothing.

 

Is there another way to setup lighttpd that is not using the wizard maybe?

Post the contents of

 

/boot/custom/lighttpd/lighttpd.conf

  • Author

here ya go

 

# lighttpd configuration file
#
# use it as a base for lighttpd 1.0.0 and above
#
# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $


############ 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_cml",
#                               "mod_trigger_b4_dl",
                               "mod_auth",
#                               "mod_status",
#                               "mod_setenv",
                               "mod_fastcgi",
#                               "mod_proxy",
#                               "mod_simple_vhost",
#                               "mod_evhost",
#                               "mod_userdir",
                               "mod_cgi",
                               "mod_scgi",
#                               "mod_compress",
                              "mod_ssi",
#                               "mod_usertrack",
#                               "mod_expire",
#                               "mod_secdownload",
#                               "mod_rrdtool",
                                "mod_accesslog" )

## where to send error-messages to
server.errorlog             = "/var/log/lighttpd/error.log"

# files to check for if .../ is requested
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm" )

## set the event-handler (read the performance section in the manual)
# server.event-handler = "freebsd-kqueue" # needed on OS X

# 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"

#### accesslog module
#accesslog.filename          = "/var/log/lighttpd/access.log"

## 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 #######



## bind to localhost (default: all interfaces)
#server.bind                = "127.0.0.1"

## 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"

## enable debugging
#debug.log-request-header   = "enable"
#debug.log-response-header  = "enable"
#debug.log-request-handling = "enable"
#debug.log-file-not-found   = "enable"

### only root can use these options
#
# chroot() to directory (default: no chroot() )
#server.chroot              = "/"

## change uid to <uid> (default: don't care)
#server.username            = "lighttpd"

## change uid to <uid> (default: don't care)
#server.groupname           = "lighttpd"

#### userdir module
#userdir.path = "public_html"

#### 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/bin/php-cgi"
                                 )
                               )
                            )

#### CGI module
cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                               ".e" => "/usr/bin/bash",
                               ".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 2 minutes")

#### ssi
ssi.extension              = ( ".html" )

#### rrdtool
#rrdtool.binary             = "/usr/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

## for mod_cml
## don't forget to add index.cml to server.indexfiles
# cml.extension               = ".cml"
# cml.memcache-hosts          = ( "127.0.0.1:11211" )

#### 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_shell
#include_shell "echo var.a=1"
## the above is same as:
#var.a=1  

scgi.server = (
"/RPC2" => # RT_DIR
  ( "127.0.0.1" =>
   (
    "host" => "127.0.0.1", # Ip where rtorrent is listening
    "port" => 5000, # Port specified in .rtorrent.rc
    "check-local" => "disable"
   )
  )
)

# These parameters set up the default server for the setup wizard.
# Don't cange these.
server.document-root = "/boot/custom/lighttpd/"
server.port = 89
accesslog.filename = "/var/log/lighttpd/portal.log"

#$SERVER["socket"] == "0.0.0.0:89" {
#dir-listing.activate       = "enable"



#### include file #########################################
# Put any of your custom configuration parameters in the
# include file below so updates to this main config file
# will not overwrite your customizations
include "lighttpd.conf.include"

Copy this file:

 

/boot/config/lighttpd/lighttpd.conf.include

 

to

 

/boot/custom/lighttpd/lighttpd.conf.include

  • Author

cool, and then what should I do?  cheers

run the command to start the webserver :

 

/boot/custom/lighttpd/lighttpdctrl start

  • Author

hmmm, got this when i ran the start command.  server still not working.

root@LemaServer:/mnt/user/LS_Storage/LemaWeb# /boot/custom/lighttpd/lighttpdctrl start
Starting Lighttpd
root@LemaServer:/mnt/user/LS_Storage/LemaWeb# 2010-10-27 19:56:23: (network.c.300) can't bind to port:  89 Address already in use 
lighttpd-angel.c.135: child (pid=4637) exited normally with exitcode: 255

 

seems to be crashing?

The previous instance is still running kill it

 

killalll lighttpd

 

Then restart it.

  • Author

oh awesome! that worked! 

 

thanks for all your help, that's VERY helpful

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.