ULYQUID | System Installation

Top Top | Previous Prev | Next Next

System Installation

System Specifications

The system is tested to be working on the following specifications. Some plugin component that uses OS specific functions are tested on the appropriate platform.


  • Computer/Processor: Pentium 4, 2.8GHz
  • Memory: 1GB System RAM
  • Hard Disk: 20GB or more
  • Minimum Resolution: 1280 x 1024, 24bit colors
  • Supported Operating System: Microsoft Windows XP Professional / Linux
  • Network Speed: 768 KB/s or better


  • Development Programming Language: PHP 5.2.6
  • Database: MySQL 5.0.51b
  • Server: Apache 2.2.9
  • Operating System (Recommended): CentOS 5


The system is assumed to be used in the following environment.

  • 5 - 20 number of system users
  • 5 - 20 projects
  • All client/server data transmissions are secured by SSL connection
  • System runs in an environment secured by server administration experts
  • A client/server networking environment is prepared

System Structure

ULYQUID is composed of 3 main modules under the /ulyquid/ directory. In order to allow safe access, you will need to properly configure the server environment with the correct permission and settings. The directories marked in bold especially requires restricted permissions (e.g. chmod 666).

  • Administration Module
    • admin
  • Core Module
    • authorizer
    • base
    • home
    • lib
    • my_profile
    • templates
    • templates_c
    • data
      • project
      • user
  • Plugin Module
    • plugin

Installing On Linux Systems

Following shows you one example of installing ULYQUID on Linux. Distribution used in this example is CentOS 5. Please note that following only shows part of the configuration settings. For complete information on how to set up each components, refer to the official documentation of each application.

Installation And Update

First of all, install PHP, MySQL, Apache. If already done so, update all software to the latest version.
You may want to use the remi repository for getting the latest build (for distributions such as CentOS).

  • # rpm –import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
  • # cd /etc/yum.repos.d
  • # wget http://rpms.famillecollet.com/remi-enterprise.repo
  • # yum --enablerepo=remi update

# yum install php
# yum install php-mysql
# yum install php-mbstring
# yum install php-soap
# yum install php-xml
# yum install php-pear
# yum install php-pear-XML-Parser
# yum install php-gd
# yum install mysql
# yum install httpd
# yum update

# /etc/rc.d/init.d/mysql start
# /etc/rc.d/init.d/httpd start

PHP Settings

Edit the PHP configuration file (/usr/local/lib/php.ini).

session.hash_bits_per_character = 4

(You may want to increase the following values if the system needs to process time consuming services)
max_input_time = 6000
max_execution_time = 6000

(Set all other relevant character set to UTF-8)

Make sure Apache is restarted:
# /etc/rc.d/init.d/httpd restart

Apache Settings

Edit the Apache configuration file (/etc/httpd/conf/httpd.conf).

AddDefaultCharset UTF-8
UserDir disable
# UserDir public_html
# <Directory/home/*/public_html>
# ~
# </Directory>

MySQL Settings

Edit the MySQL configuration file (/etc/my.cnf).


Create database / Delete anonymous user:
(NOTE: replace localhost with IP address if necessary)
# mysql -u root
> set password for root@localhost=password('password');
> delete from mysql.user where user='';
> exit;

# mysql -u root -p
> show database;
> drop database test;

Set up database:
> create database ulyss_db
> grant all privileges on ulyss_db.* to root@localhost identified by 'password';
> use ulyss_db;

Installing ULYQUID

ULYQUID installation is simple. Just copy the entire "ulyquid" folder to your document root (e.g. /var/www/html/).

System Configurations

Open /ulyquid/base/define.php and edit the OS definition. If you installed ULYQUID on Windows system, then the value should be SYSTEM_OS_WIN32.

define("SYSTEM_OS", SYSTEM_OS_UNIX); // Set the OS in which ULYQUID runs

Open /ulyquid/base/path.php and edit the path definition. SYSTEM_PHP_EXE is the php executable file path. SYSTEM_ROOT is the system root path. SYSTEM_URL is the actual address when accessing the system. Edit SYSTEM_WEBSERVICES_ROOT and SYSTEM_WEBSERVICES_URL if you are going to install local web services in the future.

define("SYSTEM_PHP_EXE", "/usr/local/php/bin/...");
define("SYSTEM_ROOT", "/var/www/html/");
define("SYSTEM_URL", "");
define("SYSTEM_WEBSERVICES_ROOT", "/var/www/html/");

.htaccess Configurations

Edit .htaccess to limit external resource access. There are 2 .htaccess files you need to consider: /ulyquid/data/.htaccess and /ulyquid/lib/.htaccess.

SetEnvIf Referer "^" ref_ok <-- Change to your server's IP address
order deny,allow
deny from all
allow from env=ref_ok

Also, /ulyquid/.htaccess needs to be modified according to how you configure the system. Set the limit values for uploading files, especially if the system is disclosed to the public. You are strongly recommended to uncomment display_errors unless debugging.

# Set not to display errors in production environment (to avoid path disclosure)
php_flag display_errors off

# Maximum upload size limit settings
php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 1200
php_value max_input_time 1200
php_value memory_limit 100M

Database Configurations

Edit /ulyquid/base/db.php and set the following line of code to the correct MySQL connectivity details. Also do the same thing for /webservices/lib/sql.php if you are planning to use the internal webservices.

$this->pdo = new PDO("mysql:host=localhost;dbname=ulyss_db", "root", "password");

Also, run all SQL queries stated in /ulyquid/sql/create_all.sql to create the default tables in your database. Make sure you delete this file after installation is completed.