cPanel Language Module Interfaces

Posted: November 8th, 2008 | Author: telcor | Filed under: Information Technology (IT), PHP, Software, WWW | Tags: , |

Scripting languages often provide a central location to obtain modules  
for use in user applications. For example, Perl has CPAN and PHP has  
PEAR. cPanel 11 provides an easy to use interface for managing modules  
for Perl, PHP and Ruby, both from WHM and cPanel. In this first of a  
two part series, we cover these management interfaces. In the second  
article we discuss a simple method of integrating these modules into  
an end user application. Please note, the language modules discussed  
in this series only pertain to web applications served by Apache.  
These methods do not apply to applications served by cPanel (i.e.  
cpsrvd).

WHM Language Module Management

Any language modules installed using the WHM interface are installed  
in system directories, making them available to all applications on  
the server. The interfaces allow installing CPAN modules for Perl,  
PEAR packages and PECL extensions for PHP and Gems for Ruby. The Gems  
interface will only be available if Ruby is installed on the server  
(e.g. /scripts/installruby). A unified look is applied to each module  
interface which allows an admin to:

            
  • list currently installed modules
  • list modules available on the remote repository
  • search the remote repository
  • install a module
  • upgrade existing modules
  • remove existing modules

Some special notes about PEAR and PECL: these repositories use  
different ‘channels’, depending upon whether you want Stable, Alpha or  
Beta quality packages installed. The WHM and cPanel interfaces only  
use the Stable channel. Thus a module might be listed on the main site  
(pear.php.net or pecl.php.net) but is not available for install within  
the cPanel interfaces (or the interface lists a different version)  
because only the Stable channel is sourced and displayed. PECL is a  
special wrapper around PEAR that provides a simple method of  
installing PHP extensions that are not provided with the main PHP  
source. Some PECL packages can have issues if the working directory (the directory used to build the extension) is  
on a partition marked NOEXEC, as /tmp often is.

cPanel Language Module Management

Since the Gems, PEARs and CPAN modules installed via WHM are system-
wide, it’s easy for a conflict to arise with what a particular end  
user application needs and what is provided at the system level. The  
cPanel version of the language module interfaces allow installation  
direct to the user’s home directory. The modules are installed in /
home/user/language
, where language is one of perl, php or ruby  
depending. A cPanel user is presented with a similar interface, with  
the same capabilities, as exists in WHM. However, the cPanel interface  
provides the extra feature of displaying both modules installed  
exclusive to the user’s account, and those installed system-wide. Only  
those installed to the user’s account can be managed in the cPanel
interface.

Note

Unlike WHM there is no interface for installing PECL extensions within the cPanel interface. This is for at least two reasons:

  1. A compiler, such as GCC is needed.
  2. PECL extension installation usually requires write access to the system php.ini file.

Both actions typically require privilege escalation. There is no provision within cPanel for this.

Once the particular module is installed to the user’s home directory,  
it is available for use in his application. However, the application  
must be modified, or the environment configured, to inform the  
application of the location of these modules. Each language module  
management page contains example code for the particular language that  
accomplishes this. cPanel 11 also contains a feature, known as  
Homeloaders, that allows use of these modules without modification of  
the application or environment. Our next article in this series will  
discuss that feature.

Related posts

  1. cPanel Home Loaders Last time, we discussed the interfaces in cPanel to manage...
  2. Securing PHP in Shared Hosting Environment One of the problems inherent to using an Apache Module...
  3. Natural Language Programming Beroc Beute ponders whether we’ll ever have a Natural Programming...
  4. Writing a site engine At DevShed you can find many articles about all spects...
  5. It works for Language X, It Must work for Language Y Apparently I missed this discussion on Sitepoint Forums. The subject:...

Related posts brought to you by Yet Another Related Posts Plugin.


One Comment on “cPanel Language Module Interfaces”

  1. #1 Adventures As Me » Blog Archive » cPanel Home Loaders said at 10:05 am on November 10th, 2008:

    [...] postscPanel Language Module Interfaces Scripting languages often provide a central location to obtain modules…Multiple email domains for [...]


Leave a Reply