Setting up Elgg VM on CedeusGeoNode

From stgo
Revision as of 20:32, 15 September 2014 by StefanS (Talk | contribs)

Jump to: navigation, search

>> return to Cedeus_IDE


Elgg VM setup

  1. copying basicubunutu1404.vdi file and renaming to elgg.vdi
  2. creating the tilestream VM on CedeusDB (ip.18):
    • VBoxManage createvm --name elgg --ostype Ubuntu_64 --register
    • VBoxManage modifyvm elgg --memory 4096
    • VBoxManage modifyvm elgg --cpus 4
    • VBoxManage modifyvm elgg --nic1 nat
    • VBoxManage storagectl elgg --name "SATA Controller" --add sata --controller IntelAhci
    • assign the (old) disk image a new uuid
      VBoxManage internalcommands sethduuid elgg.vdi
    • attach the (old) disk image:
      VBoxManage storageattach "elgg" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium elgg.vdi
    • VBoxManage storagectl elgg --name "IDE Controller" --add ide --controller PIIX4
    • set the nat rules (ports):
      VBoxManage modifyvm elgg --natpf1 "ssh,tcp,,15022,,22"
      VBoxManage modifyvm elgg --natpf1 "apache,tcp,,15080,,80"
  3. optional - set VRDE port:
    • VBoxManage modifyvm elgg --vrdeport 7765 (Note: 3389 is the default port anyway)
  4. start the VM
    VBoxHeadless -s elgg --vrde on &
    the VM will listen on port 7765
  5. The following step do not seem to be necessary with Ubuntu 14.04 and new VirtualBox - however, are necesary for 12.04. But if so: connect with VRD and adjust network card settings (remember the existing VM have an old password)
    • open /etc/udev/rules.d/70-persistent-net.rules and comment out existing network adapters
    • reboot
    • check if ssh connection works
  6. change the computers name in /etc/hosts and /etc/hostname
  7. restarting Apache gives the error message: "apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 ..."
=> solve this by adding ServerName elgg as the last line in /etc/apache2/apache2.conf file

Elgg Setup

General Docs: http://learn.elgg.org/en/latest/

Install docs:

  • Elgg needs LAMPS (MySQL 5+, PHP 5.3.3+), so:
  • check what software packages are installed on the VM with dpkg -l
=> looks like 14.04 comes with MySQL 5.5 and PHP 5.5
  • however, I am missing php5 gd lib, so lets (re-)install the bunch of libs
sudo apt-get install php5 php5-gd php-xml-parser php5-mysql
  • Apache rewrite module should be enabled too
sudo a2enmod rewrite
  • downnload Elgg from http://elgg.org/download.php => I downloaded 1.8.19, the latest available and stable (= non RC) version
  • unzip and place in www folder of server
unzip elggXXX
mv elggXXX elgg (i.e. rename folder)
sudo cp -r elgg /var/www/html/ (copy folder to www/html to be accessible for Ubuntu 14.04)
  • create a data folder outside of /www or /public_html and make it accessible via for elgg:
sudo chown -R www-data:www-data /elggdata
=> www-data is apache's user that writes to file system. The above command grants apache ownership of the data directory.
  • create a database for elgg:
mysql -u root -p (pw 20...s)
CREATE DATABASE elgg;
CREATE USER elgguser IDENTIFIED BY 'elggpassword'; -- (elggpwd: elggc...s) -- perhaps may be better to use CREATE USER 'elgguser'@'localhost' IDENTIFIED BY 'elggpasswd';
GRANT ALL ON elgg.* TO elgguser;
\q
  • to be enable .htaccess in document root the access settings need to be changed in /etc/apache2/sites-available/default from AllowOverride None to AllowOverride All for the directory /var/www/html/ => Problem, this was for older Apache version, now in Ubuntu 14.04 we have 000-default.conf that does not contain this setting yet. So we do the following:
sudo nano /etc/apache2/sites-available/000-default.conf
Search for DocumentRoot /var/www/html and add the following lines directly below::
<Directory "/var/www/html">
AllowOverride All
</Directory>
and do restart apache2
  • move and rename files (perhaps use sudo)
mv /var/www/html/elgg/htaccess_dist /var/www/html/elgg/.htaccess
mv /var/www/html/elgg/engine/settings.example.php /var/www/html/elgg/engine/settings.php
  • Open up the settings.php file and fill in the database access details:
sudo nano /var/www/html/elgg/engine/settings.php
set:
  • $CONFIG->dbuser = 'elgguser';
  • $CONFIG->dbpass = 'elggc...s';
  • $CONFIG->dbname = 'elgg';
  • $CONFIG->dbhost = 'localhost';
  • $CONFIG->dbprefix = ;
  • navigate to http://146.155.17.19:15080/elgg/install.php to perform the setup
  • some settings I did:
    • registration open/public accessible
    • name Cedeus - miCiudad
    • login ssteinig (2..s) : registered email is uzh (2nd user: ment...r : s...o4...)
    • outgoing email fuer elgg(!): ssteiniger-uc (not shure if this works, though)

Settings after Elgg installation

Elgg 1.8.19 ist installed/accessible now via http://146.155.17.19:15080/elgg/ (the test version with Elgg 1.8.3: if the VM is running http://146.155.17.19:31080/elgg/)

Some notes on programming with Elgg

  • dev environment: IDE PhpStorm
    Note, I have setup the programming environment so, that the elgg plugin's project/files are directly modified in /var/www/html/elgg/mod/...
  • disable caching (in admin settings) and enable display of php errors
  • documentation : see in the elgg install folders: .../elgg/documentation/
  • we also have the Elgg book by C Costello and M. Sharma : http://www.packtpub.com/web-development/elgg-18-social-networking
  • (plugin) examples can be found in .../elgg/documentation/examples/ + .../plugins in particular for start.php and manifest.xml files that have to be in a plugins root folder

Notes on PYP Theming Plugin

  • it looks like this was done overly complicated. After reading the book chapters with examples (chapter 7,8,9), it seems like a re-write is in order to using page one-column layout instead, e.g.: elgg_view_layout('one_column', $vars);
  • ToDos:
    • (perhaps) create new PypTheming plugin with
      • PYP Welcome Page
      • PYP color style and fonts
      • PYP logo
    • create Cedeus/MiCiudad Elgg style
      • white background
      • cedeus font + text color (CSS)
      • Cedeus logo
      • Cedeus welcome page

Notes on MapComment/ Plugin

  • there is no extra DB needed. Its all written to the default DB.
  • the category page doesn't show a map after setup, as the like and dislike groups required.
    => after creation of an item/mapComment for each group, a map is shown
    see also the php warning: "Invalid argument supplied for foreach()" in file /var/www/html/elgg/modpypMapComment/pages/category.php (line 14) that seems to be resolved when initial items are added
  • switching to the index page (i.e. vy clicking on "Add new comment...") shows everything that is needed (no changes here?)
  • ToDos:
    • set to OSM and/or create custom tile map for south of chile
    • translate to Spanish
    • check - there seems to be an offset for locations (marker was placed a few blocks towards south, i.e. 1.5-2 times the dot-icon size, for a zoom level)
      => note, when zooming in and out, while addind the item, the dot's position (not yet fixed) changes strongly in north-south direction :(
    • perhaps remove header part (that allows search for an address and placing a comment) - as it seems a bit confusing to me
    • add option to upload fotos
    • correct map focus on "issue" selection
    • adjust comment privacy level I am not able to see the map/comments when I am logged out (this may be a general setting issue?) => yes, mapcomments are private if the general user created comments are set to private. (friends can see friends comments). So the general elgg setting of "privacy" needs to be "public" to see coments without being logged in.
    • give user a feedback that new comment is added