setting-up-a-pylowiki-site setting-up-a-pylowiki-site Setting up a pylowiki site …………………………….. This page will outline the steps needed to setup a production pylowiki site. If you are interested in running a demo or local version of pylowiki, check out the minimal pylowiki setup instructions _. In this tutorial we will be configuring pylowiki to run: - on ubuntu linux - as a wsgi application - with an apache2 webserver - in a python virtualenv - with a mysql database backend .. contents:: Get the Pylowiki sourcecode The pylowiki sourcecode is hosted at bitbucket.org. You will need mecurial (hg) revision control to download the source. For debian or ubuntu .. code-block:: shell sudo apt-get install mercurial Once you have mercurial you need to clone the pylowiki sourcecode .. code-block:: shell hg clone http://bitbucket.org/russellballestrini/pylowiki mv pylowiki mysite Now you should have the sourcecode in local filesystem. You might want to come up with a workflow to maintain your changes and still accept revisions from the upstream pylowiki repository. I’ll leave that up to you. Fix file permissions The web server account only needs access to a few directories. All the other files may be owned by your id. Run the following commands from the root of your Pylowiki project directory to correct permissions. .. code-block:: apache mkdir egg-cache data sudo chgrp -R www-data pylowiki/public/attachment sudo chmod -R 774 pylowiki/public/attachment sudo chgrp -R www-data egg-cache sudo chmod -R 774 egg-cache sudo chgrp -R www-data data sudo chmod -R 774 data Get a Pylons virtual environment Official Pylons setup notes: http://pylonshq.com/docs/en/1.0/gettingstarted/ .. code-block:: apache wget http://www.pylonshq.com/download/1.0/go-pylons.py python go-pylons.py virtpy To enable the virtual environment run: .. code-block:: apache source virtpy/bin/activate Install your Pylowiki application Make sure your currently inside your virtual python environment. Your shell should look like this: .. code-block:: php (virtpy)user@host$ python setup.py develop Notice the (virtpy)? The above command will install Pylowiki and all its dependencies into your virtual pythons site-lib. Configure Pylowiki - prod.ini The following command should be run in the root of your pylowiki project. This will create a configuration ini named prod.ini: .. code-block:: php (virtpy)user@host$ paster make-config Pylowiki prod.ini Open prod.ini for editing and make changes to reflect your environment. Database settings, public wiki registration, all the tweak-able settings are declared in the ini. Prepare mySQL Database Login to mySQL as root. .. code-block:: mysql mysql -u root -p mysql> CREATE DATABASE mysite GRANT ALL PRIVILEGES ON mysite.* TO username@localhost IDENTIFIED BY ‘passw0rd’ WITH GRANT OPTION Now make sure the prod.ini reflects these database settings: .. code-block:: ini sqlalchemy.url = mysql://username:password@127.0.0.1/mysite?charset=utf8 sqlalchemy.pool_recycle = 3600 Now we can let Pylowiki create all the database tables by issuing the following command: .. code-block:: php (virtpy)user@host$ paster setup-app prod.ini Configure mod_wsgi dispatch file First step is to create the mod_wsgi dispatch file. From the root directory of the Pylowiki project, create a dispatch.wsgi file with the following content: .. code-block:: python # Add the virtual Python environment site-packages directory to the path import sys sys.stdout = sys.stderr import site site.addsitedir(‘/absolute/path/to/virtpy/lib/python2.6/site-packages’) # Avoid [Errno 13] Permission denied: '/var/www/.python-eggs' messages import os os.environ[‘PYTHON_EGG_CACHE’] = ‘/absolute/path/to/pylowiki/egg-cache’ # Load the Pylons application from paste.deploy import loadapp application = loadapp(‘config:/absolute/path/to/pylowiki/prod.ini’) Configure apache2 virtualhost Create a domain file under /etc/apache2/sites-enabled. .. code-block:: apache sudo vi 002-mysite #mysite.net #pylons embeded mod_wsgi ServerName www.mysite.net ServerAlias mysite.net ServerAdmin admin@mysite.com # ReWrite URL to WWW RewriteEngine On RewriteCond %{HTTP_HOST} ^mysite.net RewriteRule (.*) http://www.mysite.net$1 [R=301,L] # Log Files ErrorLog /var/log/apache2/error-mysite.log CustomLog /var/log/apache2/access-mysite.log combined # Setup mod_wsgi WSGIScriptAlias / /absolute/path/to/pylowiki/dispatch.wsgi Restart the apache2 service: .. code-block:: apache sudo service apache2 restart foxhop — Oct 08, 2010 03:23 pm Please contribute to this installation documentation.