Difference between revisions of "Boa"

From ArmadeusWiki
Jump to: navigation, search
m (Install)
m (Install)
Line 3: Line 3:
 
[[Image:boa.png|right]]
 
[[Image:boa.png|right]]
 
<br />
 
<br />
==Install==
+
==Installation==
 
* Launch Buildroot's configuration:
 
* Launch Buildroot's configuration:
 
  $ make menuconfig
 
  $ make menuconfig

Revision as of 10:16, 28 January 2009

How install and configure the Boa Web server on your Armadeus board

Boa.png


Installation

  • Launch Buildroot's configuration:
$ make menuconfig
  • Select: Package Selection for the Target -> Networking -> boa
  • Save the configuration
  • Then build the binaries and the default filesystem. This will be usefull later to perform the configuration :
$ make

Configure

Generalities

To apply a permanent configuration, be sure to not change anything on the board filesystem.
That would be erased the next time you flash the fs. Instead, do all changes on the filesystem located on the host, i.e. on buildroot/project_build_armv4t/apf9328/root/

The boa configuration file is located in /etc/boa/boa.conf on the card
This means that to permanently change the configuration, you need to edit the file buildroot/project_build_armv4t/apf9328/root/etc/boa/boa.conf on the host

Create a Dummy page

By default, DocumentRoot is set to /var/www, so let's add a dummy file here to test our configuration :

$ mkdir buildroot/project_build_armv4t/apf9328/root/var/www
$ vi buildroot/project_build_armv4t/apf9328/root/var/www/index.html

And fill the file with:

 <html>
  <head>
   <title> Welcome on the Armadeus Board </title>
  </head>
  <body>
    <nowiki><h1> Welcome on the Armadeus Board </h1></nowiki>
  </body>
 </html>

Enable hostname resolution

Boa has to be able to resolve the hostname to work, so let's do :

$ echo "127.0.0.1 `cat buildroot/project_build_armv4t/apf9328/root/etc/hostname`" >> buildroot/project_build_armv4t/apf9328/root/etc/hosts

Create the access log directory

By default, boa logs will be stored in /var/log/boa/ on the card. If you did not change this setting, you will need to perform the following :

$ls -l buildroot/project_build_armv4t/apf9328/root/var/log/

If this is a link to /tmp, then

$ rm -f buildroot/project_build_armv4t/apf9328/root/var/log/ && mkdir buildroot/project_build_armv4t/apf9328/root/var/log/

Then, create the boa directory :

$ mkdir buildroot/project_build_armv4t/apf9328/root/var/log/boa

Why shoud I delete the symbolink link ?
This is because during the filesystem creation, mkfs.jffs2 will keep the link from /var/log to /tmp on the board. Thus, once on the board, you will have :

# ls -l /var/log
lrwxrwxrwx    1 root     root            4 Apr 15  2007 /var/log -> /tmp

With a such behavior, even if you fill the directory buildroot/project_build_armv4t/apf9328/root/var/log/ on your host (which actually fill /tmp on your host), nothing will be saved once the filesystem will be flashed on your board.

Test the result

Create the final rootfs :

$ make

Then update the rootfs on your board.

And start boa

$ boa


To access to your web page, use a browser:

http://<your IP Address>/

You sould see the page !
If not, check the file /var/log/boa/error_log on your board




Working with cgi

  • First, check the boa.conf file. Once more, you should use the one located on your host before changing anything.
$ vi buildroot/project_build_armv4t/apf9328/root/etc/boa/boa.conf
  • Be sure to have an uncommented line like this :
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  • Now; let's write a dummy cgi :
$ mkdir buildroot/project_build_armv4t/apf9328/root/usr/lib/cgi-bin
$ vi buildroot/project_build_armv4t/apf9328/root/usr/lib/cgi-bin/get_ipconfig.sh
  • And add the following :
 #!/bin/sh
 echo -e "Content-type: text/html\r\n\r\n";
 echo -e `/sbin/ifconfig  eth0 | grep 'inet addr'`;

The script have to be executable:

$ chmod a+x buildroot/project_build_armv4t/apf9328/root/usr/lib/cgi-bin/get_ipconfig.sh
  • Then change your index.html page to add a link to the cgi:
$ vi buildroot/project_build_armv4t/apf9328/root/var/www/index.html
 <html>
  <head>
   <title> Welcome on the Armadeus Board </title>
  </head>
  <body>
    <nowiki><h1> Welcome on the Armadeus Board </h1></nowiki>
    <nowiki><br /></nowiki>
    <nowiki><br /></nowiki>
    <nowiki><a href=http://<Your IP Address>/cgi-bin/get_ipconfig.sh> Get the board ip config </a></nowiki>
    <nowiki><br /></nowiki>
    </body>
 </html>
  • Create the new rootfs :
$ make

You can now access to the new web page and click on the cgi link !

Links