Enterprise Software

Apache runs on NetWare too

What do you do if you want to switch from IIS to Apache but don't want to learn Linux or run Windows? If you're running NetWare, you can download and run Apache right on your server. John Sheesley gives you the details.

The most recent versions of NetWare have shipped with a Web server. In previous Daily Drill Downs, we’ve looked at the NetWare Enterprise Web Server and the Netscape Enterprise Server For NetWare. In those articles, I showed you how NetWare can serve as a great alternative to Windows and IIS. However, many network administrators don’t consider these versions to be viable alternatives and instead choose to deploy something like Apache on a Linux server.

So what’s the best course of action if you want an alternative to IIS and you don't run Linux? If you’re a NetWare administrator, you can get a stronger Web server than the ones offered by Novell by downloading and installing Apache on your NetWare 5.x and 6.0 servers. In this Daily Drill Down, I'll tell you a bit more about Apache and how to get it running with NetWare.

Apache? On NetWare?
If you’ve never heard of Apache, it’s an open source Web server produced by the Apache Software Foundation. Although the words "open source" have a tendency to strike fear into the hearts of some network administrators, Apache is currently the king of the hill when it comes to Web site deployment. According to the most recent Netcraft Web Server Survey, Apache maintains a 61 percent market share for active sites on the Internet.

Apache is usually associated with the other famous open source program, Linux. However, the beauty of open source means that Apache can be and has been recompiled for many other platforms, including NetWare. Some OSs on which you can run Apache include:
  • AIX
  • BeOS
  • Linux
  • OS/2
  • MacOS X
  • FreeBSD
  • Windows

Apache has been available for NetWare since version 1.3.14. With NetWare 6, Novell has included a version of Apache as its default Web server, replacing the older Netscape-based Web servers. However, you’re not limited to running Apache on NetWare 6. You can also run Apache on NetWare 5.x servers.

You may wonder why you should run Apache on NetWare when it’s available for so many other platforms. First, deploying Apache on your NetWare server allows you, the experienced NetWare administrator, to take advantage of the most popular open source Web server without having to learn a new OS. Second, assuming you’re familiar with one of Apache’s supported platforms, such as Windows, running on NetWare gives you the added advantage of avoiding all of the security holes in the Windows OS that hackers exploit.

Additionally, from a security perspective, NetWare’s version of Apache includes SSL support in the download; you don’t need to download or install additional modules to gain SSL support. Finally, NetWare’s version of Apache supports NDS. This means that you can use NDS to provide the directory backbone for authenticating access to your Web server rather than relying on LDAP or another directory service. You can centrally maintain all of your users in one place and still give them the access they need to Web services.

The current version of Apache as of the time of this article is 1.3.22. This is a newer version than the one that ships with NetWare 6. Some of the NetWare specific fixes in this version include the following:
  • The enabling of long file names in htpasswd and htdigest
  • Increased protection against ill-behaved modules
  • Better handling of abnormal shutdowns
  • Better recognition of special filenames such as proxy:http://

Obtaining and installing Apache for NetWare
You can download the latest version of Apache for NetWare directly from Apache’s NetWare Binaries Web site. On the site, you’ll find two versions of the NetWare binaries: a uniprocessor version (apache_1.3.22_netware-up.zip) and a multiprocessor version (apache_1.3.22_netware-mp.zip). You can run either version on your NetWare server regardless of the number of processors. The multiprocessor version is optimized for NetWare 6 running multiple processors. You won’t see any improvements or any problems if you run it on a server with a single processor or on NetWare 5.x.

Select the version you want to download and save it to a temporary directory on your administrative workstation. The file is only 1.4 MB long, so it will download quickly. But after you’ve downloaded the file, don’t extract it right away. You’ll first need to prepare your server and network to run Apache.

Remember that Apache for NetWare is designed only for NetWare 5.x and NetWare 6 servers. If you’re still running NetWare 3.x, 4.x, or IntraNetWare, you’ll need to stick with Web servers specific to these platforms. Also, make sure you’ve applied the latest support packs on your NetWare servers. Apache requires Support Pack 5 or later for NetWare 5 and Support Pack 1 or later for NetWare 5.1. The current support pack levels are Support Pack 6a and Support Pack 3, respectively. You can download the latest support packs from Novell’s Minimum Patch List.

Next, make sure you’ve configured your server to support TCP/IP. Fortunately, NetWare 5.x and 6 support TCP/IP well, and you’ve probably already installed them. You can check to see if it's installed and if necessary enable TCP/IP using the Inetcfg utility on your server.

If you’ve already installed a Web server on your NetWare 5.x servers other than Apache, you’ll need to uninstall it. You don’t necessarily have to delete the directories that contain the programs, but you should at least unload the Web server NLMs. For example, to unload the Novell Enterprise Web Server running on a NetWare 5.1 server, go to the server’s console prompt and type nvxnewdn. You should also edit the AUTOEXEC.NCF file on your server to remove any references to the startup routines for your Web server.

Since you'll install Apache from your administrative workstation, not from the server itself, make sure you’ve logged on with a user ID with full Admin rights on the server.

You’re now ready to install Apache. Unlike versions of Apache for other OSs, there’s no integrated installation routine for the NetWare version. You must install it manually. However, you shouldn't worry; you'll only need to extract the files and edit a few configuration files to get Apache working properly.

To do so, extract the .zip file you downloaded to your server’s SYS volume. If you’re running WinZip, don’t worry about creating any subdirectories first; just extract it to the root of the SYS volume. WinZip should automatically create the appropriate subdirectories.

WinZip will then extract 511 files and 15 subdirectories into a directory called Apache on your server’s SYS folder. In total, all of the files will only consume 4 MB of disk space.

If you want to host Apache from a volume other than SYS, you can do so simply by extracting the files to that volume. However, by default, Apache’s configuration files are set to point to the SYS volume. To make Apache work properly, you’ll have to customize the HTTPD.CONF file. This isn’t a big deal because you must edit HTTPD.CONF anyway to enter the appropriate TCP/IP address for your server.

Modifying HTTPD.CONF
After you extract Apache’s files, you’ll need to customize HTTPD.CONF. You can do so from your administrative workstation using any text editor. You’ll find the HTTPD.CONF file in the /Apache/Conf directory.

When you open HTTPD.CONF, you’ll find it heavily commented. This is a common practice in the open source world. The commenting allows you to understand the purpose of the file and what each line of the file does. Be very careful in modifying this file. If you make a mistake, you can cause errors that will cause Apache to not load on your system.

Scroll down the file until you see the ServerRoot line. This line contains the name of the volume and directory from which you want Apache to load. You’ll notice the default value for this line is
ServerRoot "sys:/apache"

If you’ve extracted the Apache files to a different volume or want Apache to load from a different directory name, you must make the changes to this line. But only change the appropriate values inside of the quotes, and make sure you leave the quotes when you've finished.

Next, scroll down until you see the ServerAdmin line. On this line, you’ll see the default value of
ServerAdmin someone@somewhere.com

Enter your Internet e-mail address in place of the e-mail address listed. Simply entering your GroupWise or Exchange mailbox name isn’t good enough. It has to be a standard Internet address.

Continue to scroll until you see the ServerName line. This is a very important line; it's where you specify the DNS host name or TCP/IP address of your server. The default line reads

In place of the dummy 123 address, enter the DNS host name or TCP/IP address of your server. You cannot enter the NDS name of your server. If you don’t have a registered DNS address for your server, you must use the server’s TCP/IP address.

Scroll further until you see the DocumentRoot line. This line tells Apache where to find HTML files for your server. The default value is
DocumentRoot "sys:/apache/htdocs"

Like the ServerRoot line above, only change the values within the quotes. You can make this any volume/directory combination you like. Just make sure you’ve created the directory in advance. You should also make sure there’s an INDEX.HTM file there to serve a default Web page.

Many other lines in HTTPD.CONF point to the default SYS directory. If you’ve installed Apache onto a different NetWare volume, a good rule of thumb is to do a search and replace using your text editor to replace references to SYS with the name of your installed volume.

If you’ve used Apache on a Linux workstation before, you’ll be comfortable with configuration files on NetWare. They’re all the same. However, there are a few different directives for Apache on NetWare that you won’t find for other Apache versions, such as the following:
  • MaxRequestsPerChild—This directive controls how many requests a process will serve before exiting. Because NetWare is multithreaded, a process serves all requests at once. Because of NetWare architecture, Apache’s documentation recommends that a very high number be used if you must make any changes. The recommended default, MaxRequestsPerChild 0, prevents the process from exiting.
  • ThreadsPerChild—This directive tells the server how many threads it should use. It represents the maximum number of connections the server can handle at once. The recommended default is ThreadsPerChild 50. You’ll want to change this if your Web site receives a lot of hits and performs slowly.
  • ThreadStackSize—This directive tells the server what size stack to use for the individual threads. Apache’s documentation recommends keeping the default value of ThreadStackSize 65536. You can increase or decrease this value depending on the type of content being delivered and the overall performance of your Web site and server.

When you’re done editing the file, save it and exit your text editor. You’re then ready to start Apache and view the default Web page.

Running Apache
Running Apache is very simple. Go to the console prompt on your server and type load sys:/apache/apache. You’ll notice a few NLMs load, and then a status screen will appear on your server showing the version of Apache you’re running and the port number on which your server is listening. Open a Web browser and enter the address of your server. You should quickly see the default Apache Web page appear. To go back to the console prompt on your server, just press [Alt][Esc].

If you’re a NetWare administrator who wants to run a Web site, but you are concerned about security holes in IIS and don’t want to learn a new OS like Linux, you may feel your options are limited. But if you run NetWare 5.x or even 6, you can run the latest version of Apache from the comfort of your server. By downloading and installing Apache on your server, you can quickly get up and running in no time at all.

Editor's Picks