# Installation

You don't have to be a web developer or programmer to install Tiki. Tiki has an easy-to-use, wizard-based installer which will do most of the work for you. The rest can be completed from your webhost's control panel. You can also use 1-click installers.

If you are a complete novice (or are just not into DIY = do it yourself ) consider using Tiki friendly hosts. Many will complete your Tiki setup you free of charge.

# Overview

These videos offer an basic overview of Tiki installation. See Tiki TV and Tiki Movies for additional videos.

Basic overview in Tiki 3: Profiles
This new installer and the application of the new set of Profiles is new in Tiki3, and you can have a quick look at it in the following screencast:

Applying the configuration profile "Bug_Tracker"

# Step-by-step installation

## Before you begin

Before installing Tiki, read the Requirements and Setup information and use the Server Check tool. Proper planning can ensure a worry-free installation. If you need a webhost for your Tiki, refer to the list of Tiki Friendly Hosts.

These instructions are intentionally generic, and should apply to most shared host installations. See Installation Guides for instructions for specific combination of operating system and web servers.

### Prerequisites

This guide assumes you have:

• FTP or SSH (shell) access to a webserver (such as Apache) with PHP5
• Typically, you upload the files via a FTP client such as WinSCP or FileZilla.

## 1.1. Create the database

Tiki requires a MySQL database.

Many hosts offer a point & click interface to create databases and database users. For example, if your web host has cPanel you probably can see phpMyAdmin in the main menu or a the section labeled Databases.

Creating a database (and a database user) is a very simple operation. Essentially you will create a blank (empty) database that the Tiki installer will later populate with the correct tables and data.

#### The Three steps of database setup

1. Create a database.
• You can name the database anything you want, but don't get fancy with the name — you can use tiki. Depending on your web host, your full database in phpMyAdmin may be listed as accountname_tiki.
Note: By default, Tiki uses UTF-8 for your database encoding. We strongly encourage you to select "utf8" in the "collation" drop-down box in phpmyadmin (or similar), in the field shown in the following image:

If you select a different encoding method, you may need to manually update your ../db/local.php file.
Tip: If you plan on having multiple Tiki installations, don't use tiki as the database name.
• Be sure to record the database name, you will need it later.
2. Create a database user (with password).
• Again, don't get fancy with the database username. In fact, you can use the same name that you selected for the database (in step 1).
• Be sure to record the username and password. You will need it later.
3. Assign all database permissions to the database user that you created (in step 2).

Congratulations. You now have a database that is ready to use, as well a a database user (and password) with the necessary permissions.

## 1.2. Install Tiki directly from the SVN repository

This method requires a. a server with shell (command line) access and b. a running SVN instance on this server.

For the SVN part please have a look at the page Get Code on dev.tiki.org. On this page and if necessary aswell on the related pages, you find notes about the SVN commands and the particular paths you need to use in the command line to automatically checkout or update the right Tiki version into the intended installation directory (= tikiroot folder).

Example for a fresh checkout (recommended also for major upgrades)

Method 1
Checking out to a new folder (that you will specify)

$svn checkout https://svn.code.sf.net/p/tikiwiki/code/branches/15.x mynewfolder Method 2 Checking out to the current folder (when you created the intended tikiroot already and changed into this directory prior to the checkout):$ svn checkout https://svn.code.sf.net/p/tikiwiki/code/branches/15.x .

Example for a minor update:

Do not forget to switch into the tikiroot of the Tiki you want to update

$svn up You now have to run the composer! The composer automatically downloads and installs the so called 'vendor files' from external sources. Vendor files are external scripts and libraries, which we do not manage in our own repository. Examples of those vendor files are the Bootstrap code, the jQuery library, Tablesorter, Elfinder etc.. Usually (= on most servers) you additionally have to fix certain file permissions. Both can be accomplished by simply answering a number of questions after starting the setup.sh script in the shell (= command line). This procedure is quite self-explaining. Just follow the instructions of the script. Start setup.sh, (in the tikiroot)::$ sh setup.sh

For more information on using setup.sh see also the section 1.4.1 Troubleshooting below or run sh setup.sh -h. In this section we treat only Composer part, which is only applicable when you use an installation from the repository.

To start Composer you have to use the option "c" after starting the setup.sh script:

$sh setup.sh Your choice [c or f]? c FAQ: On my server the composer script is not starting. What can I do, when I get the following error message? Wrong PHP version: phpABC < required PHP version. A version >= phpXYZ is necessary. The problem is, that many shared hosting providers keep the setting of the default local PHP version of the shell (command-line) to an outdated PHP version which does not match the PHP requirements of Tiki or of the composer. Alternativ PHP settings in the .htaccess or in the php.ini file or in the user.ini file have no effect to the PHP version in the shell (command line). However most of these servers have newer PHP versions available in the shell (command line), which can be used alternatively. For Tiki 16, likely soon backported to Tiki 15, an option is provided that allows composer to be run with an alternative up-to-date PHP version, given that one is available on the particular server. Another issue to be addressed is that providers have different naming conventions regarding how to distinguish their available PHP versions. To address this issue, the option "-p" is implemented for the setup.sh script to provide the option to manually change the PHP version used by the script:$ sh setup.sh -p PHPVERSION

In a first step, the setup.sh script automatically guesses three typically used namings of up-to-date versions, commonly used on many servers and uses the first one that matches:

php55 php5.5 php5.5-cli

If the script finds one of these, you should get the following message prior to an autostarting composer:

Wrong PHP version: phpABC < required PHP version.  A version >= phpXYZ is necessary.
Searching for typically named alternative PHP version ...
... correct PHP version phpDEF detected and used
Local PHP version >= required PHP version XYZ - good

Installing dependencies from lock file
(...)

Now you are done. Problem solved.

But if none of these options work out, you will get the following error message:

Wrong PHP version: phpABC < required PHP version.  A version >= phpXYZ is necessary.
Searching for typically named alternative PHP version ...
... no alternative php version found.
Please provide an alternative PHP version with the -p option.
Example: sh setup.sh -p phpXYZ.
You can use the command-line command 'php[TAB][TAB]' to find out available versions.

This should be self-explanatory. You simply have to use the php command in the shell, followed by twice typing the TAB key without any space or other key and then the Enter. Then the shell (command line) will provide a list of the available PHP versions which you can use (obviously using the naming convention used on the particular server):

Example:

$php[TAB][TAB] php php-53 php-54 php-55 php-56 php-70 How to use this information: Given the required PHP version would be php 5.5, but your provider uses php 5.3 by default, you simply need to type the following command to start setup.sh with the right PHP version for the composer (in this particular case php-55) ...$ sh setup.sh -p php-55

Then setup.sh will start composer with php 5.5 after the following message:

Wrong PHP version: phpABC < required PHP version.  A version >= php55 is necessary.
Searching for typically named alternative PHP version ...
... correct PHP version php55 detected and used
Local PHP version >= required PHP version 55 - good

If you know a newer version of php is installed but it is not found by the TAB method above, it means it is not in your PATH environment variable. If you can find its location, you can use the -p option with a full path like:

$sh setup.sh -p /opt/rh/rh-php70/root/bin/php Your choice [c]? c Now you need only to follow the setup.sh dialog to fix directory permissions (option f is reasonably secure works on most average servers. If you need a more secure setting or if your server needed a less restrictive setting (better change the server then), you can use another option. To find out which permission option is best n your server, you can use Permission Check. You are done now and can go to your website to run the installer. ## 1.3. Install a Tiki release file ### 1.3.1. Download and unzip Download the current version of Tiki to your local computer from http://tiki.org/download. Download page at tiki.org The full Tiki archive file download is 20-50MB depending on the version and compression (zip, bz2, etc,). After downloading the Tiki archive file, decompress (unzip) the file to your local PC. #### 1.3.1.1. Upload to your webhost Use FTP (or SCP, SFTP, Rsync, SSH, etc) to connect to your webhost. Once connected, find your web directory. It is often called www or public_html. Note: This directory name may vary, depending on your webhost. Upload all the Tiki files from your PC to you webhost. • If you upload the Tiki files to the root of your web directory, Tiki will be accessible directly from the URL: http://example.org • If you have installed (or plan to install) other applications on your webhost, you may consider putting Tiki in its own subdirectory (for example: http://example.org/tiki/). Keep in mind that this might mean that you will have to manually edit the file .htaccess to activate the Tiki subdirectory (for example this "RewriteRule ^(.+)$ /tiki-index.php?page=$1 [QSA,L]" might need to become this "RewriteRule ^(.+)$ /tiki/tiki-index.php?page=$1 [QSA,L]") #### 1.3.1.2. Example 1: Installation with lftp lftp -u username ftp.example.com lcd /path/to/local/tiki cd /path/to/web/tiki set ftp:ssl-allow no mirror -R ./ A ftp testing upload session to an external webhoster needed approximately two hours, and the limitation was the provider's setting. The local internet connection was not saturated. Time for more coffee? #### 1.3.1.3. Example 2: installation with shell access Run setup.sh to set permissions on the directories. The defaults should do. /var/www/tiki# sh setup.sh ## 1.4. Go to your website and run the installer Open your web browser and access the web directory in which you copied the Tiki files (for example: http://example.org/tiki/ or simply http://example.org if you copied Tiki to the root of your web directory. After a fresh installaton, the installer starts automatically. Tiki will switch to the URL yoursite.tld/path/to/tikiroot/tiki-install.php or yoursite.tld/tiki-install.php . After a minor update (for ex via the command line using "svn up") you will have to type in the url manually to the address bar of your browser. The Tiki Installer Welcome screen appears. From Tiki for Dummies Smarties The Tiki Installer Welcome screen appears. From Tiki for Dummies Smarties The Tiki Installer Welcome screen appears. From Tiki for Dummies Smarties The Tiki Installer Welcome screen appears. From Tiki for Dummies Smarties The Tiki Installer Welcome screen appears. From Tiki for Dummies Smarties The Tiki Installer Welcome screen appears. From Tiki for Dummies Smarties You should see a message indicating that Tiki could not connect to the database and prompting you to run the Tiki installer (tiki-install.php). This message is normal and indicates that you are ready to install Tiki. The Tiki Installer includes important links to the ReleaseNotes and Documentation. Be sure to review these documents before installing Tiki. ### 1.4.1. Troubleshooting 2012-09: A new Server Check script has been developed that will make everything easier! Just upload a single PHP file to your server and you will get advice on your server configuration. If your browser returns an error such as Parse error: syntax error, unexpected T_STRING, you may have the incorrect PHP version. Starting with Tiki 3.0, Tiki requires PHP5. Review the _htaccess file included in the Tiki archive file for instructions on activating PHP5. See the Installation FAQs for more help. ### 1.4.2. File and Folder permissions If your server is unhappy with Tiki file and folder permissions (this is dependent on server configuration), you may get an error message or blank pages. These failed attempts are typically in the error log (ask your web host to know where they are as it's different depending of your setup) Too few permissions If a message appears indicating that specific directories are not writable, you will need to change the permissions on the indicated directories. Tiki will attempt to verify that it can read (and write) to all necessary directories. This error message will include instructions about how to resolve the issue. Too many permissions If you are getting Internal Server Error 500, blank pages or similar, it could be that the permissions on the files are not appropriate for your webhost. If your permissions are currently at "777", use your FTP client to change the files to "755". If Tiki is installed in a directory, make sure to also change the permission of the folder which contains the tiki files. If you have shell access, you can run: sh setup.sh and answer any questions. If you don't know what to answer, just click "enter" to keep the defaults. root@yourserver:/var/www/tiki# sh setup.sh Tiki setup.sh - your options ============================ Composer: If you are installing via a released Tiki package (zip, tar.gz, tar.bz2, 7z), you can and should skip using Composer. If you are installing and upgrading via SVN, you need to run Composer after 'svn checkout' and 'svn upgrade'. More info at https://dev.tiki.org/Composer c run composer and exit (recommended to be done first) For all Tiki instances (via SVN or via a released package): f fix file & directory permissions (classic default) o open file and directory permissions (classic option) S clear screen predefined Tiki Permission Check models: ---------------------------------------- 1 paranoia 2 paranoia-suphp w suphp workaround 3 sbox W sbox workaround 4 mixed 5 worry 6 moreworry 7 pain 8 morepain 9 risky a insane q quit x exit There are some other commands recommended for advanced users only. More documentation about this: https://doc.tiki.org/Permission+Check Your choice [f]? The option preselected in "Our choice" will initially be "c", to run "composer" script and get the required php dependencies for you. and in a second step, it will suggest "f", to fix file and directory permissions (classic default option). You can choose at any time the letter that best suits your needs, among the options offered. If "sh setup.sh" doesn't work for you, you may try, in your ./tiki/ directory chmod -R 777 ./db ./dump ./img/wiki ./img/wiki_up ./img/trackers ./modules/cache ./temp ./temp/cache ./templates_c ./templates ./styles ./whelp/ Another way is to set permissions for all directories and then set permissions for all files. For example, to set the permissions for all directories to 777 and the permissions for all files to 644, use the following separate commands through shell access: find [YOURDIR] -type d -exec chmod 777 {} \; find [YOURDIR] -type f -exec chmod 644 {} \; After correcting any directory or file permission problems, visit tiki-install.php to continue. ### 1.4.3. SuPHP Problems Systems with SuPHP need permissions 755 at maximum. Group must not be allowed to write. This includes the complete path in the filesystem, not only document root of the webserver. Wrong permissions may lead to 500 Internal Server Error here. On the other hand less permissions (namely 750 without x/execute/subdir entry for webserver) may lead to 403 Forbidden Error. ### 1.4.4. Permission Matrix Several usecases and minimum to maximum permissions you may try if something doesn't work properly. Permissions refer to data directly accessed by the webserver (files included by Tiki itself may and should have less permissions):  Ownershipusername:groupname no SuPHPfiles / subdirectories with SuPHPfiles / subdirectories webserver:webserver 600 - 666 / 700 - 777 ? user:user 604 - 666 / 705 - 777 600 - 644 / 701 - 755 user:webserver 660 - 666 / 770 - 777 ? webserver:user 660 - 666 / 770 - 777 ? #### 1.4.4.1. Option For your consideration find . -type d -exec chmod 755 {} \; ; chmod 755 . ; find . -type f -exec chmod 755 {} \; ; chmod 751 db/local.php #### 1.4.4.2. Option The following commands might be useful. In particular, it might help you use an IDE (PhpStorm), etc: For your consideration$ export PathToTiki="/var/www/tiki"
$export WebServerOwner="www-data"$ sudo usermod -aG ${WebServerOwner}$(whoami)
$sudo chown -R${WebServerOwner}: ${PathToTiki}$ sudo chmod -R g+rw \${PathToTiki}

In English, the above code adds you to the web-server group; forces the tiki tree to be owned by the web-server user and group; and then makes sure the tiki tree is readable and writable by the web-server group (you). Suggestions welcome!

## 1.5. Run the Tiki installer (tiki-install.php)

Open a web browser to: http://example.org/tiki-install.php (or http://example.org/tiki/tiki-install.php if you installed Tiki in a subdirectory).

The first page of the Tiki Installer appears. This installer will allow you to:

• Pick a language
• If the installer detects that some of your server settings are inadequate, it will suggest changes to comply to the requirements.
This is the information from the database that you created earlier. You did remember to write it down, right? For non-default port number use syntax "example.com;port=3307"
• Create/update the database
• Note: on osx installations, the mysql socket is a bit different. In /etc/php.ini, change all instances of /var/mysql/mysql.sock to /tmp/mysql.sock and then restart the web server
• Set some preferences, such as admin email
• Disable the install script
• and more

Complete each page of the Tiki Installer.

### 1.5.1. Security choices during installation

There are a couple of important security choices during installation as follows:

When configuring general settings during installation, there is an option to "Require secure (https) login". It is recommended to select this option so that data sent between the browser and the site server is kept private.

In order to implement secure logins, in addition to selecting this option, you will need a security certificate and a dedicated IP address for your domain. These can be obtained or purchased from your web hosting company or, in the case of the security certificate, from third parties.

#### 1.5.1.2. Locking in the installer

In the last step of the installer, the installer is locked by default once you click the button to enter your Tiki. There is an option to elect to not lock the installer in that last step of the installation. It is highly recommneded that you lock the installer for any production site. The option is provided for concenience for development sites only. The installer allows a user to change or destroy the site's database through the browser so it is very important to keep it locked once the installation or upgrade is complete.

### 1.5.2. Alternative "Step 5" without tiki-install.php

If you are unable to complete the Tiki Installer, continue with a Manual Installation.

1. Enter this information:

## 1.8. Congratulations!

It is recommended to create a new user and give him admin privileges instead of regularly using the admin account. You can now explore the interface but you should check the extra steps before to get you started.

## 1.9. Configure Your Tiki

### Add new features through post-install Profiles

You can enable a set of settings/permissions/content features in a single action, in order to provide a common feature at your Tiki site (make it multilingual, add freetags, configure it as a collaborative environment, etc.) with a just few clicks using the Profile Manager from "Admin > Profiles".

Related pages:

 Installation FAQ Installation Guides - recipes, tips and detailed knowledge about specific hosting environments Migrate to Tiki Move Tiki to a new server Reinstall - to point tiki to a new database or re-run an upgrade Tiki in Ten minutes - a recipe for command line installations. Fantastico Installation Using SSH (for newbies) Manual Installation MultiTiki

Alias

### Keywords

Keywords serve as "hubs" for navigation within the Tiki documentation. They correspond to development keywords (bug reports and feature requests):

Accessibility (WAI and 508)
Accounting
Articles and Submissions
Banners
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Clean URLs
Communication Center
Compression (gzip)
Content Templates
Contribution
Credit
Date and Time
Debugger Console
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
Draw
Dynamic Content
Dynamic Variable
External Authentication
FAQ
File Gallery
Forum
Friendship Network (Community)
Groups
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
Kaltura video management
Karma
Live Support
Logs (system & action)
Look and Feel
Lost edit protection
Mail-in
Map with Mapserver
Meta Tags
Mobile Tiki and Voice Tiki
Mods
Module
MultiTiki
MyTiki
Payment
Permissions
Platform independence (Linux-Apache, Windows/IIS, Mac, BSD)
Polls
Profiles
Profile Manager
Report
Toolbar
Quiz
Rating
Feeds
Score
Search engine optimization
Search
Search and Replace
Security
Share
Shopping cart
Shoutbox
Slideshow
Smiley
Social Networks
Spam protection (Anti-bot CATPCHA)
Spellcheck
Stats
Surveys
Tags
Tell a Friend, alert + Social Bookmarking
TikiTests
Theme CSS & Smarty
Trackers
Transitions
TRIM
User Administration including registration and banning
User Files
Watch
WebDAV
Webmail
Web Services
Wiki History, page rename, etc
Wiki Plugin extends basic syntax
Wiki Syntax
Wiki structure (book and table of content)
Workspace
WSOD
WYSIWYCA
WYSIWYG
XMLRPC