Joomla! is a popular open source content management system (CMS) written in the PHP programming language. It is available to DreamHost users as a One-Click Install. Joomla is a fork of the Mambo open source Content Management System; Joomla! version 1.0.0 is derived from Mambo 184.108.40.206. The latest version of Joomla is 2.5.x.
This article is a starting point for information about Joomla, for instructions on how to install Joomla, and for hints on operating and troubleshooting a Joomla-based web site.
Decide to use Joomla!
Here are some factors to think about when deciding whether to use Joomla, and planning how you want to use it.
Whether CMS, whether Joomla!
First, decide whether a content management system (CMS) is appropriate for your site. A content management system makes it easier to separate the role of content writer and editor from the role of website format designer. It makes it easier to add content to an existing site in a format consistent with the rest of the site. However, it has downsides. It is more complicated to set up at first than a "bare HTML" site. It requires supporting installations, like PHP and MySQL. It can consume more CPU minutes than a bare HTML site. See the content management system article for more pros and cons (once someone writes it).
Once you decide to use a CMS, decide if Joomla! is appropriate. There are other CMS's, including Mambo which you can find at www.mambo-foundation.org, Drupal, PostNuke at www.postnuke.com, eZ and Plone. (Add more CMSs to this list as you discover them.)
Read more about Joomla! at the www.joomla.org, Joomla! web site. The Joomla! documentation is at help.joomla.org. User forums are at forum.joomla.org/. There is a demo Joomla! site at demo.joomla.org; mess around there and see if you like it. Here are some specific documents that will probably be useful to read as you make up your mind:
- Topic: Absolute Beginners Guide to Joomla! in the Forums. Their Phase 1, Phase 2, Phase 3, Phase 4 model is a helpful guide.
- Joomla Quick Start. This is an easy to read, 20-page manual that gets right to the heart of the matter. Walk through the guide with your own Joomla implementation in front of you.
- Joomla! User Manual PDF. 47pp. Version 0.01 5/15/2006 as of late May, 2006. Try especially Chapter 1 - Welcome to Joomla! and Chapter 2 – Getting Started.
An advantage of Joomla! is that DreamHost provides it as a One-Click Install. This makes it easier to set up.
Joomla! requires MySQL 3.23.x or above (per joomla.org's 1.0.x system requirements). DreamHost's copy of MySQL works with Joomla!. As for sharing a MySQL database with another app, Joomla! certainly works with a dedicated MySQL database. This article doesn't describe whether one MySQL database can serve a Joomla! site and other applications. If you try this, please add your learnings to this article.
Joomla! requires PHP 4.2.x or above, with MySQL, XML and Zlib support built in (per joomla.org's 1.0.x system requirements). DreamHost's copy of PHP v 4.x works with Joomla! This article doesn't describe if DreamHost's copy of PHP v 5.x works with Joomla! If you try this, please add your learnings to this article.
Search engine friendly
Decide if you want search engine friendly (SEF) URLs. This is part of search engine optimisation (SEO). Another way to think of them is as "human friendly" URLs, or "cool URLs" in the sense of this W3C Cool URIs Don't Change paper.
Joomla's default URLs are of the form:
This has the disadvantage of putting all the information that identifies the page after a question mark ("?"), where search engines are likely to ignore it. With Joomla version 1.0, third-party extensions were required to use SEF URL's. Starting with Joomla version 1.5, released in January 2008, SEF URL capability is built-in and is enabled just by changing a global setting.
With SEF URL's enabled, the URL above becomes something more familiar and search-engine friendly:
Although the native SEF capabilities of Joomla 1.5.x are an improvement over those that existed in Joomla 1.0.x version, there is still room for further improvement. Because of that, there are a number of SEF components available for the 1.5.x version that not only do a fine job of further refining the SEF capabilities of Joomla, but also add performance and security features to a Joomla 1.5.x site. Some are free and some are commercial. Since specific recommendations of components are outside of the scope of this document, it is suggested that the reader start here in their search for the SEF component that most closely identifies their needs. Note: some Joomla SEF 3rd party components, such as sh404sef have been found to work with the Dreamhost Personal Server service far more effectively and without errors when they are used with .htaccess set "on". The ability to toggle .htaccess usage and select usage mode is found in the component's configuration features.
Decide if your site will have content in only one language, or in multiple languages. If you will have multilingual content, the current version 1.0.x does not properly support Unicode, and requires you to specify an encoding for each piece of content. UTF-8 is somewhat usable as an encoding.
Using UTF-8 requires special steps to set up the MySQL database. See the article UTF-8 issues in Joomla! 1.0.x series from the Joomla! Help pages for more information.
Consider if you want to add a Joomla component to help manage multilingual content. In particular, if you have content that use different encodings, such as English, Russian, and Japanese, you may want to use a component.
Joom!Fish is one multilingual support component. "The Joom!Fish is an add-on component for Joomla! which allows you to maintain and organize your manual translated content in your Joomla! database." See its main project page at forge.joomla.org.
There are reports that Joomla! v 1.5, when it arrives, will support full Unicode encoding of the site. This doesn't obviate the need for a support component like Joom!Fish, but it will make multilingual sites easier to run. See these articles:
- Joomla! 1.1 — Developer Power, User Excitement, announcement of Joomla! 1.5 (then called 1.1), posted Sunday, 01 January 2006
- Implementation of UTF-8 in Joomla! 1.5, February 4th, 2006 by davidgal, in the Joomla! Developer Blog
Domain name spelling and TinyMCE
Some experience suggests that there can be problems if your editors are inconsistent in spelling your domain name with or without "www." at the beginning. One way to avoid this is to force your web server to either always respond to "www." before the domain name, or never to do so. This is set in the Domains Control Panel. Another way to avoid this problem is train your editors to consistently use the spelling you choose when you configure Joomla!.
Pick one spelling or the other -- "www.example.com" or "example.com" -- to use. Follow instructions below to set up Joomla!, and perhaps the DreamHost web server, using this spelling.
Prepare to use Joomla! for the first time
Before you install Joomla, there is some preparation that you need to do.
This article reflects installation of Joomla! onto an empty domain. It doesn't describe how to install Joomla! along an existing site. (If you try that, please add the lessons you learn to this article.)
If you have existing content, then use a staging site. Create a new subdomain using the Domains Control Panel. Install Joomla! into that sub-domain according to the instructions below. Then salvage the text and image content of your existing site, and use Joomla's tools to add them to the new site. Finally, move the staging site to be your main site.
Install Joomla! Using DreamHost's "One-Click" Installer
The steps to install Joomla! are as follows.
- Prepare a domain with no content to receive the Joomla! CMS. Suggestion: Use a staging site to to get things set up, then make it your main site. In the following discussion, we'll use example.com to stand for the domain you are installing Joomla! into. Use the Domains Control Panel to do this.
- If you wish the DreamHost web server to enforce use or omission of "www." when editing your site (see Domain name spelling and TinyMCE above), set this choice in the Domains Control Panel, Fully Hosted settings, How do you like the www in your URL? setting.
- Go to the Goodies Control Panel, Goodies_Control_Panel#One-Click_Installs sub-tab. Under the first, Upgrade or remove previously installed software: section, Joomla! should not be listed for your example.com domain. If it is, then you are attempting an upgrade, and these instructions don't directly apply. (If you attempt an upgrade, make an upgrade section in this article and record your lessons learned.)
- Scroll down to the Install new website software: section. In the radio-button list of applications, select Joomla. The version number listed there is 1.5.15 (as of February, 2010). If the version number you see is different, then these instructions may be out of date. Please update this article with the new version number, and whatever you learn from the experience.
- Scroll down to the 2. What URL would you like your software to be installed to? question. There is a pull-down menu with a list of domains already set up. Find your target domain (or staging domain), www.example.com, in this pull-down menu. If your domain is not there, then the step of preparing a domain above wasn't correct. Return to the Domains Control Panel to fix it. The link "To install software on an entirely new domain, please add it here first!" is a convenience link to the Domains Control Panel. The text field below the pull-down menu is not yet described here. You may leave it blank. If you put in a non-blank value, please add the field's purpose and your lessons learned here.
- Scroll down to the 3. Please choose a MySQL database for this software to use: question. Joomla! stores data describing your site and its content in a MySQL database. You can either use an existing, empty MySQL database with Joomla!, or create a new MySQL database now. (Note: This article has no information on whether you can use a single MySQL database with Joomla! and other data. If you try this, please add your learnings to this article.) If the MySQL database you want to use appears in the list, select it. Otherwise, select Create a new database now:, and fill in the following four pieces of information:
- Database Name: Give your database a name. The name may contain only letters, decimal numbers, and the characters $ and _ and must be unique across our entire system. (consider maybe naming your db yourwebid_dbname)
- Hostname: [text box] "." [pop-up menu with domain names] You will access your database via a subdomain. Give your subdomain a unique name (not the same name as a subdomain you've already reserved, even for another MySQL database). Consider maybe mysql-dbname.example.com. Type the first part of the domain name in the text box, and select the end of the domain name from the pull-down menu. If using a staging site, consider using the final domain name here. That way you won't need to change it when you move the staging site to the main site.
- First User: The unique username you will use to access your MySQL database (follows the same requirements as database name above). If there is an existing MySQL username which you wish to reuse for this database, select it from the pull-down menu. Otherwise, select Create a new user now.... The three text boxes below, for the new username and password, become active.
- New Username: Fill in the unique username here. May only contain the characters a-z,A-Z,0-9 and the _ and $ character. Consider maybe yourwebid_mysql.
- Password: and Again: The password you will use to login to MySQL. Suggestion: since it will mostly be software rather than humans who type this password, don't restrict yourself to passwords which are pronounceable and easy to type. The installer robot will email you this password in the clear, so making it similar to your other passwords may be a security risk.
- Note: For more information on the MySQL options, see the Creating a MySQL Database with DreamHost section in the MySQL article.
- There is a note that "Note.. using this panel will set your domain to run PHP as a CGI if it isn't already! (Which is probably fine!)" This refers to a setting which used to be present in the Domains Control Panel, Fully Hosted settings. You need not take any specific action for this.
- Press the Install it for me now! button. The DreamHost system installs Joomla!, which takes a few minutes.
- In 10-60 seconds, the One-Click Installs subtab reappears, with the following message: "Success! Joomla will be installed to http://www.example.com/ within 10 minutes (using your yourwebid_dbname database). You will then receive an email from us with final instructions to configure your new software."
- There is a note below the button: "It should take less than 10 minutes to install your new software. We will email you further instructions at (firstname.lastname@example.org) when it's complete." As you might guess, you now need to wait for this "installer email".
- If you wish, read the Joomla "Browser Installation" instructions. The next several steps are based on those instructions, which are generic to all Joomla! users. The "installer email" instructions and the text below are customized for DreamHost user.
- The "installer email" arrives, from the DreamHost Installer Robot. Read this email and follow its instructions, which are listed as the seven steps below. Start by clicking on the link to the first page of your Joomla! site, http://www.mydomain.com/. It redirects you to http://www.mydomain.com/installation/index.php, and a web page entitled pre-installation check appears.
- If you want a multilingual Joomla! site with UTF-8 encoded data, set your MySQL database to UTF-8 encoding before you let the Joomla! installation process put in sample data. Here is how you do this. If the default latin1 encoding is sufficient for your purposes, skip this list.
- Use your web browser to visit the host name of your MySQL server, e.g. mysql-dbname.example.com from above. A username and password prompt appears.
- Enter your MySQL user name and password, e.g. yourwebid_mysql and the password string you specified above. The PhpMyAdmin main window appears.
- On the left pane of the window, under the heading Databases there is a pull-down menu of the databases resident on this server. There will be two or more entries. Select the entry with the name of your MySQL database for Joomla!, yourwebid_dbname from above. A set of tabs appear in the right pane, e.g. Structure, SQL, ... Operations. Below these tabs should be a brief blank section and a footer. If there is a list of some 35 table names, then your database is already populated, and these instructions will have no effect on those existing tables.
- Click the Operations tab. A new right panel appears, with the section Collation at the bottom.
- In the Collation section, there is a pull-down menu with a list of collation names. Select utf8_general_ci, and click the Go button. (utf8_general_ci means a collation using the UTF-8 encoding scheme, for general multi-language use, and case-insensitive.) The right pane redraws. You should see a message at the top, saying something like:
Your SQL query has been executed successfully.
SQL query: ALTER DATABASE `yourwebid_dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
This means your database should set the Joomla! data to UTF8 encoding.
- You are done with phpMyAdmin, and can now exit it. Click on the green Exit icon on the top of left pane. A username and password prompt appears. Click Cancel and close the browser window. You are done with this for now, but after the Joomla! installation is done, there are a few more steps. See below.
- The pre-installation check page lets you confirm that several system settings and support software installations are correct for Joomla!. There is nothing specific to check or fix at this page. The DreamHost One-Click Install should have made all the settings correctly. Most of the checks should show green. (The setting "Register Globals:", expected to be "OFF:", may be "ON". You don't need to worry about that, but can correct it if you wish to. For more information, see the Register Globals troubleshooting section.) Click the Next >> button at the upper right. The License page appears.
- Read the GPL License for Joomla!. The opening text gives the gist. "The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users...." Click the Next >> button at the upper right. The step 1 page appears.
- In the step 1 page you tell Joomla! your MySQL database settings, which you set up in the DreamHost One-Click Install page above. These settings are listed in your installer email. Copy each value from the email and paste into the corresponding field in the step 1 page. Note: On a Dreamhost Personal Server account, the dropdown box for "Database Type" offers both mysql and mysqli(MySQL Improved). By selecting mysqli, some performance advantages can be achieved, apparent but relatively modest.
- Host Name: mysql-dbname.example.com from above
- MySQL User Name: yourwebid_mysql from above
- MySQL Password: the password string you specified above
- MySQL Database Name: yourwebid_dbname from above
- MySQL Table Prefix: leave whatever value the Joomla! installation supplies unchnaged. The table prefix lets Joomla ensure that its tables are distinct in a database shared with other applications. Note: There is a school of thought that changing the database prefix from "jos_" to another three letter, more obscure and non-standard prefix can afford extra "security through obscurity" against SQL Injection attacks on your site by bots and malicious users.
- Drop Existing Tables checkbox: leave unchecked.
- Backup Old Tables checkbox: leave unchecked. Checking the box will back up existing Joomla tables in the database (any existing backup tables from former Joomla installations will be replaced).
- Install Sample Data checkbox: checked by default, leave checked. Uncheck only if you are you are experienced in using Joomla!, because it will make you start with an empty site, and you will have less guidance in populating your site.
- Click the Next >> button at the upper right. A confirmation dialog appears: "Are you sure these settings are correct? Joomla will now attempt to populate a Database with the settings you have supplied. [Cancel] [OK]". Click OK. There will be a few seconds delay as Joomla puts entries in the database. If all goes well, the step 2 page appears.
- In the step 2 page, you enter a name for your Joomla! site. This article does not yet have information about where this name is used, and thus what kind of name is good to enter. The installation screen says, "This name is used in email messages so make it something meaningful." Assume that it will be a name that appears at the start of the Title for every web page, in the user-visible text of parts of the site, and in administrative email messages from the Joomla! system to the administrators. Thus it should be in ASCII text, comprehensible to intended readers of the site, and distinct from the Site Names of other sites in the care of the administrators. (If you find out more about what kind of name is advisable here, please add it to this article.) Click the Next >> button at the upper right. The step 3 page appears.
- In the step 3 page, you confirm the site URL, file path, admin e-mail address and CHMOD settings. All six items on the page are listed below, but you only change three of them.
- URL: The site URL http://mydomain.com/ should be filled in. You don't need to change it.
- Path: A value like /home/.blah/mywebid/mydomain.com should be filled in. Identify the part of the path between the second and third slashes, beginning with a period (".blah" in the example). Delete this part and its trailing slash. The result looks like /home/mywebid/mydomain.com.
- Your E-mail: Initially blank. Enter an email address to which the Joomla! system can send the Joomla! SuperAdministrator email messages. IMPORTANT NOTE - The email address you provide will also be configured as the "Sent From:" email address for the purposes of sending activation emails for new user signups. This email address must not be from a prohibited provider such as Gmail or Hotmail etc. See Dreamhost Status for more info. If you use a gmail account for initial configuration, you must modify the "From Email" parameter found in the Global/Server configuration panel.
- Admin password: This is the password you will use to log into the administrative section of your Joomla! system. The installer fills in a suggested password; write this down if you want to use it. Or, replace it with a password you prefer.
- File Permissions: This gives you a way of setting the file access permissions (CHMOD settings) for the files Joomla installs. Don't change these; the default values should work for DreamHost installations. The "Don't CHMOD files (use server defaults)" radio button is selected by default. If you select the "CHMOD files to:" radio button, a series of check boxes appear, allowing you to set User, Group, and Other permissions to read, write, and execute. The page says, "The permission settings will be used while installing Joomla itself, by the Joomla addon-installers and by the media manager. If you are unsure what flags shall be set, leave the default settings at the moment. You can still change these flags later in the site global configuration."
- Directory Permissions: Similar to file permissions, but for directories instead. Don't change these; the default values should work for DreamHost installations. The explanation above applies for this section too.
- Click the Next >> button at the upper right. The step 4 page appears.
- The step 4 page marks the successful completion of the Joomla! application installation process. The page displays the administrator user id (typically "admin") and password (should be as you filled in on the step 3 page). Record these. The step 4 page also reads, "Click the 'View Site' button to start Joomla site or 'Administration' to take you to administrator login." This refers to buttons at the top right of the page. It's tempting to click those buttons and admire your handiwork, but don't bother. They both lead to reminder pages to perform the following step: remove the "installation" directory.
- Remove your installation directory. This is a directory "installation/" under your site path as set above, e.g. /home/mywebid/mydomain.com/installation/. You can use FTP, connect to your site and remove the "installation" directory. Or, SSH to the installation directory, and delete it with a command like cd example.com, followed by rm -rf installation/.
- If (like the author) you are neurotic about archiving everything before deleting it, consider the following. Use ssh to login to your DreamHost user directory. Use command tar -zcvf joomla_installation.tar.gz example.com/installation/ to make a zipped tarball of the installation directory. A list of filenames put in the archive appears. Use command tar tzf extras_for_jdlh.dreamhost.com/joomla_installation.tar.gz to list the filenames actually in the archive. Confirm these match the list of filenames in the installation/ directory. Then delete the installation/ directory.
- Return to the step 4 page in your web browser. Click the link "Administration" button at the top right. A log in page appears. Log in as "admin" with the password you just set.
- If you want a multilingual site, there are a few further steps.
- Check that your database encoding change to UTF-8 worked changes worked. Use phpMyAdmin as above to get a list of the 35 or so tables with the sample data. Look at the values in the column Collation. They should read utf8_general_ci in every case. If they read some other value, e.g. latin1_swedish_ci, then the database is not encoded in UTF-8.
- Using a shell or FTP, go to the language translation files in the directory language/ under the main site directory. Identify the file english.php in this directory.
- Ensure that english.php is encoded in UTF-8. This may already be true: by default the file contains only unaccented letters and other basic characters from the ASCII character set. Since ASCII is a proper subset of UTF-8, any ASCII-encoded file is also UTF8-encoded.
- Edit english.php. Search for a line of the form: DEFINE('_ISO','charset=iso-8859-1');. Replace the string iso-8859-1 by utf-8. The line now reads DEFINE('_ISO','charset=utf-8');. This causes Joomla! to label its pages as UTF-8 rather than iso-8859-1 (which corresponds to latin1).
- Go to the files in the directory includes/ under the main site directory. Identify the file database.php in this directory.
- Edit database.php. Look for a statement
//@mysql_query("SET NAMES 'utf8'", $this->_resource);
at about line 102. Uncomment this line, i.e. delete the '//' characters. Save the file.
- This should conclude the special steps to make your Joomla! site UTF8 capable. Check the article UTF8 issues in Joomla! 1.0.x series for any other tweaks. Also, see elsewhere for instructions on installing Joom!Fish or similar.
- At some point you may be warned that magic quotes (magic_quotes_gpc) are off and need to be turned on, you can safely ignore this warning.
Copy Joomla! Website From localhost to DreamHost
When you are first trying out a CMS package like Joomla!, it is often recommended that you install it on your local system (e.g., "localhost"), for example with xampp, and get your site running locally. In this case, you may do enough work on your local Joomla! site that you want to copy this site to DreamHost. Fortunately, this is very easy to do.
Note: With DreamHost's free subdomains, it is not strictly necessary to do this. You could instead create a subdomain and then learn or evaluate Joomla! on this DreamHost subdomain, in which case you could start using Joomla! on DreamHost and never have a local installation. However, you may feel more comfortable about initially working with Joomla! locally before putting it on DreamHost.
This article assumes you have installed Joomla! 1.5 on your local computer, you have created a website, and you now wish to copy this website to your DreamHost account. Here are the steps:
- Create a place on DreamHost to install Joomla!. If this is a new site, it will just be your DreamHost home directory. If you have an existing site that you wish to keep while you work with Joomla!, you can create a DreamHost subdomain to hold your Joomla! site. Make sure you note the subdomain name for later. See Subdomain for more information.
- Install Joomla! in the desired DreamHost directory. See Install Joomla! for detailed instructions. You do not need to install the Joomla! example website. Note: During the Joomla! installation, you created the following MySQL parameters: database name, host name, user name, and user password. Make sure to keep a record of these, since you will need them later in this process. At this point, you have a local Joomla! 1.5 installation and an empty Joomla! installation in your DreamHost folder.
- Copy the required files from your local Joomla! folder to your DreamHost folder. Note that Joomla! content is stored in the MySQL database, which will be transferred in a later step.
- If you have not added or modified any Joomla! templates, extensions, or CSS files on your local system, you will only need to copy the images folder (assuming you added images) and any other files you have added or changed since you installed Joomla!.
- If you have added extensions or templates or modified one or more CSS files (or if you are not sure), then you can safely copy all of the Joomla! 1.5 files except for the configuration.php file. You want to keep the DreamHost configuration.php file and not overwrite this file with your local copy.
- Next, you need to copy the contents of your local MySQL database to the DreamHost MySQL database. This is done by creating an export file locally, copying the export file to the DreamHost server, and then importing the file into your DreamHost MySQL dabase, as follows:
- Open phpMyAdmin on your local system by navigating to it's URL with your browser. On your local system, this URL will normally be "//localhost/phpmyadmin". Note: If you have a password on your database, you will be prompted for it.
- The phpMyAdmin screen will display as shown below. Select the Export link.
- Select the database you want to export in the upper right-hand list. In the example below, the database "joomla15" is selected. Keep all of the default options, including "SQL" as the export type.
- Check the "Save as file" box at the bottom of the screen, and enter the name of the export file, as shown below. .
- Press the "Go" button in the lower right corner. An Open / Save / Cancel dialog will display. Press Save and select a folder to save the file in. The export will complete and the file will be saved in the chosen location.
- Copy the export file to a folder on the DreamHost server, for example using FTP.
- Open up the phpMyAdmin on the DreamHost server. To do this, open your browser and navigate to the URL "http://" followed by the MySQL host name you named when you installed Joomla!. For example, if your MySQL host name is "mydatabase.joomla15.mywebsite.com", the URL for phpMyAdmin would be http://mydatabase.joomla15.mywebsite.com. You will be prompted to enter your MySQL user name and password that you created when you installed Joomla!.
- At this point, you need to import the contents of the export file created above. Before you can do that, however, all of the data from the existing Joomla! database must be deleted. An easy way to do that is to select the MySQL database for Joomla! from the drop-down list box in the upper left, as shown below.
- The list of tables in the selected database will display. We want to delete all of these tables, since the Import will re-create them. Scroll down to the bottom of the list and select the "Check All" link. This will select all tables in the list. Then, in the drop-down list to the right of the Check All link, select "Drop", as shown below.
- You will be asked to confirm that you really want to do this (since you are in effect deleting the entire database). Press Yes and you should get a message indicating that the query was successful.
- With the database still selected, press the Import Link at the top of the screen and browse to the location in your DreamHost folder where the .SQL export file was uploaded. Press Open to select the file and then press Go (lower left corner) to start the import. Again, you should get a message indicating that the query was successful.
Congratulations! At this point, your Joomla! website on DreamHost should be operational with the exact same information as your localhost site. If you installed it on a DreamHost subdomain, navigate to that subdomain to see or administer the site. For example, if your subdomain was named "mysubdomain", then navigating to http://www.mysubdomain.mywebsite.com should bring up your home page and http://www.mysubdomain.mywebsite.com/administer should bring up the login to the Joomla! admin area.
From time to time Joomla! releases new versions. As new versions most often contain important security related patches that help prevent your site and the DreamHost server from exploits, it is important to keep your Joomla! installation current. Additionally, newer versions usually provide bug-fixes, increased efficiency, or new functionality. The Goodies control panel includes an upgrade feature under the One Click Installs section that helps you install those upgrades. This section has information on performing such upgrades, and you should upgrade your installation as soon as possible whenever a newer version is made available.
First, be sure that your installation is known to the One-click install system.
- With a browser, go to the Control Panel. Select Goodies, then One-Click Installs. The One-click installs page appears.
- At the top of the page is a section labelled Upgrade or remove previously installed software: . It contains a table with four columns. Your Joomla! site should be one row of this table. Under URL/DB is the URL of your site and your MySQL database name. Under Software is joomla. Under Last Updated is the date you last installed or updated Joomla. Under Action are two links, [Upgrade to x.y.z] and [Remove]. The version number on the Upgrade link will be the current version number that DreamHost supports.
- If your Joomla! site is not listed there, and it was originally installed by the one-click system and has not been moved, make a support request to have it added. The support team will ask you for some data about your installation and then they may be able to add it.
Now, be sure to back up your site. The Backup MySQL article tells how to back up the contents of your database. You don't need to do anything to back up the files in your Joomla! installation. Dreamhost's automated domain snapshots will back them up. Also, the one-click upgrade tool will copy your domain directory to a backup location.
Now, perform the upgrade.
- Click the [Upgrade to x.y.z].
- A confirmation dialog appears. Click the button to confirm.
- A result message appears:
We will be upgrading your joomla install at http://www.domain.com/ within the next 5-10 minutes!
Your old version will be available at http://www.domain.com.old/ when the upgrade is complete.
You will also receive email notification.
Keep in mind any customizations you made with skins or plug-ins you added *may* need to be re-applied to the new version.
Thanks, The Happy DreamHost 1-Click Robot!
- Wait 5-10 minutes. The happy DreamHost robots are upgrading your site domain.com, and leaving a copy of the original domain files in directory domain.com.old.
- If you want, you can use the shell to confirm what files changed. The following diff command goes recursively through the original and upgraded domain directories, alerting you to any files that changed, ignoring whitespace. (The file CHANGELOG.php is excluded because it will have so many changes it overwhelms the output.)
diff -rb -x CHANGELOG.php mydomain.com mydomain.com.old | more
- The updated directory will have an installation/ directory again. Delete this. If you wish, archive it just as you did during the installation procedure. You can use FTP, connect to your site and remove the "installation" directory. Or, SSH to the installation directory, and delete it with a command like cd example.com, followed by rm -rf installation/.
- If (like the author) you are neurotic about archiving everything before deleting it, consider the following. Use ssh to login to your DreamHost user directory. Use command tar -zcvf joomla_installation.tar.gz example.com/installation/ to make a zipped tarball of the installation directory. A list of filenames put in the archive appears. Use command tar tzf joomla_installation.tar.gz to list the filenames actually in the archive. Confirm these match the list of filenames in the installation/ directory. Then delete the installation/ directory.
- Note: if your Joomla! installation is multilingual or uses UTF-8, you may need to re-apply patches to language/english.php and includes/database.php. See the installation instructions for these patches.
- Note: if your Joomla! installation uses a UI language other than English, you may need to update the languages (UI translation packs) to match the new version of Joomla! It is common for an updated version of Joomla! to have more UI strings to translate, or for the strings to change. To update a language, you must:
- download updated language packs from the "translations" area of extensions.joomla.org
- if you use UTF8 on your site, convert the .php files in the language packs to use UTF-8 encoding and change their _ISO definition to say "utf-8", while leaving the xml file in its original encoding; then repackage them into .zip archives
- take your site offline
- delete the existing languages, using Site -> Language Manager -> Site Languages, selecting a language, and pushing the Delete button
- install the updated language, using Installers -> Languages
- put the site back online
- Test your site, to be sure it still works.
Use and Troubleshoot Joomla!
The Joomla! documentation is at help.joomla.org. This includes a manual for administrators and a manual for users. If you have suggestions for improving their documentation, many pages offer a link which accepts them.
See Joomla/Mambo Troubleshooting for troubleshooting advice.
Issues with Dreamhost's PHP configuration
Though DreamHost's magic_quotes_gpc PHP settings won't cause any problems for installation or normal operation, it may cause trouble if, like many longtime LAMP developers, you attempt to convert a phpBB forum to a JoomlaBoard forum. The scripts (current as of 03/2007) that have been developed to perform this conversion require magic_quotes_gpc in order to function. Why? Because you certainly don't want errant quotes to screw up conversion or the database. Therefore, you may have an issue with this setting. That said, the magic_quotes_gpc setting in DreamHost's PHP environments do not present a "security" risk, making this warning potentially misleading.
If you have installed Joomla for a client, they may question whether there is a security issue, due to Joomla's prominent warnings in the Administration interface. This might appear unprofessional, and could be considered undesirable in a business environment, so you you may want to consider suppressing this message.
In Joomla! 1.0 versions (versions 1.0.13 and above) You can suppress the display if the "Security Warning Message" by editing the Admin Module "Quick Icons" (Modules -> Administrator Modules -> Quick Icons), and setting the "Security Warning" parameter to "Hide". This will suppress the warning display in the Administration interface screens (though they will still be present when a Super Admin is viewing/editing Global Configuration settings). This message is not displayed in Joomla! version 1.5.
- www.joomla.org - main Joomla web site.
- Joomla/Mambo Troubleshooting
- User:JimDeLaHunt is writing a diary of his experiences setting up a Joomla! site on Dreamhost.
- Drupal, another content management system (CMS) in use at DreamHost
- extensions.joomla.org - DreamHost Manager : a Joomla extension to manage your DH account.