Friday, November 11, 2011

Install Bigbluebutton + PHP ( nginx + PHP+ red5 + freeswitch + tomcat)

Install Bigbluebutton + PHP

Install Ubuntu 10.04 server 32bit or 64bit (lucid / maverick)
Note: natty will not work

During installation select OpenSSH alone (Do not select Lamp or other server applications)
Note: I selected both LAMP and OpenSSH, later stopped apache.

After installation,

Log in as administrator

To install bigbluebutton

wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -O- | sudo apt-key add –
 
echo "deb http://ubuntu.bigbluebutton.org/lucid/ bigbluebutton-lucid main" | 
sudo tee /etc/apt/sources.list.d/bigbluebutton.list
 
echo "deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse" | sudo tee -a /etc/apt/sources.list
 
sudo apt-get install python-software-properties
 
sudo add-apt-repository ppa:freeswitch-drivers/freeswitch-nightly-drivers
 
sudo apt-get update
 
sudo apt-get install bbb-freeswitch-config
 
sudo apt-get install bigbluebutton
 
sudo bbb-conf --clean
 
sudo bbb-conf --check

Default configuration of the Nginx server at
sudo vim /etc/nginx/sites-available/bigbluebutton

Root of Nginx server at

cd /var/www/bigbluebutton-default

Install fast CGI from

 

PHP and nginx on Ubuntu

I've now changed my slice from running apache to nginx. Here's the simplest way, in around 6 commands, to get PHP up and running via FastCGI.

Install PHP 5:
sudo aptitude install php5-cgi
Install nginx:
sudo aptitude install nginx
Create PHP 5 FastCGI start-up script:
sudo nano /etc/init.d/php-fastcgi
Inside, put:
#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=15
PHP_FCGI_MAX_REQUESTS=1000
 
PHP_CGI=/usr/bin/php-cgi
PHP_CGI_NAME=`basename $PHP_CGI`
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
RETVAL=0

start() {
      echo -n "Starting PHP FastCGI: "
      start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
      RETVAL=$?
      echo "$PHP_CGI_NAME."
}
stop() {
      echo -n "Stopping PHP FastCGI: "
      killall -q -w -u $USER $PHP_CGI
      RETVAL=$?
      echo "$PHP_CGI_NAME."
}
 
case "$1" in
    start)
      start
  ;;
    stop)
      stop
  ;;
    restart)
      stop
      start
  ;;
    *)
      echo "Usage: php-fastcgi {start|stop|restart}"
      exit 1
  ;;
esac
exit $RETVAL
Make start-up script executable:
sudo chmod +x /etc/init.d/php-fastcgi
Launch PHP:
sudo /etc/init.d/php-fastcgi start
Launch at start-up:
sudo update-rc.d php-fastcgi defaults
That's it. All installed and ready to go.

Test

Change server config at /etc/nginx/sites-available/bigbluebutton
location ~ \.php$ {
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
    include         fastcgi_params;
}
Restart nginx:
sudo /etc/init.d/nginx restart
Create a file in your web root (in the example above, /var/www/bigbluebutton-default/test.php):
 
phpinfo();
Visit the page in your browser and you should see the standard PHP info page. And you're done.
Clean restart BBB
sudo bbb-conf –clean