Table of Contents

Joomla Setup and Configuration
Installation
Configuration
Installing a Component Manually

Sometimes, due to permission restrictions on the server, it is not possible to install a component through the usual method (inside Joomla). You have 2 alternatives:

  1. Give more rights to the web server process to read/write the Joomla files and folders.
  2. Install the component manually. Basically, copy the files using FTP, then register the component to the database using SQL.

Usually giving yourself more rights is a problem since you might be hosting and not managing the server. To work around this problem, you need a different approach

Method 1: Totally Manual

Perform the following steps: 1. Analyze the installer XML file:

Sample Installer XML file:

<mosinstall type="component">
 <name>HelloForm</name>
 <creationDate>06/08/2006</creationDate>
 <author>John Doe</author>
 <copyright>© 2006, John Doe.  All rights reserved.</copyright>
 <license>
  This component in released under the GNU/GPL License (http://www.gnu.org/copyleft/gpl.html).
 </license>
 <authorEmail>jdoe@example.com</authorEmail>
 <authorUrl>www.example.com</authorUrl>
 <version>1.0</version>
 <description>
   This provides a basic Joomla component.
 </description>
 
 <files>
  <filename>helloform.php</filename>
  <filename>helloform.html.php</filename>
  <filename>helloform_settings.php</filename>
  <filename>helloform_settings.php.default</filename>
  <filename>language/english.php</filename>
 </files>
 
 <install>
  <queries>
   <query>DROP TABLE IF EXISTS `#__helloform`;</query>
  </queries>
 </install>
 
 <installfile>
  <filename>install.helloform.php</filename>
 </installfile>
 
 <uninstallfile>
  <filename>uninstall.helloform.php</filename>
 </uninstallfile>
 
 <uninstall>
  <queries>
   <query>DROP TABLE IF EXISTS `#__helloform`;</query>
  </queries>
 </uninstall>
 
 <administration>
  <menu>HelloForm</menu>
  <submenu>
   <menu act="config">Configuration</menu>
   <menu act="manage">Manage Items</menu>
  </submenu>
  <files>
   <filename>admin.helloform.html.php</filename>
   <filename>admin.helloform.php</filename>
   <filename>helloform.class.php</filename>
   <filename>toolbar.helloform.html.php</filename>
   <filename>toolbar.helloform.php</filename>
   <filename>help/index.html</filename>
   <filename>tmpl/com_admin.html</filename>
   </files>
 </administration>
</mosinstall>

2. Perform installation steps manually using the installer XML file as a reference:

3. Register the component on the server. Basically, go to the Joomla database, under the components table (usually jos_components), create a new record similar to the others. The fields must contain the relevant data from the new component.

Note that:

For example, these would be the records to add based on the XML installer:

id name link menuid parent admin_menu_link admin_menu_alt option ordering admin_menu_img iscore params
35 HelloForm option=com_helloform 0 0 Manage/Configure HelloForm com_helloform 0 images/icon.png 0
36 Manage 0 35 option=com_helloform&act=manage Manage HelloForm com_helloform 1 images/icon.png 0
37 Configuration 0 35 option=com_helloform&act=config Configure HelloForm com_helloform 2 images/icon.png 0

Sample SQL statement:

INSERT INTO `jos_components` ( 
  `id` , `name` , `link` , `menuid` , `parent` , 
  `admin_menu_link` , `admin_menu_alt` , `option` , 
  `ordering` , `admin_menu_img` , `iscore` , `params` 
)
VALUES (
  NULL , 'HelloForm', '', 
  '0', '0', 'option=com_helloform', 'Manage/Configure HelloForm', 
  'com_helloform', '0', 
  'images/icon.png', 
  '0', ''
);

These are the descriptions of each field:

Field Description
`id` Record ID, which gets created automatically if NULL is used.
`name` Component name, such as MyComp.
`link` Link to the component, used for accessing the component frontend, such as option-com_mycomp.
`menuid` Menu ID, usually 0.
`parent` Parent component ID. If it is the main menu entry, this value is 0. If it is a submenu entry, this value has to be the parent (main entry) ID.
`admin_menu_link` Menu link to the component, which is only available under the administration menu.
`admin_menu_alt` Menu name (or description) to used instead of plain menu link.
`option` Any options specific to the component.
`ordering` Ordering used in the menu listing. This is important for the submenu entries.
`admin_menu_img` Icon to use beside menu entry.
`iscore` Specified whether it is a core component (0=False, 1=True).
`params` Any parameters specific to the component.

Method 2: Practical Approach

An alternative way (probably the best way to approach the problem):

Method 3: Fast Approach

If you do not want to go through all this trouble, at least: