B
Installing Joomla!
Installing Joomla! is essentially a three-step process: 1) unpack the Joomla! installation package and upload the files to your server; 2) set up your database server, and 3) run the Joomla! installer. You can install Joomla! on any Windows or Linux computer running Apache or Microsoft Internet Information Server (IIS), PHP, and MySQL. In this appendix, you learn how to install Joomla! locally and how to install it remotely in a shared hosting environment. You also learn how to move an entire Joomla! installation from one server to another without rebuilding your site from scratch.
The first section in this chapter covers the basic requirements of a web server for installing Joomla! and where to find installation packages to set up a local web server on your home or office computer. It then covers installing a web server on your system and installing Joomla! on that web server.
The next section covers what to look for in a web host. It then covers how to install Joomla! on a web server in a shared hosting environment with cPanel.
Finally, this chapter covers the process by which you can copy an entire Joomla! installation from one server to another or from your local system to your remote hosting environment.
Setting Up a Local Web Server on Your Home or Office Computer
Joomla! 1.5 can be installed on web servers that meet the following minimum requirements:
• Apache 1.3 or above or Microsoft IIS (Apache 2.2 or above is optimal)
• PHP 4.3.10 or above (PHP 5.x or above is optimal)
• MySQL 3.23.x or above (MySQL 5.x is optimal)
Fortunately, these minimum requirements are easy to find and easy to set up. Several installation packages are freely available with which you can install and set up a web server on your home or office computer. In this section, you learn where to find these installation packages and how to install a web server on your computer for the purpose of installing Joomla! on your home or office computer as a test environment.
Local Web Servers
Four main options are available for installing a local web server on your home or office computer:
• XAMPP is a distribution of the Apache web server that contains MySQL, PHP, and Perl. XAMPP can be installed on Linux, Windows, Mac OSX, or Solaris, and it is free. You can download the installation package at
http://www.apachefriends.org/en/xampp.html and easily install on your Windows PC. XAMPP is not intended for use on a "live" site and should be used only for testing purposes. For this section, you will be installing XAMPP on Windows Vista.
• WAMP is another distribution of the Apache web server that contains MySQL and PHP. WAMP is available only for Windows PCs, so it is not as versatile as XAMPP. This is a popular choice for setting up an Apache server as a test environment, but should also not be used for a "live" site. You can download WAMP for free at
http://www.wampserver.com/en/.
• MAMP is the Mac OSX-compatible distribution of Apache with MySQL and PHP. You can download MAMP at
http://www.mamp.info.
• JSAS is an acronym that stands for "Joomla! Stand Alone Server," and it is a complete Apache web server distribution with MySQL and PHP. It also comes with Joomla! pre-installed. However, it is not freely available, and according to its own changelog found at
http://www.jsasonline.com/jsas-changelog.html it is not regularly updated. You can find JSAS at
http://www.jsasonline.com/.
Downloading XAMPP
To download XAMPP for Windows, go to
http://www.apachefriends.org/en/xampp-windows.htmland download the installer to your desktop. Several download options are available on this page, but you only want to download the installer for the basic package.
Installing XAMPP
1. Once you have successfully downloaded the XAMPP installer, it is time to install it on your system. First, double-click the setup file to activate the installer.
2. After you click Allow on Vista’s User Access Control, you will be prompted to select your language like in
Figure B-1.
3. Next, you will see the warning shown in
Figure B-2 that states that due to permissions issues in Windows Vista, XAMPP must be installed in a directory other than the Program Files directory. Simply click OK to proceed to the next step.
4. Next, you should be in the XAMPP Setup Wizard shown in
Figure B-3. Click Next to continue.
5. On the next screen, shown in
Figure B-4, you will be prompted to choose an installation location. I have chosen to install XAMPP at c:\xampp, because that is the default location set by the installer. You can install XAMPP anywhere on your system, but the default location will suffice for testing purposes. Choose your location and click Next.
6. On the XAMPP Options screen shown in
Figure B-5, simply click Install to proceed with the installation.
7. On the next screen shown in
Figure B-6, click Finish to complete the installation of XAMPP on your system.
Running and Configuring XAMPP
Once you have successfully installed XAMPP, you will be given an option to launch the server.
1. Click Yes to launch the server, or click No and then launch XAMPP by clicking the shortcut on your desktop. You will then see the XAMPP control panel like in
Figure B-7.
2. Within the control panel, you can start the necessary parts of the server for installing Joomla!.
Click the Start buttons next to Apache and MySQL to launch the web server and the database server.
3. Once the Web server and the database server are running, you can access your server through your web browser by visiting http://localhost/. You will then be automatically redirected to http://localhost/xampp/, which gives you access to server tools like phpMyAdmin.
The root of your web server is located at c:\xampp\htdocs\. You install Joomla! 1.5 in a subdirectory at c:\xampp\htdocs\j15\, which you will then be able to access at http://localhost/j15/.
Installing Joomla! on Your Local Server
Once you have downloaded the Joomla! installation package from JoomlaCode.org, installing Joomla! can be broken down into three steps: 1) unpack the Joomla! installation package and upload the files to your server; 2) set up your database server; and 3) run the Joomla! installer.
Unpack and Upload
The first step in the process is to unpack and upload the Joomla! files to your server. In this case, because the server is your home or office computer, you can simply unpack the files and move them to the proper directory. With a site hosted remotely on a server, you would normally upload these files using an FTP client, which you learn about later in this appendix.
1. Create the directory where the test site will be stored. For this example, create a directory at c:\xampp\htdocs\j15\.
2. Unpack the Joomla! installation package to the directory you just created. I am installing version 1.5.6, so my installation package is Joomla_1.5.6-Stable-Full_Package.zip. Several tools are available for unpacking zip files, and you can use whichever one you prefer. I am using ALZip from
http://www.altools.com/.
3. Within the directory c:\xampp\htdocs\j15\, you should now have the following file structure:
• administrator/
• cache/
• components/
• images/
• includes/
• installation/
• language/
• libraries/
• logs/
• media/
• modules/
• plugins/
• templates/
• tmp/
• xmlrpc/
• CHANGELOG.php
• configuration.php-dist
• COPYRIGHT.php
• CREDITS.php
• htaccess.txt
• index.php
• index2.php
• INSTALL.php
• LICENSE.php
• LICENSES.php
• robots.txt
Now that the files are unpacked and uploaded to the server, you are ready to set up the database.
Setting Up the Database
XAMPP comes with a version of phpMyAdmin pre-installed. phpMyAdmin is the leading web-based system for managing MySQL databases; it is a very useful tool for setting up a database on your local server.
1. Open your web browser, and browse to http://localhost/xampp/. You will then be prompted to select a language. Select your language, and then you will be redirected to the XAMPP control panel.
2. In the left column Tools menu, click phpMyAdmin to launch the database manager.
Figure B-8 shows the phpMyAdmin home screen. In the middle of the page, there is an option to create a database. In the first box, set the name of the database to j15. In the Collation drop-down, select utf8_bin, because this is the standard that Joomla! uses. Then, click Create to create the database.
3. Next click the home icon in the top-left corner of the page under the phpMyAdmin logo. This returns you to the phpMyAdmin home page so that you can set up a database user. Seven links below the Create new database form you just used is a Privileges link. Click that link to manage the privileges for the database on the screen in
Figure B-9.
4. In the middle of the page, click the Add a New User link to add a new user to your database.
On the next screen enter the following settings:
• Username: Select Use Text Field from the drop-down box, and enter j15 in the text box.
• Host: Select Local from the drop-down box, and localhost should automatically be entered into the text box.
• Password: Select Use Text Field from the drop-down box, and enter j15 in the text box.
• Re-type: Enter j15 in the text box.
• Generate Password: Ignore this.
• Database for User: Select Grant All Privileges on Wildcard Name (username\_%).
• Global Privileges: Click Check All to grant all privileges to this user.
5. Once you have entered your user information, scroll down to the bottom of the page and click Go.
You now have a database and a user with all privileges on that database. The key pieces insert of information you need to take from this process to the next are host (localhost), database name (j15), username (j15), and password (j15). Note that I used j15 for the database name, username, and password for the sake of keeping it simple. In a live site environment, you will want to choose a more descriptive database name and a more secure username and password. The next step is to run the Joomla! installer.
Running the Joomla! Installer
The installer walks you step-by-step through the process of installing Joomla!. To begin the installation process, open your web browser and navigate to your local web server and the directory to which you loaded your Joomla! files. For this example, the Joomla! files are located at http://localhost/j15/.
1. The first step in
Figure B-10 prompts you to select a language. US English is selected by default. Once you have selected your language, click Next to move on to the next step.
2. The next step in
Figure B-11 is the Pre-installation Check. In this step, Joomla! automatically checks your server’s settings to determine if it meets the minimum requirements and if it has the recommended settings for optimal performance. If any of the requirements listed on the top half of the page say "No," your server does not have the minimum requirements to install Joomla!.

The minimum requirements listed in the Pre-installation Check are:
• PHP Version >= 4.3.10: Most web hosts meet this requirement. If your web host does not meet this requirement, you need to consider switching hosts.
• Zlib Compression Support: Joomla! uses Zlib compression for installing extensions. If your server does not have Zlib Compression support, you cannot use the extension installer.
• XML Support: Joomla! uses XML for extension installation, and for managing extension parameters.
• MySQL Support: Joomla! uses the MySQL database engine to store and retrieve data.
• MB Language is Default: MB stands for multibyte. Multibyte language support allows for supporting languages that use so many characters that they cannot be contained in a single byte like English can.
• MB String Overload Off: MB String Overload is a PHP setting that enables programmers to use standard string functions for handling multibyte strings. Joomla! requires this setting to be off.
•
configuration.php Writable: You can actually go through the installation process if configuration.php is not writable, but it makes installation easier if it is writable.
The bottom half of the screen contains a list of recommended settings. Joomla! will still operate if these settings do not meet its recommendations, but adhering to the recommended settings will ensure that the server is configured optimally for running Joomla!. You should work with your hosting provider to make sure these settings match. In a local testing environment, it is not as important that these settings match. The recommended settings are:
• Safe Mode Off: Safe mode is a setting that limits PHP so that it can only perform actions on files and folders with the same owner as the one PHP uses. This should be turned off so that Joomla! can perform actions on any file or folder with the proper permission settings.
• Display Errors Off: For a live site, you want the PHP display errors setting turned off because if there is a PHP error, you want to be able to control the display of that error. For testing, it actually makes sense to have Display Errors On so that you can debug potential issues in your site.
• File Uploads On: If your server prevents file uploads via HTTP, you cannot use the powerful extension installer built into Joomla!. Other ways exist to install extensions, but the installer makes it so much easier.
• Magic Quotes Runtime Off: Magic Quotes is a setting in PHP that automatically adds slashes to strings to escape quote characters for the purpose of saving the string to a database. The problem with this setting is that it can potentially add slashes to strings where you do not want slashes. Joomla! has built-in libraries for handling strings for saving them to the database, so Magic Quotes is not necessary.
•
Register Globals Off: Having Register Globals on leaves your site open to security vulnerabilities. You can read more about Register Globals at
http://us.php.net/register_globals/. Joomla! has libraries that emulate the Register Globals setting, so it is not necessary.
• Output Buffering Off: Output buffering can enhance performance, but the directive should be set to off and output buffering should be explicitly enabled in the program code.
• Session Auto Start Off: The session auto start directive enables PHP scripts to work with sessions without requiring the script to explicitly start the session. The problem with session auto start is that if it is enabled in PHP, objects in the session classes must be loaded before the session starts. This can cause issues if the objects are not loaded, so Joomla! starts sessions explicitly to maintain control over the session starting process.
3. The third screen in the installation process, shown in
Figure B-12, is the GNU/GPL, the license under which Joomla! is released. You may recall the definition of the GNU/GPL in Chapter 1. Simply click Next to indicate that you agree to the terms of the license and to navigate to the next step in the process.
4. The fourth step is database configuration, as shown in
Figure B-13. For the basic settings, enter the database information you established when setting up the database:
• Database Type: MySQL
• Host Name: localhost
• Username: j15
• Password: j15
• Database Name: j15
For the advanced settings, you can optionally erase or back up existing tables from a previous Joomla! installation in the database. This is also where you set the database table prefix. Click Next on this screen to remove or back up any existing tables in the database and insert the Joomla! data tables into the database. If your database settings are incorrect, the installer will display an error message.
5. The fifth step in the installation process is FTP configuration, as shown in
Figure B-14. The FTP layer in Joomla! enables file manipulation on the server through the browser when permissions restrictions might otherwise prevent file manipulation. The FTP layer is optional, and you do not need FTP for your local environment, so leave this blank for now. In the section that covers installation in a shared hosting environment, you learn how to obtain your FTP information for setting up this layer.
6. The sixth step is configuration. In this step, you can set the name of your site and the administrator e-mail and password (the administrator username is "admin" by default) as shown in
Figure B-15. You can also install default sample data or data migrated from the Joomla! 1.0 installation. To install the default sample data, simply click Install Sample Data.
7. To load the migration data, you must first create a migration script on your Joomla! 1.0 site using the com_migrator component that you can find at
http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,4223/Itemid,35/. Then, select the circle next to Load Migration Script and enter the old table prefix and old site encoding from your previous site. Next, you browse your system for the migration script, check the box labeled "This script is a Joomla! 1.0 migration script" in
Figure B-16, and click Upload and Execute.
8. The final screen in the installer, as shown in
Figure B-17, contains a reminder that you must remove the installation directory before you can run Joomla!. To do this on your local system, navigate to c:\xampp\htdocs\j15\ using Windows Explorer, and delete the directory named installation. Once you have removed the installation directory, you have successfully installed Joomla! on your home or office computer. You are now ready to install Joomla! in a shared hosting environment.
9. Now that you have installed Joomla!, click the Site button in
Figure B-17 to visit your new installation and enjoy the satisfaction of knowing that you have just successfully installed Joomla!.
Installing Joomla! in a Shared Hosting Environment
Unless you host your site with your own server, you will likely use one of three types of hosting configurations: shared hosting, virtual private server (VPS) hosting, and dedicated server hosting. Shared hosting is the most affordable configuration and is one in which many websites are hosted on the same server. You usually do not have root access to the server, but your hosting company gives you FTP access and a web-based control panel with which you can manage files, databases, e-mail addresses, and other items associated with hosting a website.
The next level up from shared hosting, both in terms of price and options, is VPS hosting. In this configuration, the server resources are still technically shared by multiple sites, but you typically have fewer sites per server. Another feature of VPS hosting is that you have root access to your piece of the server, so you have more control over the configuration and the resources allocated to your account.
Dedicated server hosting is the most expensive option, but you get an entire server dedicated to your site’s needs. You do not have to share server resources with other sites on the server, and usually you have root access to the server. With root access, you have complete control over of the configuration of your server.
Because shared hosting is the most affordable option, shared hosting environments are the most common setups for running Joomla!-powered websites. Web hosting companies that offer shared hosting are ubiquitous on the Internet, so it is important to know what to look for in a web host. This section covers how to install Joomla! in a shared hosting environment with cPanel.
What to Look for in a Web Host
One of the first things people often look for when seeking a web hosting provider is price. Price is important because it affects the bottom line, but I’ve always believed in the old adage that "you get what you pay for." Some really good hosting providers out there offer high-quality shared hosting for a low price, but you need to know what to look for and the right questions to ask when you are looking for a web host. Besides meeting the basic minimum requirements for Joomla! as discussed earlier in this chapter, research the following four qualities in addition to price:

• Bandwidth: Bandwidth is a measure of the amount of data that can be passed to and from your hosting account per month. If you anticipate a lot of traffic to your site, or if you plan on streaming media such as videos or audio directly from your server, you need to make this number as high as possible. If you are building a site to share information with the Little League baseball team you are coaching, bandwidth is probably not a huge concern. You can find affordable hosting that offers at least 1 terabyte (1,000 gigabytes) of bandwidth.
• Storage: A single installation of Joomla! requires less than 10 megabytes, and most hosts offer more than 100 megabytes of storage. The question of how much storage you need really comes down to the type of site you are building. If you plan on hosting a large number of pictures, videos, or audio files, you will need a lot of storage. If you’re that Little League coach, you probably won’t need a lot of storage space. Get as much storage as you think you need, and make sure your hosting provider can easily upgrade your storage without significantly disrupting your site.
• Reliability: Uptime is the most commonly used measure of reliability. Uptime is the measure of the percentage of time that your site can be accessed. Look for a host with a service level agreement (SLA) that offers refunds for downtime, so that you can feel assured that your site will be up at least 99% of the time.
• Support: Most web hosts promise great reliability, but the reality is that things happen. Servers go down. Networks go down. A couple of years ago, a car accident caused a power line to go down in Dallas bringing down the data center of a top-tier web host for several hours. This outage affected several high-profile sites, which undoubtedly spend thousands of dollars a month for hosting. You never know what could happen, so you want to know that your host will be there to solve unforeseen issues. Try and find out if your hosting provider offers 24/7 telephone or e-mail support, and look for existing customers to see if they have been satisfied with the support they have received.
Another important consideration is how easy it is to manage your account. Most hosting companies offer management tools like cPanel or Plesk, which make managing your hosting account easy with a web-based interface for managing files, databases, e-mail accounts, and so forth on your account. In the next section, you learn how to set up your database using cPanel.
Setting Up Your Database with cPanel
cPanel is one of the most popular tools used by hosting companies to give customers control of their hosting accounts. With most hosting companies, cPanel is available for shared, VPS, and dedicated hosting accounts. In this section, you learn how to use cPanel to set up a database for use on your site.
Try It Out Setting Up Your Database with cPanel
cPanel enables you to control almost every aspect of your account. To use it to set up a database on your site, follow these steps:
1. Log in to your cPanel account and scroll down and click the "MySQL Databases" link as shown in
Figure B-18. Different hosts use different themes or skins for their cPanel implementation, so the appearance might be different from what is shown in
Figure B-18, and the link might be in a different location.
2. The next page is the MySQL Account Maintenance page, as shown in
Figure B-19. Notice that this server already has a database installed named example_blog. This hosting service allows unlimited MySQL databases, so the Joomla! database will be a separate database. You could just use a pre-existing database to install Joomla!, and it will not interfere with the data that is already there. The best practice is to put each installation of Joomla! on its own database unless you have a reason not to.
3. To create the database, you simply need to give it a name. Enter the name of your database into the New Database box, and click Create Database. Because the sample site for this book is a wedding site, the name used here is "weddingsite." Because the server is in a shared hosting environment, other sites are using the same MySQL database server, so cPanel automatically prefixes the database name with a name unique to your hosting account. In this case, the resulting name will be example_weddingsite. Remember this name because you will need it for the Joomla! installer.
4. The next step is to create a user for the database. Go back to the MySQL Account Maintenance page and scroll down to Current Users. Enter a username and a password for the database user, and click Create User. For the sample site, the database user will be wedding, and the password will be 12345, but you should try to come up with a better password than this. As with the database name, the username will be given a prefix to keep it from using the same username as someone else on the server. In this case, the username becomes example_wedding, and the password remains 12345. Remember this information because you will need it for the Joomla! installer.
5. Now that your database and user are created, you need to give the user account all access to the database. Go back to the MySQL Account Maintenance page and scroll down to Add Users To Your Databases. Select example_wedding from the User drop-down list, and select example _weddingsite from the Database drop-down list. Make sure All is checked under Privileges and click Add User to Database. You now have a database named example_weddingsite and a user account named example_wedding with the password 12345 and are ready to unpack and upload your Joomla! files to the server.

Unpack and Upload
If you have not already done so, you should unpack your Joomla! installation package as you learned in the first section of this chapter. Unlike uploading your files to your local computer, uploading to a remote server requires the use of FTP, or File Transfer Protocol. Your host should come equipped with FTP server capabilities, and you should have an FTP user account from your host. The only thing missing is an FTP client, which is software you load on your computer to access an FTP server.
Several options exist for FTP clients, but my favorite is an open source application called FileZilla, which you can download at
http://filezilla-project.org/. Once you have downloaded and installed FileZilla, you need to enter your FTP information including the host server (usually your domain name without the "www"; for example, example.com), your FTP username, and your FTP password.
Using FileZilla, upload all of the files from your unpacked Joomla! installation package to the directory where you wish to install Joomla! (for example, example.com/joomla/). For the test site, Joomla! will be installed in the root web directory, usually public_html or www on your server. Depending on the speed of your Internet connection, allow several minutes for the upload because there are more than 3,000 files in the Joomla! installation package. Once all of the Joomla! files are uploaded to your server, you are ready to run the Joomla! installer.
Running the Joomla! Installer
To run the Joomla! installer, open your web browser and navigate to the directory where you uploaded the Joomla! files. If the site is in the root directory like the example site, simply navigate to the root of your site by entering your domain name into the address bar. You will automatically be redirected to the installer.
Running the installer in a shared hosting environment is exactly the same as running it on your local system, but a couple of minor differences for the example site should be pointed out here.
First, the database configuration details are different. For the local test server, the database name, username, and password were j15. For the example site on the hosted server, the database name is example _weddingsite, the username is example_wedding, and the password is 12345.
Second, now that there is an FTP server, you can enable the FTP layer in Joomla!, as shown earlier in
Figure B-15. Enabling this layer is optional, but to do so, you simply check Yes next to Enable FTP System
Layer; enter your FTP username and password; click Autofind FTP Path and Verify FTP Settings; and click Next. You need to modify the advanced settings on this screen only if your FTP server host or port number is anything other than what the normal default would be. Note that your host defaults to 127.0.0.1, which is the localhost. This is different from what you entered into FileZilla because PHP is accessing the FTP server from within the host server, whereas FileZilla is accessing the FTP server from outside the host server.
Finally, on the Main Configuration screen shown earlier in
Figure B-16, the site name is different and the sample data will not be installed. The site name will be Local Wedding Website, to go along with the subject of the example site. The sample data is not installed this time because it can become a hindrance when trying to set up your site. You will spend more time removing sample data to make room for your own data, and it really slows your progress.
Now that you know how to install Joomla! on a local server on your home or office computer and on a shared web hosting account, you can learn how to move an entire Joomla! site from one server to another, or from your local server to a hosted server.
Moving Your Joomla! Installation from One Server to Another
Things happen. Plans change. Websites outgrow current servers and need new servers. Hosting companies provide poor service, prompting a web master to decide to change servers. Or you might develop your site on a local development or test server before launching it, and you need to move it to your live server. Whatever the reason, you might need to move your Joomla! installation from one server to another.
If you’ve been running a website for a while, you have probably already accumulated quite a bit of content and several third-party components and/or modules, and you do not want to start fresh with a new Joomla! installation. This section explains the process of moving your entire site — files, database, and all — from one server to another. An important thing to understand about Joomla! 1.5 is that an installation can reside on any domain with only a few minor changes to the global configuration. This section covers the necessary changes that you must make to the configuration for Joomla! to run on a different server and different domain.
Why not create a fresh installation?
In many cases, creating a fresh installation of Joomla! makes sense. For instance, if your site has relatively few articles and only a handful of third-party extensions, you might consider installing Joomla! and simply rebuilding the site. However, if you fit into one of the following categories, you will want to consider moving your entire site:
• Your site has accumulated a large amount of data in the database over time (sections, categories, content items, contacts, news feeds, and so on).
• Your site uses multiple third-party extensions already configured and/or customized for your site.
• You have a development server and a live server, and you want to have an exact copy of the site on both servers.
• You just feel like trying it out to see if you can do it.
Try It Out Moving Your Joomla! Installation from One Server to Another
Moving your Joomla! installation comes down to six steps:
1. Check server settings: Compare the server settings of your current host to the settings on the new host to make sure that your new server is compatible with Joomla! and the extensions you have already installed.
2. Back up everything: This includes all Joomla! files, third-party component files, and any other files that you have added to your site such as images, videos, and so on. Create a folder on your local system, and download all files to that folder using your FTP client application.
3.
Export your database: The third thing you need to do is export your Joomla! database. The best thing to do is to export it into an SQL file, which makes importing it easier in a later step. The SQL file will contain all of the necessary SQL commands for creating your database tables and filling them with your data. Be sure you export the entire database.
Using phpMyAdmin on both servers makes this step easier, because it offers the ability export your entire database to an SQL file. It also makes importing your files easier in step 5.
4.
Modify configuration.php: Every Joomla! installation has a configuration file in its root directory called configuration.php. This file stores basic configuration information that Joomla! uses throughout the system. Most of the parameters in the file will stay the same, but some will change due to the different settings on the two servers:
• $host: This value is the database host. In most cases, this will be "localhost," but if you are using a different server for your database, you will need to change this.
• $user: This is the database user. Change this if it is different from the user on your other server.
• $password: This is the database user’s password.
• $db: This is the database name.
• $ftp_host: In most cases, the FTP host will be "127.0.0.1", but if you are using a different setting you will change it here.
• $ftp_port: In most cases, the FTP port will be "21," but if your server uses a different port you will change it here.
• $ftp_user: This is your FTP username.
• $ftp_pass: This is your FTP password.
• $ftp_root: This is the root path to which your FTP user has access.
• $tmp_path: This is the absolute path to the tmp directory on your server. It will probably look something like "/path/to/joomla/installation/tmp."
• $log_path: This is the absolute path to the logs directory on your server. It will probably look something like "/path/to/joomla/installation/logs."
• $offset: This is the time zone offset for your server. For example, if your company is in one time zone, but your server is in a time zone two hours ahead, you will need to see this to "-2."
• $sendmail: This is the path to the sendmail program on your server. If you are not using sendmail, you can ignore this.
• $smtpuser: This is the username for your SMTP server. If you are not using your SMTP server for sending e-mails from your site, you can ignore this.
• $smtppass: This is the password for your SMTP server. If you are not using your SMTP server for sending e-mails from your site, you can ignore this.
• $smtphost: This is the host name or IP address for your SMTP server. If you are not using your SMTP server for sending e-mails from your site, you can ignore this.
5. Upload all of your files to the other server: Using an FTP client application (like FileZilla), upload all of your files to the location on your new server where you want to install Joomla!.
6. Import your database to the new MySQL database: Using phpMyAdmin (or console commands if you are an advanced database administrator) and the SQL file you generated in step 2, import your old database into your new database.
7. Test your new installation: Your move should now be complete, but please don’t take my word for it. Test your site to make sure that everything is in its proper place and working the way you expect it to. For example, if you did not use relative URLs for your links on your old server, they may not work properly on your new server.

Summary
In this chapter you learned how to set up a web server on your home or office computer and install Joomla! on that server. You also learned what to look for in a web host, and how to install Joomla! in a shared hosting environment. Installing Joomla! boils down to three basic steps:
1. Unpack and upload.
2. Set up the database.
3. Run the Joomla! installer.
Finally, you learned the six steps to moving your Joomla! installation from one server to another.
Work through the following exercises to test your understanding of the Joomla! installation process. You can find the solutions to these exercises in Appendix A.
Exercises
1. What is your favorite color?
2. List two packages you could use to install a web server on your home or office computer.
3. What four pieces of information do you need about your database before you can install Joomla!?
4. List two reasons listed in this chapter why you might want to consider moving your entire installation from one server to another rather than start with a fresh installation of Joomla!. Can you think of any other possible reasons?