Loading...
 
Skip to main content

History: Installation

Source of version: 212 (current)

Copy to clipboard
            ! Introduction
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 web host's control panel. You can also use ((tw:1-click installers)).

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

If you are a web developer or programmer, command line installation of Tiki is also supported.

! Before you begin
Before installing Tiki, read the ((Requirements|Requirements and Setup information)) and use the ((Server Check)) tool. Proper planning can ensure a worry-free installation. If you need a web host for your Tiki, refer to the list of ((tw: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. ''(Full disclosure: the specific installation guides aren't updated as often as the general instructions so could be out of date. Please use the project's mailing lists, forums, etc. to get more information if necessary.)''

!!# Prerequisites
This guide assumes you have:
* FTP or SSH (shell) access to, or cPanel access at, a web server (such as Apache) with the required version of PHP for the Tiki release to be installed.
* Access to a MySQL database (should be provided by your web host).

!Step-by-step installation
!!# 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 [http://www.cpanel.net|cPanel] you probably can see [http://www.phpmyadmin.net/|phpMyAdmin] in the main menu or a the section labeled __Databases__.

{img type="src" src="img/wiki_up/cpanel_phpmyadmin.png" alt="cPanel image" title="The MySQL and phpMyAdmin applications in cPanel 11"}

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
#Create a database.
**The database name can be anything but should be kept simple -- you can use __tiki__, and avoid using an underscore character in the name. Depending on your web host, your full database in phpMyAdmin may be listed as ''accountname_tiki''.
++__Note__: By default, Tiki uses __UTF-8__ for database encoding. Select "utf8" in the "__collation__" drop-down box in phpMyAdmin (or similar). Tiki moved to -+utf8mb4+- since Tiki19, so a collation such as -+utf8mb4_unicode_ci+- should be selected, in the field shown in the following image:
++{img src="display1431" link="display1431" width="100%" rel="box[g]" imalign="center" desc="Click to expand" align="center" styleimage="border"}
++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.
#Create a database __user__ (with password).
**Again, simple is best for the database username. In fact, you can use the same name that you selected for the database (in step 1).
**Select a __strong__ password. You can easily recover your database username and password if necessary (by reviewing the -+../db/local.php+- file in your Tiki directory.
**Be sure to record the username and password. You will need it later.
#Assign __all__ database permissions to the database user that you created (in step 2).

Following these steps, a database is created that is ready to use, as well as a database user (and password) with the necessary permissions.

!!#  Two ways to get the Tiki files

!!!# Check out the files from the online code development repository

This method requires __(a)__ a server with shell (command line) access and __(b)__ the [https://git-scm.com/|Git] command line tool already installed on your server.

__Example for a fresh checkout (recommended also for major upgrades)__

__Method 1__
Cloning to a new folder (that you will specify)

{CODE()}
$ git clone https://gitlab.com/tikiwiki/tiki.git mynewfolder
{CODE}

__Method 2__
Cloning to the current folder (when you created the intended tikiroot already and changed into this directory prior to the checkout):
{CODE()}
$ git clone https://gitlab.com/tikiwiki/tiki.git .
{CODE}

__Note__
To clone only the latest 500 commits from a Git repository, you can use the --depth option, which allows you to create a shallow clone with a limited commit history. Here’s how to do it:
{CODE()}
$ git clone --depth 500 https://gitlab.com/tikiwiki/tiki.git mynewfolder
{CODE}

__Ressources__
If you are new to Git and you want to use Git to either deploy and manage a live website or you are a developer moving to Git from another version control system (vcs), you might want to find a course or a book.

The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the [https://creativecommons.org/licenses/by-nc-sa/3.0/|Creative Commons Attribution Non Commercial Share Alike 3.0] license. Print versions of the book are available on [http://www.amazon.com/Pro-Git-Scott-Chacon/dp/1484200772?ie=UTF8&camp=1789&creative=9325&creativeASIN=1430218339&linkCode=as2&tag=git-sfconservancy-20|Amazon.com]. 

See also: [https://git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git|A short history of Git]


!!!!-# Troubleshooting

{REMARKSBOX(type="information" title="Possible problems" close="n")}
!!!!!# With sh setup.sh, Composer script is not starting
You may have this error message

{CODE()}
Wrong PHP version: phpABC < required PHP version.  A version >= phpXYZ is necessary.
{CODE}

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.
New to Tiki 16, and likely to be 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:

{CODE()}
$ sh setup.sh -p PHPVERSION
{CODE}

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:

{CODE()}
php71 php7.1 php7.1-cli
{CODE}

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

{CODE()}
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

Loading composer repositories with package information
Installing dependencies from lock file
(...)
{CODE}

Now you are done. Problem solved.

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

{CODE()}
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.
{CODE}

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:
{CODE()}
$ php[TAB][TAB]
php    php-56  php-70  php-71  php-72
{CODE}

How to use this information:
Given the required PHP version would be php 7.1, 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-71) ...

{CODE()}
$ sh setup.sh -p php-71
Your choice [c]? c
{CODE}

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

{CODE()}
Wrong PHP version: phpABC < required PHP version.  A version >= php71 is necessary.
Searching for typically named alternative PHP version ...
... correct PHP version php55 detected and used
Local PHP version >= required PHP version 71 - good
{CODE}

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:
{CODE()}
$ sh setup.sh -p /opt/rh/rh-php71/root/bin/php
Your choice [c]? c
{CODE}

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.

For less technical users who are installing Tiki at a web hosting provider, there is usually a PHP Version link in the control panel to enable you to select the version of PHP that you want to use.

!!!!!# File and Folder permissions
If you have file and folder permissions issues, here is the link to resolve them: ((File and folder permissions)).

!!!!!# Tiki installer missing third party software files

{img src="display1433" link="display1433" width="100%" rel="box[g]" imalign="center" desc="Click to expand" align="center" styleimage="border"}

You need to run __sh setup.sh__ from command lines:

{CODE()}
$ sh setup.sh
Your choice [c]? c
{CODE}
{REMARKSBOX}
!!!# Download a release package
Alternatively, you can ((Download|download)) a package of all the files, including external library files, of any supported version of Tiki to your local computer from [http://tiki.org/download]. 

{img src="display2082" link="display2082" width="400" rel="box[g]" desc="Download page at tiki.org"  title="Click to expand" alt="download page image" imalign="center" align="center" styleimage="border"}

The full Tiki archive file download is 25 to 95MB depending on the version and compression format (zip, bz2, etc.).

!!!!# Upload to your web host with cPanel's file manager
If [https://documentation.cpanel.net/display/76Docs/cPanel+User+Documentation|cPanel] (a feature commonly offered by shared hosting providers) is available on the web host, you can upload Tiki's zipped package as one file without first extracting the files. Use cPanel's [https://documentation.cpanel.net/display/78Docs/File+Manager|file manager] to upload the zipped archive and extract the files after the upload is complete. The files can be selected and moved to another directory in one action if necessary. If cPanel is available, this is a safer and faster method than uploading multiple files.

!!!!# Unzip and upload to your web host with FTP or similar
If your web host doesn't have cPanel, after downloading the Tiki archive file, decompress (unzip) the file to your local PC.

Use FTP (or SCP, SFTP, Rsync, SSH, etc) to connect to your web host.

Once connected, find your web directory. It is often called -+www+- or -+public_html+-. 
__Note__: This directory name may vary, depending on your web host.

!!!!!# Example 1: Upload all the Tiki files from your PC to your web host.  
* 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 web host, 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 ~94~(.+)$  /tiki-index.php?page=$1  ~91~QSA,L~93~" might need to become this "RewriteRule ~94~(.+)$ __/tiki__/tiki-index.php?page=$1 ~91~QSA,L~93~")

!!!!!# Example 2: Upload using lftp
-+lftp -u username ftp.example.com+-
-+lcd /path/to/local/tiki+-
-+cd /path/to/web/tiki+-
-+set ftp:ssl-allow no+-
-+mirror -R ./+-

An ftp testing upload session to an external web host needed approximately two hours, and the limitation was the provider's setting. The local internet connection was __not__ saturated.

!!# Install Tiki
!!!# Install a repository checkout
To complete the setup of the checked-out files, including fetching external libraries and setting permissions, run setup.sh, (in the tikiroot):
{CODE()}
$ sh setup.sh
{CODE}
For more information on using setup.sh, also see the [#Troubleshooting|Troubleshooting] section, or run -+sh setup.sh -h+- in the shell. Regarding Composer, which is only needed to fetch external libraries when Tiki is being installed from the repository, use the option "c" after starting the setup.sh script:

For Tiki < 27
{CODE()}
$ sh setup.sh
. . .
Your choice [c or f]? c
{CODE}

For Tiki ≥ 27
See: https://dev.tiki.org/The-Tiki-27-plus-Build-System
{CODE()}
$ sh setup.sh
. . .
Your choice [b]? b
{CODE}

!!!# Install a downloaded release package
Run the Tiki installer (tiki-install.php)
Navigate in 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).

{mediaplayer src="tiki-download_file.php?fileId=2083&display=y" type="mp4" autoplay="1"}

The first page of the Tiki Installer appears. This installer will allow you to:
* Pick a language
* Test your server settings
** If the installer detects that some of your server settings are inadequate, it will suggest changes to comply to the ((Requirements)).
* Enter your database host, name, username, and password. 
+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.

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

!!!!!# Secure login
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.

!!!!!# Lock 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 recommended that you lock the installer for any production site. The option is provided for convenience for development sites only. The installer allows the site's database to be changed or destroyed through the browser so it is very important to keep it locked once the installation or upgrade is complete.

!!!!# Alternative "Step 5" without tiki-install.php
If you are unable to complete the Tiki Installer, continue with a ((Manual Installation|manual installation)).

!!!# Log in for the first time
Log in using the login box in the right-hand column.
# Enter this information:
## __user:__ Enter ''admin''
## __pass:__ Enter ''admin''
# Click __login__.

!!!# Change the default password.

Use a strong password. You may want to log out right away, and log in again, letting your password manager record your password.

!!!# Congratulations!
It is recommended to create a new user and give this user 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.

!!!# Configure Your Tiki
Please visit ((Initial Configuration)), which describes the recommended next steps, or ((configuration)) for the table of contents related to configuring 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 tags, configure it as a collaborative environment, etc.) with a just few clicks using the ((Profile Manager)) from "__Admin > Profiles__".

Read more about it at ((Profiles)).

!! For more information on the Tiki installation process...
__Related pages:__ 
{SPLIT()}
[tiki-view_faq.php?faqId=4|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))
{SPLIT}

-=Alias=-
* (alias(Install))
* (alias(How to install))
* (alias(How to install Tiki))
* (alias(How to install TikiWiki))
* (alias(Foo-Installation-Doc-2018))