Installation guide for MyMeeting v2

Command line examples here is shown for Windows, CentOS and Ubuntu. If you are on another Linux distro, please use their equivalent commands.


Requirements

Minimum hardware requirement

  • 1GB RAM
  • Pentium IV
  • 28MB hardisk (without data)

Make sure Apache 2, MySQL 5 and PHP 5 are installed

Windows

  • Quickest way to install Apache, MySQL and PHP on Windows is by using  WAMP or  XAMPP, or install them separately by downloading then individually and make them to work together. An example how to do this is  here.
  • Services have to be up (mysqld and httpd)
  • Apache module mod_rewrite is necessary:
    • Find "httpd.conf" file inside the Apache’s installation folder (eg. C:\xampp\apache\conf or C:\wamp\bin\apache\Apache2.2.11\conf).
    • Add in this line in the "httpd.conf" file (at the bottom)
      AccessFileName htaccess.txt
      
    • Find the following line in the "httpd.conf" file.
      #LoadModule rewrite_module modules/mod_rewrite.so
      
      Remove the "#" at the starting of the line, "#" represents that line is commented. So it becomes like this
      LoadModule rewrite_module modules/mod_rewrite.so
      
    • Make sure AllowOverride is set to Allow by changing "AllowOverride None” to “AllowOverride All”. By default WAMP is set to AllowOverride All
      ...
      <Directory "C:\wamp\www\">
      ...
         #AllowOverride None
         AllowOverride All
      ...
      </Directory>
      ...
      
      or
      ...
      <Directory "C:\xampp\htdocs\">
      ...
         #AllowOverride None
         AllowOverride All
      ...
      </Directory>
      ...
      
    • Restart Apache service.
  • These PHP modules are necessary (enabled them in php.ini):
    • php_cli (for command line interface)
    • php_mysql (to work with MySQL)
  • Mail transfer agent (eg XAMPP has built-in fake sendmail) - ONLY needed for 2.2 and below. 2.3-dev already has SMTP support.
    • Guide for XAMPP on Windows XP is  here (may not work on Vista).

CentOS

  • To install Apache, PHP and MySQL, open Terminal and do the following steps in root privilege:
    $ yum install httpd
    $ yum install php php-mysql php-cli
    $ yum install mysql
    $ /etc/init.d/httpd start @ restart(either one)
    $ /etc/init.d/mysqld start @ restart
    
  • Make sure Apache, PHP and MySQL are installed and running.
    $ httpd -v
    $ mysql -V
    $ php -v
    $ sudo /etc/init.d/httpd status
    $ sudo /etc/init.d/mysqld status
    

* Apache modules mod_rewrite is necessary:

  • Enable it
    $ cd /etc/httpd/conf/
    $ nano httpd.conf
    $ Uncomment this line "#LoadModule rewrite_modules/mod_rewrite.so" inside "httpd.conf" by removing "#"
    
  • Make sure AllowOverride is set to Allow by changing "AllowOverride None” to “AllowOverride All” inside "httpd.conf".
       #AllowOverride None
       AllowOverride All
    
    
  • Restart Apache service.
  • These PHP modules are necessary (enabled them in php.ini):
    • php_cli (for command line interface)
    • php_mysql (to work with MySQL)
  • Mail transfer agent (eg Postfix, Sendmail) - ONLY needed for 2.2 and below. 2.3-dev already has SMTP support.
    $ sudo apt-get install postfix
    

Ubuntu

  • To install Apache, PHP and MySQL, open Terminal and do the following steps:
    $ sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli
    $ sudo apt-get install mysql-server mysql-client php5-mysql 
    $ sudo /etc/init.d/apache2 start @ restart(either one)
    $ sudo /etc/init.d/mysql start @ restart
    
  • Make sure Apache, PHP and MySQL are installed and running.
    $ apache2 -v
    $ mysql -V
    $ php -v
    $ sudo /etc/init.d/apache2 status
    $ sudo /etc/init.d/mysql status
    
  • Apache modules mod_rewrite is necessary:
    • Enable it
      $ cd /etc/apache2/mods-enabled
      $ sudo a2enmod rewrite
      
    • Make sure AllowOverride is set to Allow by changing "AllowOverride None” to “AllowOverride All”.
      $ cd /etc/apache2/sites-available/
      $ sudo nano default
      ...
      <Directory "/var/www/">
      ...
         #AllowOverride None
         AllowOverride All
      ...
      </Directory>
      ...
      
    • Restart Apache service.
  • These PHP modules are necessary (enabled them in php.ini):
    • php_cli (for command line interface)
    • php_mysql (to work with MySQL)
  • Mail transfer agent (eg Postfix, Sendmail) - ONLY needed for 2.2 and below. 2.3-dev already has SMTP support.
    $ sudo apt-get install postfix
    

Get MyMeeting source

There are 2 ways of getting the source:

  • Download and extract, or
  • SVN checkout

Using SVN checkout is recommended if you'd like to get updates easily. This means that you don't have to manually download to apply updates. Updates frequency varies with version. For example, trunk is very active while branches are quite silent. Updates can be seen in  Timeline.

Download and extract

Windows

  • Go to " http://trac.oscc.org.my/mymeeting/browser" and go to either branch (official release) or trunk (latest development)
  • Click "Zip Archive" at the bottom of the page. Save this zip file.
  • Unzip it in your web folder (eg. C:/wamp/www/ or C:/xampp/htdocs/)
  • Rename the folder to 'mymeeting' or any name you wish.

CentOS

  • Go to " http://trac.oscc.org.my/mymeeting/browser" and go to either branch (official release) or trunk (latest development)
  • Click "Zip Archive" at the bottom of the page. Save this zip file.
  • Unzip it in your web folder (eg. /var/www/html)
  • Rename the folder to 'mymeeting' or any name you wish.

Ubuntu

  • Go to " http://trac.oscc.org.my/mymeeting/browser" and go to either branch (official release) or trunk (latest development)
  • Click "Zip Archive" at the bottom of the page. Save this zip file.
  • Unzip it in your web folder (eg. /var/www)
  • Rename the folder to 'mymeeting' or any name you wish.

SVN checkout

Windows

  • Use any SVN client (eg. install  TortoiseSVN)
  • Checking out MyMeeting using TortoiseSVN is done by right clicking any blank space in windows explorer.

  • Fill in the repository URL


  • A 'mymeeting' folder containing all the source code is created with small status icon on it to indicate that it is a SVN checkout.

  • MyMeeting source can be updated by clicking on SVN Update.

CentOS

  • Install Subversion
    $ sudo yum install subversion
    
  • Check out MyMeeting
    $ cd /var/www/html
    $ svn co https://svn.oscc.org.my/mymeeting/trunk mymeeting
    
  • To update MyMeeting
    $ cd /var/www/html/mymeeting
    $ svn update
    

Ubuntu

  • Install Subversion
    $ sudo apt-get install subversion
    
  • Check out MyMeeting
    $ cd /var/www/
    $ svn co https://svn.oscc.org.my/mymeeting/trunk mymeeting
    
  • To update MyMeeting
    $ cd /var/www/mymeeting
    $ svn update
    

Install MyMeeting v2

Pre install steps (optional)

  • After downloading/checking out the source, go the MyMeeting folder and go to app/config/core.php
  • Find a line with Configure::write('Security.salt', 'xxxxxxxxx');
  • Replace xxxx with random string of your own
  • IMPORTANT: only do this before installation, not after

Windows

  • Go to your command prompt (Start->Run...->type cmd)
  • Go to MyMeeting console directory which resides in your web folder to install.
    C:\> cd C:\wamp\www\mymeeting\cake\console 
    C:\wamp\www\mymeeting\cake\console> cake -app C:\wamp\www\mymeeting\app install
    
  • Follow the instructions and key in the settings needed to complete the process of installation.
  • Create the MyMeeting database (have to provide MySQL root password)
    C:\wamp\www\mymeeting\cake\console> cake -app C:\wamp\www\mymeeting\app createdb
    
    Step above will create a database and the user to access it, also it will create database.php configuration file in app/config.

Alternatively, you can do this manually and skip this step. To do this manually, create the database and user in MySQL prompt, and then create database.php in app/config directory.

CREATE DATABASE mymeetingdb;
GRANT ALL PRIVILEGES ON mymeetingdb.* TO user@localhost IDENTIFIED BY 'userpassword';

The content of database.php should contain the following. Replace username and password to match your own.

<?php
class DATABASE_CONFIG {
    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'port' => '',
        'login' => 'user', //your mysql username
        'password' => 'userpassword', //your mysql password
        'database' => 'mymeetingdb', //your database name
        'schema' => '',
        'prefix' => '',
        'encoding' => ''
    );
}
?>
  • Once the creating database is done, run the script again to finish the installation
    C:\wamp\www\mymeeting\cake\console> cake -app C:\wamp\www\mymeeting\app install
    
  • Once all the steps are done, the script will create a configuration file mymeeting.php & core.php in app/config. Now go to your browser and type " http://localhost/mymeeting". MyMeeting should be working now. Default login is admin and random password is generated.

Notes: On Windows platform

  • If IIS is already running, make sure they don't share the same port

CentOS

  • Go to your terminal
  • Go to MyMeeting console directory which resides in your web folder
    $ cd /var/www/html/mymeeting/cake/console
    $ ./cake install
    
  • Follow and key in the instructions and settings needed to complete the process of installation.
  • Create the MyMeeting database (have to provide MySQL root password)
    $ ./cake createdb
    
    Step above will create a database and the user to access it, also it will create database.php configuration file in app/config.

Alternatively, you can do this manually and skip this step. To do this manually, create the database and user in MySQL prompt, and then create database.php in app/config directory. Same as in Windows step above.

  • Once the creating database is done, run the script again to finish the installation
    $ ./cake install
    
  • Once all the steps are done, the script will create a configuration file mymeeting.php & core.php in app/config. Now go to your browser and type " http://localhost/mymeeting". MyMeeting should be working now. Default login is admin and random password is generated.

Ubuntu

  • Go to your terminal
  • Go to MyMeeting console directory which resides in your web folder
    $ cd /var/www/mymeeting/cake/console
    $ ./cake install
    
  • Follow and key in the instructions and settings needed to complete the process of installation.
  • Create the MyMeeting database (have to provide MySQL root password)
    $ ./cake createdb
    
    Step above will create a database and the user to access it, also it will create database.php configuration file in app/config.

Alternatively, you can do this manually and skip this step. To do this manually, create the database and user in MySQL prompt, and then create database.php in app/config directory. Same as in Windows step above.

  • Once the creating database is done, run the script again to finish the installation
    $ ./cake install
    
  • Once all the steps are done, the script will create a configuration file mymeeting.php & core.php in app/config. Now go to your browser and type " http://localhost/mymeeting". MyMeeting should be working now. Default login is admin and random password is generated.

Post installation

Change permission (applicable to Linux)

  • Make sure this folder is writable
    • /var/www/html/mymeeting/app/webroot/upload (CentOS)
    • /var/www/mymeeting/app/webroot/upload (Ubuntu)
  • Or run this command to fix the permission of all necessary folders. This command can be run anytime.
    $ ./cake fixup fixpermission
    

If you're using PHP 5.3.x

  • In app/config/core.php, uncomment the line (by removing the '//' at the beginning of the line) date_default_timezone_set('UTC');
  • Change 'UTC' to 'Asia/Kuala_Lumpur' to correct your server timezone

Set up cron/task scheduler (For CentOS)

  • To send out notifications (meeting invitations, changes on meeting details, comments) every 15 min everyday
    */15 * * * * /var/www/html/mymeeting/cake/console/cake -app /var/www/html/mymeeting/app cron emails > /dev/null 2>&1
    
  • To send out reminders to specific on their related tasks at 7am everyday
    0 7 * * * /var/www/html/mymeeting/cake/console/cake -app /var/www/html/mymeeting/app cron reminders > /dev/null 2>&1
    

Set up cron/task scheduler (For Ubuntu)

  • To send out notifications (meeting invitations, changes on meeting details, comments) every 15 min everyday
    */15 * * * * /var/www/mymeeting/cake/console/cake -app /var/www/mymeeting/app cron emails > /dev/null 2>&1
    
  • To send out reminders to specific on their related tasks at 7am everyday
    0 7 * * * /var/www/mymeeting/cake/console/cake -app /var/www/mymeeting/app cron reminders > /dev/null 2>&1
    
  • For Windows, please go here for reference.

Attachments