|
|
(8 intermediate revisions by the same user not shown) |
Line 15: |
Line 15: |
| * A.m.o is written in cake-php (yet another web framework) | | * A.m.o is written in cake-php (yet another web framework) |
| | | |
− | == Installing activities.sugarlabs.org == | + | == Sources == |
| + | |
| + | http://git.sugarlabs.org/projects/slo-activities |
| + | |
| + | Branches structure: |
| + | * ''master'' branch, last ASLO codebase |
| + | * ''master-theme'' rebased to ''master'' branch, last ASLO codebase with sugar theme |
| + | * ''v<version>'' branch, released ASLO version |
| + | * ''v<version>-theme'' rebased to ''v<version>'' branch, released ASLO version with sugar theme |
| + | * ''production'' tag to last stable branch |
| + | |
| + | == Install server == |
| | | |
| '''NOTE''' The followed instructions tested on Ubuntu 9.04(Jaunty). | | '''NOTE''' The followed instructions tested on Ubuntu 9.04(Jaunty). |
Line 33: |
Line 44: |
| git-clone git://git.sugarlabs.org/slo-activities/mainline.git /var/www | | git-clone git://git.sugarlabs.org/slo-activities/mainline.git /var/www |
| | | |
− | Fetch one external dependency: | + | Fetch external dependencies: |
| cd /var/www/site/vendors/ | | cd /var/www/site/vendors/ |
− | svn co http://svn.mozilla.org/libs/product-details product-details | + | svn co http://svn.mozilla.org/libs/product-details |
− | | + | svn co http://svn.mozilla.org/libs/fizzypop.mozdev fizzypop |
− | ==Set up server==
| + | svn co http://svn.mozilla.org/libs/phorms |
| + | svn co http://svn.mozilla.org/libs/zxtm-api |
| | | |
− | ===Set permissions===
| + | == Set up server == |
| | | |
− | <code>
| + | Setup apache. Add followed lines to the end of VirtualHost section in /etc/apache2/sites-enabled file: |
− | chown -R apache:apache /var/www/site | + | DocumentRoot /var/www/site/app/webroot |
− | </code> | + | <Directory /var/www/>AllowOverride All</Directory> |
| | | |
− | ===Edit DocumentRoot===
| + | Enable all apache mods. |
| + | cd /etc/apache2/mods-enabled |
| + | ln -s ../mods-available/* . |
| | | |
− | <code>
| + | Setup mysql(you need to enter mysql root password for these commands). |
− | vim /etc/httpd/conf/httpd.conf
| |
− |
| |
− | Edit DocumentRoot /var/www/site/app/webroot
| |
− | Edit AllowOverride All
| |
− | </code>
| |
− | | |
− | ===Add to hosts===
| |
− | | |
− | <code>
| |
− | vim /etc/hosts
| |
− | 127.0.0.1 activities.sugarlabs.org
| |
− | </code>
| |
− | | |
− | ==Test server==
| |
− | | |
− | <code>
| |
− | service httpd restart
| |
− | </code>
| |
− | | |
− | <code>
| |
− | mv /var/www/site/app/webroot/index.php /var/www/site/app/webroot/index.php.old
| |
− | mv /var/www/html/index.php /var/www/site/app/webroot/index.php
| |
− | </code>
| |
− | | |
− | ===Open===
| |
− | | |
− | Open activities.sugarlabs.org in firefox
| |
− | | |
− | ===Install mysql===
| |
− | <code>
| |
− | yum install mysql-server php-mysql
| |
− | </code>
| |
− | | |
− | ===start mysql on system boot===
| |
− | | |
− | <code>
| |
− | chkconfig --levels 235 mysqld on
| |
− | </code>
| |
− | | |
− | ===Start mysqld===
| |
− | | |
− | <code>
| |
− | service mysqld start
| |
− | </code>
| |
− | | |
− | ===Test server===
| |
− | | |
− | <code>
| |
− | service httpd restart
| |
− | </code>
| |
− | | |
− | open activities.sugarlabs.org in firefox. Make sure mysql is enabled
| |
− | | |
− | ===Revert index.php===
| |
− | | |
− | mv /var/www/site/app/webroot/index.php.old /var/www/site/app/webroot/index.php
| |
− | | |
− | ==Setup mysql==
| |
− | | |
− | <code>
| |
| mysqladmin -u root password remora | | mysqladmin -u root password remora |
| mysqladmin -u root -p create remora | | mysqladmin -u root -p create remora |
| mysql -u root -p | | mysql -u root -p |
− | | + | |
| GRANT ALL ON *.* TO 'remora'@'localhost' IDENTIFIED BY 'remora'; | | GRANT ALL ON *.* TO 'remora'@'localhost' IDENTIFIED BY 'remora'; |
| exit; | | exit; |
− | </code>
| |
| | | |
− | ==Configure aso==
| + | Add our server to /etc/hosts file. |
| + | 127.0.0.1 a.sl.o |
| + | |
| + | To test server create /var/www/site/app/webroot/php.php: |
| + | <?php phpinfo(); ?> |
| + | Open http://a.sl.o/php in browser and make sure mysql is enabled. |
| | | |
− | === Auto mode === | + | == Configure ASLO == |
| | | |
| cd /var/www | | cd /var/www |
| aslo/db-create-stub.sh | | aslo/db-create-stub.sh |
| | | |
− | === Manual mode ===
| + | Open a.sl.o in browser. To login use: |
− | | + | ''login'' admin@sugarlabs.org |
− | ====Populate tables====
| + | ''password'' test |
− | <code>
| |
− | mysql -u remora --password=remora -D remora </var/www/site/app/config/sql/remora.sql
| |
− | mysql -u remora --password=remora -D remora </var/www/site/app/tests/data/remora-test-data.sql
| |
− | mysql -u remora --password=remora -D remora </var/www/site/app/tests/data/sugar-test-data.sql
| |
− | </code>
| |
− | | |
− | ====Edit config.php====
| |
− | | |
− | <code>
| |
− | cp /var/www/site/app/config/config.php.default /var/www/site/app/config/config.php
| |
− | vim /var/www/site/app/config/config.php
| |
− | </code>
| |
− | | |
− | '''NOTE''' Make sugar that /var/www/site/app/config/config.php is ended by "?>" not by "?>\n"
| |
− | | |
− | <pre><nowiki>
| |
− | <?php
| |
− | /* ***** BEGIN LICENSE BLOCK *****
| |
− | * Version: MPL 1.1/GPL 2.0/LGPL 2.1
| |
− | *
| |
− | * The contents of this file are subject to the Mozilla Public License Version
| |
− | * 1.1 (the "License"); you may not use this file except in compliance with
| |
− | * the License. You may obtain a copy of the License at
| |
− | * http://www.mozilla.org/MPL/
| |
− | *
| |
− | * Software distributed under the License is distributed on an "AS IS" basis,
| |
− | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
| |
− | * for the specific language governing rights and limitations under the
| |
− | * License.
| |
− | *
| |
− | * The Original Code is addons.mozilla.org site.
| |
− | *
| |
− | * The Initial Developer of the Original Code is
| |
− | * The Mozilla Foundation.
| |
− | * Portions created by the Initial Developer are Copyright (C) 2006
| |
− | * the Initial Developer. All Rights Reserved.
| |
− | *
| |
− | * Contributor(s):
| |
− | * Wil Clouser <wclouser@mozilla.com> (Original Author)
| |
− | * Mike Morgan <morgamic@mozilla.com>
| |
− | * Justin Scott <fligtar@gmail.com>
| |
− | * Frederic Wenzel <fwenzel@mozilla.com>
| |
− | *
| |
− | * Alternatively, the contents of this file may be used under the terms of
| |
− | * either the GNU General Public License Version 2 or later (the "GPL"), or
| |
− | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
| |
− | * in which case the provisions of the GPL or the LGPL are applicable instead
| |
− | * of those above. If you wish to allow use of your version of this file only
| |
− | * under the terms of either the GPL or the LGPL, and not to allow others to
| |
− | * use your version of this file under the terms of the MPL, indicate your
| |
− | * decision by deleting the provisions above and replace them with the notice
| |
− | * and other provisions required by the GPL or the LGPL. If you do not delete
| |
− | * the provisions above, a recipient may use your version of this file under
| |
− | * the terms of any one of the MPL, the GPL or the LGPL.
| |
− | *
| |
− | * ***** END LICENSE BLOCK ***** */
| |
− | | |
− | | |
− | | |
− | /**
| |
− | * Global configuration document.
| |
− | *
| |
− | * This document covers both the CakePHP based site (/site) and its service scripts.
| |
− | * Unless otherwise noted, trailing slashes should not be used.
| |
− | * @package amo
| |
− | */
| |
− | | |
− | /**
| |
− | * Site URL
| |
− | * Example: http://addons.mozilla.org
| |
− | * Example: http://khan-vm.mozilla.org (dev) | |
− | * Example of getting a full controller url:
| |
− | * echo SITE_URL.$html->url('/users/register');
| |
− | * Will default to http://addons.mozilla.org unless defined below
| |
− | */ | |
− | // define('SITE_URL', '');
| |
| | | |
− | /**
| + | == Optional steps == |
− | * Services URL.
| |
− | * Example: http://addons.mozilla.org/services
| |
− | * Example: http://khan-vm.mozilla.org/amo/services (dev)
| |
− | */
| |
− | define('SERVICE_URL','http://activities.sugarlabs.org');
| |
− | | |
− | /**
| |
− | * Site State
| |
− | * Example: production
| |
− | * Example: staging
| |
− | * Example: dev
| |
− | * All uses should default to dev
| |
− | */
| |
− | define('SITE_STATE', 'dev');
| |
− |
| |
− | /**
| |
− | * Files
| |
− | * The application uses these paths to piece together the URL for files.
| |
− | *
| |
− | * HOST and URL are separated because CakePHP has $html->webroot, and only appends
| |
− | * FILES_URL while the services need both since it doesn't have
| |
− | * Cake's context.
| |
− | *
| |
− | * No trailing slashes.
| |
− | */
| |
− | | |
− | /**
| |
− | * Host, including http://. Should be everything leading up to addon ids.
| |
− | * Example: http://releases.mozilla.org/addons
| |
− | */
| |
− | define('FILES_HOST', 'http://activities.sugarlabs.org');
| |
− | | |
− | /**
| |
− | * Relative web path of the files directory. Tacking this on to FILES_HOST should get you
| |
− | * the complete URL where your files are. This is the location of the downloads controller
| |
− | * and it should not normally need to be changed, the default is set in constants.php,
| |
− | * and shown commented out here.
| |
− | *
| |
− | * Example: downloads/file
| |
− | */
| |
− | define('FILES_URL', 'downloads');
| |
− | | |
− | /**
| |
− | * File path for storing XPI/JAR files (or any files associated with an add-on).
| |
− | * Example: /data/www/app/webroot/files
| |
− | */
| |
− | define('REPO_PATH', '/var/www/files');
| |
− | | |
− | /**
| |
− | * File path for storing public files to be rsynced for updates
| |
− | * If left commented out, files will not be copied there and will use only REPO_PATH
| |
− | */
| |
− | //define('PUBLIC_STAGING_PATH', '');
| |
− | | |
− | /**
| |
− | * The path to the gnu diff program (or any diff program able to create a unified diff).
| |
− | * If left commented out, it will use the xdiff package
| |
− | */
| |
− | //define('DIFF_PATH', '/usr/bin/diff');
| |
− | | |
− | /**
| |
− | * This is the number of seconds for which repeat downloads will not
| |
− | * be counted, since Firefox does multiple gets during a single install process.
| |
− | */
| |
− | define('DL_COUNT_DELAY', '10');
| |
− | | |
− | /**
| |
− | * Path to directory where detailed logfiles are kept. Files will be created in
| |
− | * this directory in the format: {DETAILED_LOG_PATH}/Y-M-D.txt
| |
− | */
| |
− | //define('DETAILED_LOG_PATH', '');
| |
− | | |
− | /**
| |
− | * Path to directory for misc. AMO storage accessible by all webheads.
| |
− | */
| |
− | define('NETAPP_STORAGE', '');
| |
− | | |
− | /**
| |
− | * Facebook Configuration
| |
− | */
| |
− | // Whether the Facebook controller is enabled
| |
− | define('FB_ENABLED', 'false');
| |
− | | |
− | // Facebook API keys
| |
− | define('FB_API_KEY', '');
| |
− | define('FB_API_SECRET', '');
| |
− | | |
− | // Facebook App URL
| |
− | define('FB_URL', 'http://apps.facebook.com/add-ons');
| |
− | | |
− | // Facebook Image site - where images are pulled from
| |
− | define('FB_IMAGE_SITE', 'https://addons.mozilla.org');
| |
− | | |
− | // Facebook Install site - where the add-on install page goes
| |
− | define('FB_INSTALL_SITE', 'https://addons.mozilla.org');
| |
− | | |
− | // Facebook Bounce Percentage - percent of hits to bounce
| |
− | //define('FB_BOUNCE_PERCENTAGE', 0);
| |
− | | |
− | /**
| |
− | * Database configuration.
| |
− | */
| |
− | | |
− | /**
| |
− | * DB_USER, DB_PASS, DB_NAME, DB_HOST, DB_PORT
| |
− | * This database has read/write capabilities. Host and port default to localhost and 3306.
| |
− | */
| |
− | define('DB_USER','remora');
| |
− | define('DB_PASS','remora');
| |
− | define('DB_NAME','remora');
| |
− | | |
− | /**
| |
− | * SHADOW_DB_USER, SHADOW_DB_PASS, SHADOW_DB_NAME, SHADOW_DB_HOST, SHADOW_DB_PORT
| |
− | * Array of shadow databases that have read-only access.
| |
− | * - If left alone, will default to DB_* above.
| |
− | * - DB_WEIGHTs must sum to 1. i.e., a weight of 0 will never get hit, a weight
| |
− | * of .50 will get hit half of the time, and a weight of 1 will always get hit.
| |
− | * - The array keys need not be numeric and could be used for descriptive purposes
| |
− | * that would appear in the monitor script.
| |
− | */
| |
− | global $shadow_databases;
| |
− | $shadow_databases = array(
| |
− | 0 => array(
| |
− | 'DB_HOST' => '',
| |
− | 'DB_PORT' => 3306,
| |
− | 'DB_NAME' => '',
| |
− | 'DB_USER' => '',
| |
− | 'DB_PASS' => '',
| |
− | 'DB_WEIGHT' => 0
| |
− | )
| |
− | );
| |
− | | |
− | /**
| |
− | * TEST_DB_USER, TEST_DB_PASS, TEST_DB_NAME, TEST_DB_HOST, TEST_DB_PORT
| |
− | * The test database. All fields default to their DB_* counterparts, except
| |
− | * for TEST_DB_NAME, which is DB_NAME . "-test".
| |
− | */
| |
− | | |
− | /**
| |
− | * memcache configuration.
| |
− | *
| |
− | * The memcache_config array lists all possible memcached servers to use in case the default server does not have the appropriate key.
| |
− | */
| |
− | global $memcache_config;
| |
− | $memcache_config = array(
| |
− | 'localhost' => array(
| |
− | 'port' => '11211',
| |
− | 'persistent' => true,
| |
− | 'weight' => '1',
| |
− | 'timeout' => '1',
| |
− | 'retry_interval' => 15
| |
− | )
| |
− | );
| |
− | | |
− | /**
| |
− | * Recaptcha (recaptcha.net) configuration
| |
− | */
| |
− | define('RECAPTCHA_ENABLED', false);
| |
− | define('RECAPTCHA_PRIVATE_KEY', '...');
| |
− | define('RECAPTCHA_PUBLIC_KEY', '...');
| |
− | | |
− | /**
| |
− | * Compatibility Center Versions
| |
− | */
| |
− | define('COMPAT_DEFAULT_VERSION', '3.1');
| |
− | global $compatibility_versions;
| |
− | $compatibility_versions = array(
| |
− | '3.0', '3.1'
| |
− | );
| |
− | | |
− | ?>
| |
− | </nowiki></pre>
| |
− | | |
− | ====Edit config-local.php====
| |
− | | |
− | <code>
| |
− | vim /var/www/site/app/config/config-local.php
| |
− | </code>
| |
− | | |
− | <code>
| |
− | <?php
| |
− | define('DEBUG', 1);
| |
− | define('DEV', true);
| |
− | ?>
| |
− | </code>
| |
− | | |
− | <code>
| |
− | chown apache:apache /var/www/site/app/config/config-local.php
| |
− | </code>
| |
− | | |
− | This is necessary to generate debug message. Without it you get a somewhat disconcerting blankscreen.
| |
− | | |
− | ====Create download directory====
| |
− | | |
− | <code>
| |
− | mkdir /var/www/downloads
| |
− | chown -R apache:apache /var/www/downloads
| |
− | </code>
| |
− | | |
− | ====Create repo directories====
| |
− | | |
− | <code>
| |
− | mkdir /var/www/files
| |
− | mkdir /var/www/files/temp
| |
− | mkdir /var/www/files/extracted
| |
− | chown -R apache:apache /var/www/files
| |
− | </code>
| |
− | | |
− | === Optional steps ===
| |
| | | |
| ====Install php-memcache==== | | ====Install php-memcache==== |
Line 437: |
Line 110: |
| chkconfig --levels 235 httpd on | | chkconfig --levels 235 httpd on |
| </code> | | </code> |
− |
| |
− |
| |
− | ===Test activities.sugarlabs.org===
| |
− |
| |
− | Open activities.sugarlabs.org in firefox.<br>
| |
− | If you followed [[#Auto mode]] section use
| |
− | ''login'' admin@sugarlabs.org
| |
− | ''password'' test
| |
− |
| |
− | To run tests open activities.sugarlabs.org/tests?case=installation.test.php in firefox.
| |
| | | |
| == TODO == | | == TODO == |
Activities.sugarlabs.org
Over the last several months, there have been on and off discussions about how to adapt the addons.mozilla.org server software to manage Sugar activities.
Background
Information about Remora, the codename for a.m.o version 3, is at https://wiki.mozilla.org/Update:Remora.
Why base a.s.o on a.m.o
Pros
- The function of a.m.o is exactly the same as the desired functionality of a.s.o.
Cons
- A.m.o is currently only used by mozilla.
- A.m.o is written in cake-php (yet another web framework)
Sources
http://git.sugarlabs.org/projects/slo-activities
Branches structure:
- master branch, last ASLO codebase
- master-theme rebased to master branch, last ASLO codebase with sugar theme
- v<version> branch, released ASLO version
- v<version>-theme rebased to v<version> branch, released ASLO version with sugar theme
- production tag to last stable branch
Install server
NOTE The followed instructions tested on Ubuntu 9.04(Jaunty).
Install apache, php and mysql.
sudo apt-get install apache2 mysql-server
sudo apt-get install php5 php5-dev php5-gd php5-cli php-pear php5-mysql
Install required php modules.
pear config-set preferred_state beta
pear install Archive_Zip
To check out sources you need git and subversion.
sudo apt-get install git subversion
Checkout our fork.
git-clone git://git.sugarlabs.org/slo-activities/mainline.git /var/www
Fetch external dependencies:
cd /var/www/site/vendors/
svn co http://svn.mozilla.org/libs/product-details
svn co http://svn.mozilla.org/libs/fizzypop.mozdev fizzypop
svn co http://svn.mozilla.org/libs/phorms
svn co http://svn.mozilla.org/libs/zxtm-api
Set up server
Setup apache. Add followed lines to the end of VirtualHost section in /etc/apache2/sites-enabled file:
DocumentRoot /var/www/site/app/webroot
<Directory /var/www/>AllowOverride All</Directory>
Enable all apache mods.
cd /etc/apache2/mods-enabled
ln -s ../mods-available/* .
Setup mysql(you need to enter mysql root password for these commands).
mysqladmin -u root password remora
mysqladmin -u root -p create remora
mysql -u root -p
GRANT ALL ON *.* TO 'remora'@'localhost' IDENTIFIED BY 'remora';
exit;
Add our server to /etc/hosts file.
127.0.0.1 a.sl.o
To test server create /var/www/site/app/webroot/php.php:
<?php phpinfo(); ?>
Open http://a.sl.o/php in browser and make sure mysql is enabled.
Configure ASLO
cd /var/www
aslo/db-create-stub.sh
Open a.sl.o in browser. To login use:
login admin@sugarlabs.org
password test
Optional steps
Install php-memcache
yum install php-devel gcc zlib-devel
pecl install memcache
vim /etc/php.ini
You should add "extension=memcache.so" to php.ini
service httpd restart
Install memcached
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum install memcached
service memcached start
chkconfig --levels 235 httpd on
TODO
- Fix search
- Fix downloads
- Lots of testing, debugging and fixing
- Upstream all patches that can make easier future rebases (and have a chance of being accepted)
- Translate our new strings
- Change the design accordingly to the Sugar image