Carambola1 (discontinued) is based on a network card chip from Ralink the RT3050F, Wi-Fi enabled Linux module, featuring the lowest power consumption in the industry that is pretty fast at network-things and can even run a whole PHP-stack webserver (MySQL won’t work because it needs massive amounts of RAM).

it has nice network performance… but no grafic card… serial is enough anyway 😀

HOW TO SETUP A FASTCGI LAMP STACK on CARAMBOLA Lighttpd PHP5, the only thing missing: Database… but i think sqlite should work.

download pdf here: HOW TO SETUP A FASTCGI LAMP STACK on CARAMBOLA Lighttpd PHP5.pdf

this is copy paste from the pdf:

very very ugly formatting… sry
→ http.lighttpd is a lightweight and very flexible web server with lots of additional modules available.


i compiled a image

with lighttpd+php5
with usb-mass storage support vfat, ext3
with luci

you don’t need to do the next step with my firmware:

download:, sysupgrade binary inside v2, also check md5 sums!


because it’s all pre compiled


[cc lang=”bash” escaped=”true” width=”546″ line_numbers=”off”]

opkg update

opkg install lighttpd lighttpd-mod-cgi

Symbol: PACKAGE_lighttpd-mod-cgi [=n]                                                                                                                                                               │
│ Prompt: lighttpd-mod-cgi………………………………………. CGI module                                                                                                                   │
│   Defined at tmp/                                                                                                                                                           │
│   Depends on: PACKAGE_lighttpd [=n]                                                                                                                                                                 │
│   Location:                                                                                                                                                                                         │
│     -> Network                                                                                                                                                                                      │
│       -> Web Servers/Proxies                                                                                                                                                                        │
│         -> lighttpd……………………… A flexible and lightweight web server (PACKAGE_lighttpd [=n])                                                                                        │
│   Selects: PACKAGE_libc [=y] && PACKAGE_librt [=y] && PACKAGE_libpthread [=y]



[cc lang=”bash” escaped=”true” width=”546″ line_numbers=”off”]

vim /etc/lighttpd/lighttpd.conf

# lighttpd configuration file
## modules to load
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules = (  <- also remove # here!!!
#       "mod_status",
#       "mod_setenv",
#       "mod_proxy",
#       "mod_simple_vhost",
#       "mod_cgi",
#       "mod_ssi",
#       "mod_usertrack",
#       "mod_expire",
#       "mod_webdav"
) <- also remove # here!!!


search for: fastcgi module

[cc lang=”bash” escaped=”true” width=”546″ line_numbers=”off”]

#### fastcgi module

## read fastcgi.txt for more info
fastcgi.server = (
".php" => (
"localhost" => (
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi"


search for: server.document-root

server.document-root = "/mnt/sda1/"

can be helpful:

server.errorlog = "/mnt/sda1/lighttpd/error.log"

operate lighttpd on port 81:

server.port = 81

## virtual directory listings
server.dir-listing = "enable"

now open

vim /etc/php.ini

open_basedir = /mnt/sda1/
doc_root = "/mnt/sda1/"

try to start server
/etc/init.d/lighttpd start
check if server is running


root@OpenWrt:~# ps uax|grep light
1929 root      3788 S    /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
1941 root       912 R    grep light


root@OpenWrt:~# ps uax|grep light
1941 root       912 R    grep light

check what went wrong:

vim /mnt/sda1/lighttpd/error.log

if no errors, setup autostart.
Start the server manually and also at boot by enabling the init script

vim /etc/rc.local
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

/etc/init.d/lighttpd start;

exit 0

other possible commands:

/etc/init.d/lighttpd start
/etc/init.d/lighttpd stop
/etc/init.d/lighttpd enable (did not do much, better put it into /etc/rc.local)
/etc/init.d/lighttpd restart

Syntax: /etc/init.d/lighttpd [command]

Available commands:
start    Start the service
stop    Stop the service
restart    Restart the service
reload    Reload configuration files (or restart if that fails)
enable    Enable service autostart
disable    Disable service autostart

→ http.nginx is nice as well.
→ http.apache is nice as well.
Testing the web server
Create a little test web page, e.g.
vim /mnt/sda1/index.html

vim /mnt/sda1/info.php
check what ip your carambola has

root@OpenWrt:~# ifconfig|grep 192
inet addr:  Bcast:  Mask:
inet addr:  Bcast:  Mask:
now open your browser and try this:

-> if everything works, you are finished! 🙂 (the rest is just some documentation that i copy pasted)

Ich bekomme beim Aufruf der Website die Fehlermeldung “No input file specified.”
Bitte setze die open_basedir Anweisung in der php.ini auf den richtigen Zielordner.
vim /etc/php.ini


Please issue

[cc lang=”bash” escaped=”true” width=”546″ line_numbers=”off”]

opkg list php*


to see what opkg-packages are available.



[cc lang=”bash” escaped=”true” width=”546″ line_numbers=”off”]

opkg update

opkg install php5 php5-cgi



For configuration please see the wiki-page for the particular web server: http.overview, e.g.
•    Configuring Apache and PHP5
•    Configuring Lighttpd and PHP5
•    Configuring Hiawatha and PHP5
•    Configuring Nginx and PHP5
•    Configuring uhttpd and PHP5
•    or see Configuring PHP
If You encounter PHP errors, like undefined functions, You need take a look into the php.ini file. Search for the appropriate extension line(s), and uncomment them (remove the ; sign). If the problem persists, You need probably install the appropriate extension too. If PHP run out of memory, You can increase the amount of memory which the script can consume:
memory_limit = 8M       ; Maximum amount of memory a script may consume.
post_max_size = 8M
Do not specify more memory than is available, and remember that other processes need memory too. Please note, some things will probably never run on the router. Especially under Backfire 10.03. PHP compiled without the SimpleXML extension, and libxml is missing too. If they are necessary, You need to recompile Your own PHP. Without this extensions, some software, like Joomla 1.6 will never run. If you do manage to achieve to run, serious software solutions will run extremely slow, and will consume too much memory.

Lighttpd is a highly-configurable, lightweight web server. See lighttpd and There are many modules available for lighttpd that can be installed and configured. For more information on the modules see
opkg list lighttpd*
to see what packages are available.


opkg update
opkg install lighttpd

Edit /etc/lighttpd/lighttpd.conf
Basic Configuration
To get a basic server running make the following changes to /etc/lighttpd/lighttpd.conf:
Server Root Directory
server.document-root = “/www1/”
where www1 is the root directory of the web server.
Enable Logging
Uncomment (remove #) the following line so errors are written to the log:
server.errorlog = “/var/log/lighttpd/error.log”
Set Server Port
Uncomment the following line:
server.port = 8000
where 8000 is the port you want your webserver on.
Set Event Handler
I (jason955)had to set the event handler explicitly on my system, otherwise I would get the following error:
(server.c.1105) fdevent_init failed
To fix this problem I added the following line to my config file:
server.event-handler = “poll”
Info from
Advanced Configuration

Configure as a full LAMP stack
•    Set up a LAMP stack on OpenWrt
Configuring Lighttpd and PHP5
1.    First, follow php to install a version of PHP
2.    Second, follow lighttpd1 to configure lighttpd
Start on boot
To enable/disable start on boot:
/etc/init.d/lighttpd enable this simply creates a symlink: /etc/rc.d/S90umurmur → /etc/init.d/umurmur
/etc/init.d/lighttpd disable this removes the symlink again
To start the server one time: /etc/init.d/lighttpd start To stop the server again: /etc/init.d/lighttpd stop
To allow users on the WAN to access the server, make sure to configure the firewall in /etc/config/firewall and port forwarding settings.
config redirect
option src              wan
option src_dport        80
option dest             lan
option dest_ip
option dest_port        8000
option proto            tcp

config rule
option src              wan
option dest_port        8000
option target           ACCEPT
option proto            tcp
Restart the firewall with the following command: /etc/init.d/firewall restart
TODO: directory, etc.

Back to top
doc/howto/http.lighttpd.txt · Last modified: 2012/03/14 23:45 by pauldriver

In /etc/lighttpd/lighttpd.conf change
Right after
#cgi.assign = ( “.pl”  => “/usr/bin/perl”, “.cgi” => “/usr/bin/perl” )
cgi.assign = ( “.php”  => “/usr/bin/php-cgi” )
index-file.names = ( “index.html”, “default.html”, “index.htm”, “default.htm” )
index-file.names = ( “index.html”, “default.html”, “index.htm”, “default.htm”, “index.php” )
And in /etc/php.ini change
doc_root = “/www”
doc_root = “/srv/www”

ps: If you are making some crazy URL rewriting in lighttpd and getting a ‘No input file specified.’ error in the browser, remove this configuration (as per lighttpd FAQ)

Restart lighttpd

/etc/init.d/lighttpd restart


liked this article?

  • only together we can create a truly free world
  • plz support dwaves to keep it up & running!
  • (yes the info on the internet is (mostly) free but beer is still not free (still have to work on that))
  • really really hate advertisement
  • contribute: whenever a solution was found, blog about it for others to find!
  • talk about, recommend & link to this blog and articles
  • thanks to all who contribute!