Linux developers have long enjoyed powerful Open Source web development tools. With the release of its AMP Developer Suite, Novell will finally deliver full support for Apache, MySQL, and PHP (or Perl) and show the Open Source community it is serious about its commitment to open source.
Linux developers have long enjoyed powerful Open Source web development tools. With the AMP Developer Suite -- Apache, MySQL, and PHP (or Perl) -- Novell will finally deliver full support for these popular tools and show the Open Source community it is serious about its commitment to open source. Although the final versions are expected to be included in the "Nakoma" distribution, the upcoming new release of Netware, there is no need to wait until then to try AMP; the beta versions are available now for Netware 6 Service Pack 2 in the separate "Leading Edge" package.
Why would you be interested in AMP? If you are already a Novell shop and you need to develop powerful network and e-business tools, then you'll likely be interested in some of the unique AMP features like:
- With Nakoma, Apache Farm administration can be centralized for one server, a group of servers, or all servers using eDirectory.
- Of particular use to MySQL application vendors, Nakoma will include a commercial license of MySQL.
- Nakoma will include PHPMyAdmin for MySQL management.
- Nakoma will likely include disk/hardware features such as MySQL cluster failover, dramatically improved performance, and the ability to implement cluster architecture to eliminate single points of failure.
- PHP support for third party PHP and Perl scripts including PHProjekt, PHPNuke, XOOPS, and Incyte Project Manager.
- Sample scripts in the Perl distribution to perform Netware volume and file operations.
Now that we've covered some of its great new features, let's delve into some details of the AMP beta release so you can see the benefits for yourself.
Novell Embraces Open Source
Open Source is serious business at Novell. The chair of the recently established Open Source Review Board is a key member of Novell's corporate architecture and strategy team. Four major factors are behind Novell embracing Open Source development tools:
- Open software's popularity -- How popular is this software? There are 21 million Apache web server users (63% market share), 4 million MySQL users, nearly 8 million PHP users (growing by 6.5% each month), and nearly 4 million Perl users -- numbers that are going to attract any company's attention!
- The Novell user community -- The Netware community has aggressively pushed the company for the best of both worlds -- easy-to-use Open Source software on Novell's well-tested, robust, scalable, and secure network platform.
- Prevention of a migration of Novell users to Linux -- Linux, where these tools already exist, is becoming an increasingly attractive alternative platform, and the low/free cost is a big draw too!
- Establish credible competition for Microsoft's .Net offering
Although the Review Board's charter is to establish bilateral communication between the Open Source community and Novell, the board's current focus is more on "inbound" technology and licensing concerns. This means that Novell is looking for the best Open Source technology to bring into the Novell world. To date, this includes the AMP software plus LDAP developer libraries, PostgreSQL (a relational database rewritten for Netware) and Tomcat (a servlet/JavaServer Pages container). True to the Open Source community spirit, any changes made to integrate these products in the Netware environment are also fed back to the Open Source community.
Novell's "outbound" Open Source strategy for internal technology is still in process, but the company is showing support by creating a website specifically for developers to share code, news, etc. The site is currently in beta and is scheduled to go public in early February.
Page 2: NAMP 101
We will now discuss some Novell extensions and standard features for each of the four components -- Apache, MySQL, PHP, and Perl -- in the AMP suite.
Apache HTTP (Web) Server, based on the old NCSA Web Server, has been available since 1995. It is overflowing with features "out of the box" such as built-in CGI, Perl, PHP, Java Servlets, Server-Side Includes (SSI), Multi-homed support, customized logging/error messages, and much more. Apache's most popular features include:
- Highly extensible and configurable web server -- Using the Apache API, you can create or use third-party modules to provide additional functionality. Configuration is handled by changing values in various text files. The main file is httpd.conf. These files also have numerous command line arguments that can be set.
- Multi-platform support/portability -- This includes various flavors of UNIX, Windows, Mac OS X, and others.
- Robust and scalable server performance -- This includes Multi-process Modules (MPM) that are operating system-specific.
- Strong security -- SSL support, granular file access protection (i.e. host name, IP address, group), and more.
Netware-specific Apache features
- Apache Farm configuration administration can be done using eDirectory
- LDAP and caching modules
- Two sample applications, PHPMyAdmin, a GUI-based MYSQL database and server manager, and John's LDAPWeb, an LDAP tree browser compatible with eDirectory
MySQL was developed by TcX in 1996. It has become a popular multi-threaded relational database and management system that offers:
- Robust and scalable performance -- Support for many simultaneous connections.
- Comprehensive database functionality -- Support for commit, rollback, crash-recovery, row-level locking, database replication, query caching and more.
- Very strong security -- SSL encryption, ability to limit access by columns/rows, ability to limit host privileges, etc.
- Multiple platform support/portability -- This includes various flavors of UNIX, Windows, and Mac OS X, as well as support for ODBC, C++, Perl, JDBC, ANSI SQL 92, PHP, etc.
Netware-specific MySQL features
- Particularly useful for MySQL application vendors, AMP MYSQL includes a commercial license for MySQL.
- PHPMyAdmin for MySQL management.
- Nakoma will likely include disk/hardware features such as MySQL cluster failover, the ability to implement cluster architecture to eliminate single points of failure, and dramatically improved performance.
- The Perl directory tree includes a script called mysql.pl used as a starting point for creating MySQL queries, as well as other scripts to access other types of databases (Oracle,Btrieve, etc.) and network volumes.
PHP or PHP: Hypertext Processor -- In 1995 Rasmus Lerdorf created PHP as a server-side scripting language that doesn't require sysadmin privileges (PHP originally stood for Personal Home Page). The highly portable language is currently supported on many UNIX flavors, Windows, and other environments with built-in seamless connectivity with other databases, standards, and programming languages.
It is simple to use and integrates well with HTML. For example, the following PHP script:
<?php echo "<b>PHP rocks</b>"; ?> produces the HTML code: PHP rocks. PHP can easily be used to add dynamic features to existing static HTML web pages. Server-Side Include (SSI) support allows PHP code to be stored in one file and invoked from multiple places like CGI scripts. It also has stronger security features "out of the box" than CGI scripting languages.
Netware-specific PHP features
Novell has successfully tested the following third-party PHP and Perl scripts: PHProjekt, PHPNuke, XOOPS, and Incyte Project Manager. Many other scripts will work with AMP as well, including a large collection available from neumann.gne.de. Novell has conveniently included PHP extensions for LDAP access, MySQL access, SMTP mail access, and a webdemo directory that contains some sample scripts to try out (FTP session, LDAP Query, etc.).
Perl was created in 1987 by Larry Wall as a reporting, extraction, and utility language.
- Multiple platform support/portability -- This includes support for many UNIX flavors, Windows, Mac OS X, and other environments.
- Extensive interoperability with other software -- Interoperability with third-party databases through DBI interface, network sockets, C/C++, LDAP, NNTP, HTML, and much more. Powerful data extraction and reporting capabilities make it a particularly attractive platform. It leverages the strengths of the best languages in the UNIX world.
- Strong security support -- This includes access control, TaintPerl to check for security holes, and support for secure setuid and setgid scripts.
Netware-specific Perl features
Perl will execute any scripts located in or under
sys:\perl\web\. Perl can run any scripts from the system console command line if they are located in or under the
sys:\perl\scripts. If scripts are stored in sys:\perl web directory, then they can be run from a Web browser with the following command:
Novell has included a number of modules to access databases. The DBD:mysql module is specifically for MySQL access, but Pervasive.SQL 2000 and MS-Access are accessible as well. For other databases, UCX (Universal Component Extension) and other methods are also provided. Novell has also provided a LDAP module to access eDirectory.
Page 3: AMP Interoperability
The components of AMP are intricately linked, so it is important to understand how they interact with each other to ensure that incompatible modules will not trip up your application development effort.
- Can authenticate users from MySQL databases (Using module mod_auth_mysql).
- Makes Apache logs readable by MySQL. Search for Apache on the MySQL website.
- Can manage virtual hosts using the mod_v2h module.
- Load PHP as static or dynamic shared object (DSO) module (mod_php). A DSO can be unloaded by commenting out a line in httpd.conf. Other changes to httpd.conf and the php.ini on the PHP side are required for PHP support.
- PHP scripts are part of Server-Side Include.
- PHP scripts are a directory index.
- Load mod_perl module to run perl and CGI scripts. This includes using the perl API for Apache -- allowing mod_perl scripts to take full advantage of the module.
- Use mod_perl to configure virtual hosts.
- Use the Perl DBI to access various databases.
- Many other third-party mod_perl scripts already exist, so you do not have to reinvent the wheel. Check out the mod_perl homepage below for further information.
- Feeds output from a MySQL query to a Perl script for manipulation.
- Access to MySQL database is through Perl DBI interface. This uses the DBD::mysql module.
PHP scripts can be used to access MySQL databases using the mysql_xxx API functions. There is a third-party PHP GUI-based application, PhpMyAdmin, which can be used to administer the entire MySQL server or a single database.
- Similar functionality, but PHP is specialized specifically for web scripting, while Perl is much more general.
Be forewarned that there are some differences between Novell-supported releases and the official tools releases. Both Apache and Perl match completely, but Novell's MySQL is at revision level 4.0.3, while the official production version is 3.23.54a and 4.0.9 is in gamma test. The PHP releases are also slightly out of alignment as well -- Novell is supporting 4.2.3, while the latest official release is 4.3.0.
Page 4: Installing AMP
Before you install it, read the documentation found in the namp_readme.txt and the Dec 2002 AppNote "Installing and Configuring Netware AMP". Here are a couple of things to remember:
- Do not install this beta release on a production server!
- Netware 6 Service Pack 2 or later is required.
- Install it on a standalone server with no other operational Netware services.
- Ports 80 and 443 must be available.
Once the preceding points have been addressed, you are now ready to install the package. I have outlined a quick guide to the AMP installation process.
- Install Novell Perl, normally part of the Novell Developers Kit(NDK), on your server.
- From the system console run
Perl nampinstall.pl. This script installs all AMP components plus new versions of various NLMs (such as LibC, CLib, and LDAP).
- Reboot the system.
- Test to verify that each application is operational.
- By default, Apache is installed in the kernel space and listens on ports 80, 443, and 220. An additional instance running in protected mode is possible. Once files are configured, run APACHESTART to start Apache (if it is not running already). You will know that it is working if, after typing
http://IP_address-of-server, the default Apache web page appears.
- After Apache has started, test PHP by pointing your browser at http://IP_address_of_server/php/phpinfo.php to see the default PHP page.
- After Apache and PHP are running you can test MySQL by pointing at http://IP_address_of_server/phpMyAdmin/index.php. You should see a welcome screen.
- Test Perl by pointing your browser at http://IP_address_of_server/perl/samples/env.pl If all is working, a screen about Perl environment variables should appear.
- Tune each application for your environment, hardware, software configuration, network topology, etc.
So far, the release is getting positive feedback from users, but of course, since this is beta software there is no guarantee that the features and installation procedures in the beta will be identical to those in the final "Nakoma" release. Concerns for the future of AMP and Novell's commitment to open source include:
Will Novell be able to distribute feature and security updates for supported Open Source software in a timely fashion?
Which open software will Novell next support? Programming languages such as Python, TCL, etc. or other Apache Software Foundation and other third-party products?
Will the Open Source community adapt their products to support Netware AMP?
Which, if any, Novell software will become Open Source?
We encourage you to provide Novell with feedback on AMP and which Open Source software you require to run under Netware for future support.
Location of the Netware AMP Developer Suite (currently Beta)
Novell Open Source software homepage
Good site for AMP extensions and latest official versions of AMP software (which are not Novell supported)
Developer Newsgroups for AMP. The Open Source site is where to make suggestions for Open Source software that you think Novell should support in future releases.
Official Apache homepage
A third party Apache GUI to modify httpd.conf, start servers, and control remote Apache servers running Netware.
Official MySQL homepage
Official phpMyAdmin homepage
Official PHP homepage
Official Perl homepage
Official mod_perl homepage
Beth Cohen is president of Luth Computer Specialists, Inc., a consulting practice specializing in IT infrastructure for smaller companies. She has been in the trenches supporting company IT infrastructure for over 20 years in a number of different fields including architecture, construction, engineering, software, telecommunications, and research. She is currently writing a book about IT for the small enterprise and pursuing an Information Age MBA from Bentley College.
Hallett German is an IT consultant who is experienced in implementing stable IT infrastructures with an emphasis on electronic messaging and directories. He is the founder of the Northeast SAS Users Group and former President of the REXX Language Association. He is the author of three books on scripting languages. He is currently seeking challenging opportunities that will expand his directory, networking, and security skills.
See All Articles by Columnist Beth Cohen