This guide is designed for Debian based systems (Ubuntu for example). You cannot upgrade from RC1 to RC2 without data loss at this stage. Backup everything if you even attempt it. This tutorial is going to assume you are installing it under a vhost in /var/www. Not everything may be the same location as this, try figure those out yourself.
If you see words that look like:
this
that is code to be executed on the command line
Before we get to Gazelle:
1. Update software, and package cache:
sudo aptitude update && sudo aptitude upgrade
2. Build essentials (install important stuff):
sudo aptitude install build-essential gcc wget subversion automake libtool make g++ -f mysql-server mysql-client libmysqlclient15-dev libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev zlib1g-dev libpng-dev libmcrypt-dev libxml2-dev libevent-dev
apache2, php5, memcached, and sphinxsearch are also in the Debian package repository so you don't need to build by hand. If you run Sid (unstable) you will get the versions described below.
sudo apt-get install apache2 php5 memcached sphinxsearch
3. Install Apache HTTP Server:
cd /usr/local && wget
http://apache.wildit.net.au/httpd/httpd-2.2.15.tar.gz
tar -xzvf httpd-2.2.15.tar.gz && cd httpd-2.2.15
./configure --enable-so
make
make install
/usr/local/apache2/bin/apachectl start
/usr/local/apache2/bin/apachectl stop
4. Install Memcached
cd /usr/local && wget
http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
tar -xvf memcached-1.4.5.tar.gz && cd memcached-1.4.5
./configure
make
make install
5. Install PHP 5.3.1
cd /usr/local && wget
http://us3.php.net/get/php-5.3.2.tar.gz/from/this/mirror
tar xzvf php-5.3.2.tar.gz && cd php-5.3.2
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mcrypt --with-mysqli --with-gd --enable-mbstring
make
make install
libtool --finish /usr/local/php-5.3.2/libs
cp php.ini-development /usr/local/lib/php.ini
cd /usr/local/src/ && wget
http://pecl.php.net/get/memcache-2.2.4.tgz
tar xzvf memcache-2.2.4.tgz && cd memcache-2.2.4
phpize && ./configure --enable-memcache && make
mkdir -p /usr/local/lib/php/extensions/no-debug-non-zts-20090626
cp modules/memcache.so /usr/local/lib/php/extensions/no-debug-non-zts-20090626/
Add extension=memcache.so to your php.ini (/usr/local/lib/php.ini) file and restart the webserver (/usr/local/apache2/bin/apachectl restart)
While in PHP.INI - find the line: "short_open_tag = Off" - Turn it On, and restart apache
6. Locate HTTPD.conf
Should be in /usr/local/apache2/conf
add the following lines to the the bottom of the .conf file:
LoadModule php5_module modules/libphp5.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
you can add this as well, so you can set where your files are served from:
<VirtualHost *:80>
DocumentRoot /var/www
<Directory "/var/www">
AllowOverride All
allow from all
Options +Indexes
</Directory>
</VirtualHost>
Test it:
Run this Code:
/usr/local/apache2/bin/apachectl start
Create a PHP file with the folowing code in it:
<?php phpinfo(); ?>
Place that file in your vhost (in this case, /var/www) and navigate to localhost (either 127.0.0.1, or 127.0.1.1) - See if you have success!
7. Start Memcache
memcached -d -m XXX -s /var/run/memcached.sock -a 0777 -t16 -C -u root
xxx= megabytes of ram. We used 512 for the -m XXX bit.
8. Run an SQL query for gazelle.sql (preferably as root) to create the database, the table, and the default data. (import using phpmyadmin is one way to do it) (At this point, you will want to upload the gazelle source into the web directory)
Or run the following command:
mysql -u root -p < /var/www/gazelle.sql
9. Install Sphinx
-for documentation, see:
http://www.sphinxsearch.com/docs/current.html
Sphinx is a bit tricky. You have been warned.
Run this:
cd /usr/local && wget
http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
tar xzvf sphinx-0.9.9.tar.gz && cd sphinx-0.9.9
./configure
make
make install
Use this sphinx.conf
http://pastebin.com/WNbW1CFX
Put it in /usr/local/sphinx-0.9.9 as sphinx.conf. You will need to edit in your database settings, otherwise nothing will work. (Really important ones are lines 11, 99, 312-315)
Run the following commands:
mkdir -p /var/data/sphinx/delta
/usr/local/bin/indexer -c /usr/local/sphinx-0.9.9/sphinx.conf --all
mkdir -p /var/log/searchd/
/usr/local/bin/searchd
If you get any errors, try to debug it yourself. If all else fails, post in the forums or join IRC.
__________________________________________________________
10. Front-end Install
1. Get the latest copy of Gazelle from
http://what.cd/gazelle. Once you have downloaded and extracted it, upload it to your server.
2. Run the following command:
cp /var/www/classes/config.template /var/www/classes/config.php
3. With FileZilla or a shell editor, open config.php. This is your main configuration file for Gazelle. Set all the settings for your site, how you want them. The important bit is the SITE_SALT and other hashes.Use this site to make good hash keys
http://grc.com/passwords.html
4. Sign up to your site, you will be made a SysOp automatically.
5. Setup cron jobs:
Use the following commands:
crontab -e
Open it with nano.
Enter this:
0,15,30,45 * * * * /usr/local/bin/php /var/www/schedule.php INSERT_YOUR_SCHEDULE_KEY >> /root/schedule.log
10,25,40,55 * * * * /usr/local/bin/php /var/www/peerupdate.php INSERT_YOUR_SCHEDULE_KEY >> /root/peerupdate.log
* * * * * /usr/local/bin/indexer -c /usr/local/sphinx-0.9.9/sphinx.conf --rotate delta
5 0,12 * * * /usr/local/bin/indexer -c /usr/local/sphinx-0.9.9/sphinx.conf --rotate --all
Where SCHEDULE_KEY is the password you set in classes/config.php
Press ctrl+o to save, then ctrl+x to exit nano.
6. As of February 28th 2010, there are still some bugs. You will need to edit this files:
/var/www/sections/stats/users.php
Comment out line 2 to line 105. Save it and upload it back to the server.
http://site.com/stats.php?action=user should work now.
__________________________________________________________
11. Back-end install (XBTT)
This probably wont work, i have a version which i will test again that should work on debian
cd /var/www/ && tar xzvf xbtt.tar.gz && cd xbtt/build/xbtt/
./configure --bindir=/path/to/xbtt/xbtt/bin --libdir=/path/to/xbtt/xbtt/lib --libexecdir=/path/to/xbtt/xbtt/lib --enable-epoll
make
sudo make all install
For common installation problems, see here:
http://what.cd/gazelle/forums.php?action=viewthread&threadid=2
8. Test your site thoroughly.