Difference between revisions of "Boa"

From ArmadeusWiki
Jump to: navigation, search
m (Configure)
m (Generalities)
Line 15: Line 15:
 
=== Generalities ===
 
=== Generalities ===
  
To apply a permanent configuration, be sure to not change anything on the board filesystem. <br>
+
To apply a permanent configuration, be sure to not change anything on the board filesystem: that would be erased the next time you reflash the rootfs. <br>
That would be erased the next time you reflash the rootfs. Instead, do all changes on the filesystem located on the Host, i.e. on ''buildroot/project_build_armv4t/apf9328/root/'' for the APF9328 or ''buildroot/project_build_armv5te/apf27/root/'' for the [[APF27]].
+
Instead, do all changes on the filesystem located on the Host, i.e. on ''buildroot/project_build_armv4t/apf9328/root/'' for the APF9328 or ''buildroot/project_build_armv5te/apf27/root/'' for the [[APF27]].
  
The Boa configuration file is located in ''/etc/boa/boa.conf'' on the board.<br>
+
The Boa configuration file is located in ''/etc/boa/boa.conf'' on the board; this means that to permanently change the configuration, you need to edit the file ''buildroot/project_build_armvXX/apfXX/root/etc/boa/boa.conf'' '''on the Host'''.<br>
This means that to permanently change the configuration, you need to edit the file ''buildroot/project_build_armvXX/apfXX/root/etc/boa/boa.conf'' '''on the host'''
+
 
 +
As the root directory name is dependent of the target, there is a way to find it automatically:
 +
$ make shell_env && source armadeus_env.sh
 +
Then the directory can be accessed with ''$ARMADEUS_ROOTFS_DIR''.
  
 
=== Create a Dummy page ===
 
=== Create a Dummy page ===

Revision as of 12:08, 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

Configuration

Generalities

To apply a permanent configuration, be sure to not change anything on the board filesystem: that would be erased the next time you reflash the rootfs.
Instead, do all changes on the filesystem located on the Host, i.e. on buildroot/project_build_armv4t/apf9328/root/ for the APF9328 or buildroot/project_build_armv5te/apf27/root/ for the APF27.

The Boa configuration file is located in /etc/boa/boa.conf on the board; this means that to permanently change the configuration, you need to edit the file buildroot/project_build_armvXX/apfXX/root/etc/boa/boa.conf on the Host.

As the root directory name is dependent of the target, there is a way to find it automatically:

$ make shell_env && source armadeus_env.sh

Then the directory can be accessed with $ARMADEUS_ROOTFS_DIR.

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