Install from sources

Laurent Eschenauer edited this page Aug 20, 2014 · 3 revisions

Installing Storytlr from sources/repository

Below are generic instructions on how to install storytlr. These instructions have been tested on a Bluehost box. Feel free to comment if you have issues with other providers and we'll update the instructions.

Need Help?

If you need help, please use the the mailing list or search the issues. If you use IRC, you can also check #storytlr on for real time discussion.

Check the Requirements

You'll need several things to run storytlr. If you are on a shared host like Bluehost, this is already installed for you. If you are running your own linux/windows server, you'll have to instal lthem.

On a CentOS/RedHat distribution, the following command will install all required packages:

yum install httpd mysql-server php php-mcrypt php-mbstring php-gd php-mysql php-ZendFramework \
php-ZendFramework-Db-Adapter-Pdo-Mysql php-ZendFramework-Feed php-ZendFramework-Service

Download and unpack

  • Prepare the domain or subdomain in your bluehost cpanel. For example, you may want to create the subdomain, and map it to the folder public_html/live.

  • Connect through SSH, navigate to that folder and download the storytlr package

ssh <user@host>
cd ~/public_html/live/
wget -O storytlr.tar.gz
  • Extract the archive
tar --strip-components=1 -zxv -f storytlr.tar.gz 

Change permissions

If you are on bluehost or another similar shared host, you kan skip this section.

If you have a regular linux box, you need to make various folders write accessible to the www user. You could make the whole storytlr/ folder write accessible to the www user, but if you want to change permissions only of the absolutely minimum required folders, here is the list:

  • These must be always write accessible:
    • feeds/
    • protected/temp/
    • protected/logs/
    • protected/upload/
  • These must be write accessible during the install process (and any further upgrade process):
    • protected/install/database
    • protected/config

Prepare the database

  • Go to your cpanel, and create a new database (e.g. storytlr). Create a new user (e.g default), set a user password (e.g. ******), and grant all privileges to that user of the storytlr database.

If you are on your own system using the command line, you can use the mysql command line tool to configure the database:

mysql -e "create database storytlr;"
mysql -e "grant all privileges on  storytlr.* to 'storytlr'@'localhost' identified by '<password>';"

Configure your Apache Server

  • If you are on your own server, you probably need to add an entry in your Apache server pointing to your storytlr folder.

** Note that the content and location of this file will depend on your operating system. The following is a sample file for a CentOS/RedHat distribution, when Storytlr is installed in /usr/share/storytlr.

<VirtualHost *:80>
	ServerSignature On
	DocumentRoot /usr/share/storytlr
	LogLevel warn
	ErrorLog /var/log/httpd/storytlr_error.log
	CustomLog /var/log/httpd/storytlr_access.log combined
	<Directory /usr/share/storytlr>
		Options FollowSymLinks
		AllowOverride All
		Order allow,deny
		Allow from all

Configure storytlr

  • Open a browser and navigate to your site (e.g. You should be greeted by the storytlr install wizard.

  • The install wizard will check if you have all required software and file permissions to install storytlr. If you see something in red, you need to fix it before moving ahead with the install.

  • Fill in the form with the database account you created earlier. Pick a username and a password. If you want to use the Flickr API or the Google Maps API, you need to provide your developer keys. (This can be done later by editing the protected/config/config.ini file).

  • Click install... and if all goes well you will see a success message with links toward your new storytlr page and the admin account.

  • For your first steps unsing storytlr, you want want to check out our Getting started guide.

Updating Your Sources

Storytlr enable you to import data from other services (e.g. Twitter). This is a one-shot import. If you want to continuously check for new data and keep on updating your storytlr, you'll need a bit more configuration.

The file /protected/tools/update.php is a command line PHP script that will update a single user's sources.

To try it, run:

$ php5 protected/tools/update.php <username>

To make this update regularly, you'll need to set up a "cron job":, sometimes called a scheduled task by web hosts.

There are various ways to set up a cron job, often your web host will provide a web based interface to create the job.

Here is an example crontab that will run the update script every 15 minutes:

*/15 * * * * /usr/bin/php5 /home/jmhobbs/storytlr/protected/tools/update.php admin

Note that your cron job will differ, paths to PHP and your source code are dependent on the host. Please check with your hosting company if you have trouble setting up a cron job. Sometimes hosting companies don’t allow you to set up a cron job. EasyCron( is a free and easy way to set up crons and have control over them.

Please note

  • By default your site is a single user installation. Check the Frequently Asked Questions to change to a multi-user installation.
  • By default registration to the site is closed. Check the Frequently Asked Questions to change to allow registration.
  • If you have troubles, set debug = 1 in config.ini for error logging