X-Git-Url: https://git.openstreetmap.org/osqa.git/blobdiff_plain/1a949f7c97dc2f34c135f5cdf088df2927d3d652..afa2b5ca9e29a5f2f3dfa8f94a5be2f9e612d719:/INSTALL diff --git a/INSTALL b/INSTALL index f655e1d..525947b 100644 --- a/INSTALL +++ b/INSTALL @@ -1,266 +1,5 @@ -CONTENTS ------------------- -A. PREREQUISITES -B. INSTALLATION - 1. Settings file - 2. Database - 3. Running OSQA in the development server - 4. Installation under Apache/WSGI - 5. Email subscriptions -C. CONFIGURATION PARAMETERS (settings_local.py) -D. CUSTOMIZATION +For installation instruction go to: +http://wiki.osqa.net/display/docs/Home -A. PREREQUISITES ------------------------------------------------ -0. We recommend you to use python-setuptools to install pre-requirement libraries. -If you haven't installed it, please try to install it first. -e.g, sudo apt-get install python-setuptools - -1. Python2.5/2.6, a rdbm (such as MySql or PostgreSql), Django v1.0/1.1 -Note: email subscription sender job requires Django 1.1, everything else works with 1.0 -Make sure you have the necessary support for python to communicate with your rdbm. -sudo easy_install mysql-python (for MySql) -sudo easy_install postgresql_psycopg2 (for PostgreSql) - -2. html5lib -http://code.google.com/p/html5lib/ -Used for HTML sanitizer -sudo easy_install html5lib - -3. Markdown2 -http://code.google.com/p/python-markdown2/ -sudo easy_install markdown2 - -4. Optional, but highly recommended, you may want to install south from http://south.aeracode.org/ , it will make upgrades a lot easier. - - -5. Also optionally you may want to install Django Debug Toolbar for debugging. -This is not required and OSQA will just ignore it if you don't have it. -http://github.com/robhudson/django-debug-toolbar/tree/master - -6. Depending on which modules you decide to enable (see bellow for more info on modules), -you may need to install some aditional dependencies. Here's a list of the dependencies of each bundled module if any: - - a) openidauth, depends on Python-openid - http://openidenabled.com/python-openid/ - - b) sphinxfulltext, depends on djangosphinx, and obviously you'll have to install the sphinx search engine - http://sphinxsearch.com/downloads.html - http://github.com/dcramer/django-sphinx/tree/master/djangosphinx - - - -B. INSTALLATION ------------------------------------------------ -0. Make sure you have all above python libraries installed. - - make osqa installation server-readable on Linux command might be: - chown -R yourlogin:apache /path/to/OSQA - - directories templates/upfiles and log must be server writable - - on Linux type chmod - chmod -R g+w /path/to/OSQA/upfiles - chmod -R g+w /path/to/log - - above it is assumed that webserver runs under group named "apache" - -1. Settings file - -Copy settings_local.py.dist to settings_local.py and -update all your settings. Check settings.py and update -it as well if necessory. -Section C explains configuration paramaters. - -1b. Modules - -Decide which modules you want to DISABLE. Each module adds a specific piece of functionality to OSQA, and -by default, all are enabled, you have to disable the ones you want. If any module doesn't meet the required dependencies it just -won't load. -Currently bundled modules are: - - localauth - provides local authentication and registration on your site, disable this if you want only external login - through any external provider - - openidauth - adds support for open id on osqa and adds some openid providers to the signin page - - oauthauth - adds support for oauth authentication on osqa and adds twitter as a signin provider on the signin page - - facebookauth - adds facebook as an authentication provider - - pgfulltext - adds support to full text search functionality through postgresql if you're useing it as your rdbm - - sphinxfulltext - adds support for full text search with the sphinx search engine - (detailed instructions are in the module root folder) - - robotstxt - adds a robots file editable throug the admin interface - - recaptcha - adds support for recaptcha in the registration form - - default_badges - the default set of badges, others can be added or used instead - - books - don't really does anything, it's disabled by default, and you should keep it that way, you can delete it if you want to - - -2. Database - -Prepare your database by using the same database/account -configuration from above. -e.g, -create database osqa DEFAULT CHARACTER SET UTF8 COLLATE utf8_general_ci; -grant all on osqa.* to 'osqa'@'localhost'; -And then run "python manage.py syncdb" to synchronize your database. - -If you're using south, then run "python manage.py migrate forum 0001 --fake". - -When you're prompted to create a new superuser, answer "no". Once you get your site running, create a new user through the normal -OSQA account creation process and that will be your super user. - -3. Running OSQA on the development server - -Run "python manage.py runserver" to startup django -development environment. -(Under Linux you can use command "python manage.py runserver `hostname -i`:8000", -where you can use any other available number for the port) - -4. Installation under Apache/WSGI - -4.1 Prepare wsgi script - -Make a file readable by your webserver with the following content: - ---------- -import os -import sys - -sys.path.insert(0,'/one/level/above') #insert to make sure that forum will be found -sys.path.append('/one/level/above/OSQA') #maybe this is not necessary -os.environ['DJANGO_SETTINGS_MODULE'] = 'OSQA.settings' -import django.core.handlers.wsgi -application = django.core.handlers.wsgi.WSGIHandler() ------------ - -insert method is used for path because if the forum directory name -is by accident the same as some other python module -you wull see strange errors - forum won't be found even though -it's in the python path. for example using name "test" is -not a good idea - as there is a module with such name - - -4.2 Configure webserver -Settings below are not perfect but may be a good starting point - ---------- -WSGISocketPrefix /path/to/socket/sock #must be readable and writable by apache -WSGIPythonHome /usr/local #must be readable by apache -WSGIPythonEggs /var/python/eggs #must be readable and writable by apache - -#NOTE: all urs below will need to be adjusted if -#settings.FORUM_SCRIPT_ALIAS !='' (e.g. = 'forum/') -#this allows "rooting" forum at http://example.com/forum, if you like - - ServerAdmin forum@example.com - DocumentRoot /path/to/osqa-site - ServerName example.com - - #run mod_wsgi process for django in daemon mode - #this allows avoiding confused timezone settings when - #another application runs in the same virtual host - WSGIDaemonProcess OSQA - WSGIProcessGroup OSQA - - #force all content to be served as static files - #otherwise django will be crunching images through itself wasting time - Alias /m/ /path/to/osqa-site/forum/skins/ - Alias /upfiles/ /path/to/osqa-site/forum/upfiles/ - - Order deny,allow - Allow from all - - - #this is your wsgi script described in the prev section - WSGIScriptAlias / /path/to/osqa-site/osqa.wsgi - - #this will force admin interface to work only - #through https (optional) - #"nimda" is the secret spelling of "admin" ;) - - RewriteEngine on - RewriteRule /nimda(.*)$ https://example.com/nimda$1 [L,R=301] - - CustomLog /var/log/httpd/OSQA/access_log common - ErrorLog /var/log/httpd/OSQA/error_log - -#(optional) run admin interface under https - - ServerAdmin forum@example.com - DocumentRoot /path/to/osqa-site - ServerName example.com - SSLEngine on - SSLCertificateFile /path/to/ssl-certificate/server.crt - SSLCertificateKeyFile /path/to/ssl-certificate/server.key - WSGIScriptAlias / /path/to/osqa-site/osqa.wsgi - CustomLog /var/log/httpd/OSQA/access_log common - ErrorLog /var/log/httpd/OSQA/error_log - DirectoryIndex index.html - -------------- - -5. Email subscriptions - - edit paths in the file cron/send_email_alerts - set up a cron job to call cron/send_email_alerts once or twice a day - subscription sender may be tested manually in shell - by calling cron/send_email_alerts - - -C. CONFIGURATION PARAMETERS - -Most stuff can be configured through the admin interface, -but there are some important settings that need to live in the settings files: - -#all forum parameters are set in file settings_local.py -DEBUG=False #set to True to enable debug mode -LOG_FILENAME = 'osqa.log' #where logging messages should go -DATABASE_NAME = 'osqa' # Or path to database file if using sqlite3. -DATABASE_USER = '' # Not used with sqlite3. -DATABASE_PASSWORD = '' # Not used with sqlite3. -DATABASE_ENGINE = 'mysql' #mysql, etc -SERVER_EMAIL = '' -DEFAULT_FROM_EMAIL = '' -EMAIL_HOST_USER = '' -EMAIL_HOST_PASSWORD = '' #not necessary if mailserver is run on local machine -EMAIL_SUBJECT_PREFIX = '[OSQA] ' -EMAIL_HOST='osqa.com' -EMAIL_PORT='25' -EMAIL_USE_TLS=False -TIME_ZONE = 'America/Tijuana' - -#if you set FORUM_SCRIPT_ALIAS= 'forum/' -#then OSQA will run at url http://example.com/forum -#FORUM_SCRIPT_ALIAS cannot have leading slash, otherwise it can be set to anything -FORUM_SCRIPT_ALIAS = '' #no leading slash, default = '' empty string - -LANGUAGE_CODE = 'en' #forum language (see language instructions on the wiki) -EMAIL_VALIDATION = 'off' #string - on|off -MIN_USERNAME_LENGTH = 1 -EMAIL_UNIQUE = False #if True, email addresses must be unique in all accounts -APP_URL = 'http://osqa.com' #used by email notif system and RSS -WIKI_ON = True #if False - community wiki feature is disabled - -FEEDBACK_SITE_URL = None #None or url -LOGIN_URL = '/%s%s%s' % (FORUM_SCRIPT_ALIAS,'account/','signin/') - -DJANGO_VERSION = 1.1 #must be either 1.0 or 1.1 -RESOURCE_REVISION=4 #increment when you update media files - clients will be forced to load new version - -D. Customization - -Other than settings_local.py the following will most likely need customization: -* locale/*/django.po - language files that may also contain your site-specific messages - if you want to start with english messages file - look for words like "forum" and - "OSQA" in the msgstr lines -* templates/header.html and templates/footer.html may contain extra links -* templates/faq.html - put answers to users frequent questions -* templates/content/style/style.css - modify style sheet to add disctinctive look to your forum +The wiki contains many recipes to help you install on different hosting providers. \ No newline at end of file