From DreamFactory
Jump to: navigation, search


  • Install PHP and dependencies
$ sudo apt-get install git curl php5 php5-common php5-cli php5-curl php5-json php5-gd

You'll also want to make sure you install the php drivers for your database of choice. The following db driver types are installed with Apt and no additional configuration is required.

DB Type Package Name
MySQL php5-mysqlnd
SQLite php5-sqlite
Postgres php5-pgsql
MS SQL/Sybase php5-sybase


$ sudo apt-get install php5-mysqlnd php5-sqlite php5-pgsql php5-sybase



Note:If you intend to use SQLite as the system database you only need to install php5-slite (see above.)


Note:If you intend to use MySQL/MariaDB as the system database you will need to install database server package and a client. Example:

$ sudo apt-get install mysql-server mysql-client
  • Then you will need to create a database for DreamFactory to use. You do not have to use the database name and credentials in this example.
$ mysql -u root -p
//enter your mysql root password
//create the database
mysql> create database dreamfactory;
//grant privileges to a user for the database
mysql> grant all privileges on dreamfactory.* to 'df_admin'@'localhost' identified by 'df_admin';
//flush privileges and quit
mysql> flush privileges;
mysql> quit

Web Server


  • Install the packages for nginx and php-fpm
 $ sudo apt-get install nginx php5-fpm

Once the package is installed you can verify it is running by pointing your web browser to the server's IP address or resolvable hostname. You should see a page indicating successful installation.

  • Now you will need to configure php-fpm

Edit the file /etc/php5/fpm/php.ini

Find the line that says
and change it to be
Restart php-fpm
$ sudo service php5-fpm restart
  • Configure Nginx to use PHP FPM

We'll be editing the default site server block. The file is /etc/nginx/sites-available/default. If you want to edit a different virtual host you will need to create a new server block We're going to give nginx instructions for where the root directory is, the server name, to look for php files as index, error handling, and php processing. When you're finished editing it should look like this (not including comments)

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /path/to/dreamfactory/public;
    index index.php index.html index.htm;

    server_name server_domain_name_or_IP;
    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; 

    location / {
        try_files $uri $uri/ /index.php?$args;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
  • Restart nginx
$ sudo service nginx restart
  • If you have not already done so make sure the web server can read and write to dreamfactory storage/ and bootstrap/cache/ folders
$ sudo chown -R {www user}:{your user group} /path/to/dreamfactory/storage/ /path/to/dreamfactory/bootstrap/cache/
$ sudo chmod -R 2775 /path/to/dreamfactory/storage/ /path/to/dreamfactory/bootstrap/cache/


For more information, see the Ubuntu guide here

$ sudo apt-get install apache2
  • Enable the apache2 rewrite engine.
 $ sudo a2enmod rewrite 
  • Enable site

Finally, we need to configure Apache to connect to the DreamFactory application. Below are the instructions to change the default site on Apache. For instructions on setting up virtual hosts, review the Apache documentation.

  • Edit the Apache default configuration file.
 $ sudo nano /etc/apache2/sites-available/000-default.conf 
  • Change the DocumentRoot and the Directory settings
<VirtualHost *:80>
    DocumentRoot /opt/dreamfactory/public

    <Directory /opt/dreamfactory/public>
        AddOutputFilterByType DEFLATE text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript
        Options -Indexes +FollowSymLinks -MultiViews
        AllowOverride All
        AllowOverride None
        Require all granted
        RewriteEngine on
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^.*$ /index.php [L]

            Allow from all
  • Restart the web server
 $ sudo service apache2 restart. 

Your DreamFactory Application should now be active, and available by entering the DNS name or IP address of your server into a web browser.