.. _installation: ============== Installation ============== --------------------------------------------- Installation of the software on Ubuntu 14.04 --------------------------------------------- This part of the tutorial provides instruction on installing istSOS on a Linux Operating System based on Debian distribution. Nevertheless, even though extensive testing has been conducted in this environment only, istSOS is developed in Python which is known for its cross platform support and existing installation are recorded in Windows ® systems and OS X Apple's operating system should be supported too. Interested users may look at the istSOS Website or ask support on the mailing list. **1) Install PostgreSQL and PostGIS** :: sudo apt-get install postgresql postgresql-9.3-postgis-2.1 pgadmin3 **2) Configure postgreSQL password** :: sudo -u postgres psql alter user postgres password '*******'; .. note:: Ctrl-D to exit from psql console **3) Install Apache2 and mod_wsgi** :: sudo apt-get install apache2 libapache2-mod-wsgi **4) Install psycopg2** :: sudo apt-get install python-psycopg2 **5) Download istSOS and unpack it** Go to ``_ the download of the latest version of istSOS will start in 5 seconds, save the file in the Downloads folder in your home directory, then unpack executing these commands: :: cd ~/Downloads sudo tar -zxvf istSOS-2.1.1.tar.gz -C /usr/local/ **6) Set executing permission and owner for the services and logs folders** :: sudo chmod 755 -R /usr/local/istsos sudo chown -R www-data:www-data /usr/local/istsos/services sudo chown -R www-data:www-data /usr/local/istsos/logs **7) Configure Apache and WSGI** Open /etc/apache2/sites-enabled/000-default: :: sudo gedit /etc/apache2/sites-enabled/000-default.conf And add the following lines just before the last VirtualHost tag: :: # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf WSGIScriptAlias /istsos /usr/local/istsos/application.py Alias /istsos/admin /usr/local/istsos/html/admin Alias /istsos/modules/status /usr/local/istsos/html/modules/status .. warning:: If you are using Apache/2.4.6 or above (like in Ubuntu 13.10 or above) you could meet the "403 Forbidden" message. .. figure:: images/forbidden.png In that case additional setup shall be made. In the “000-default.conf” :: [...] WSGIScriptAlias /istsos /usr/local/istsos/application.py Alias /istsos/admin /usr/local/istsos/interface Options +Indexes +FollowSymLinks +MultiViews AllowOverride all Require all granted **8) Restart the Apache web server** :: sudo service apache2 restart **9) Create your PostGIS database** For Postgresql 9.1 and later versions: :: sudo -u postgres createdb -E UTF8 istsos sudo -u postgres psql -d istsos -c 'CREATE EXTENSION postgis' .. warning:: For older versions of postgresql: :: sudo -u postgres createdb -E UTF8 istsos sudo -u postgres psql -d istsos \ -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql sudo -u postgres psql -d istsos \ -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql -------------------------------- Installation on windows 7 and 8 -------------------------------- **1) install python** Download python 2.7 from ``_ and install it. Check if the python path is in the Environment variables: :: Computer > properties > advanced system settings > Environment Variables. Check if the python27 exists in the variable PAth, if not add ‘;C:\Python27\’ **2) install postgreSQL with PostGIS** Get PostgreSQL from ``_ and install it. .. note:: During the installation configure the password to be ‘postgres’. Install postGIS 2.1 using the application Stack Builder at the end of the installation of postgreSQL. Check the option to create a new database and call it ‘istsos’ **3) install apache 2.2** download Apache 2.2 (``_) and install it using the .msi file. .. warning:: If an error signals a missing dll, download and install Microsoft Visual C++, then try again to install Apache. If the error persists, download the missing dll from ``_ and copy into the /windows/system32 folder and reboot the system. **4) install mod_wsgi** get the apache module mod_wsgi (``_) for apache 2.2 and python 2.7 and copy it in the folder / modules of the Apache installation folder. **5) install extra modules** Download this extra modules and install them: * psycopg2: ``_ * python-dateutil: ``_ * six: ``_ **6) install istSOS** Download istSOS (``_) and unpack under the disk C: so that will be a folder C:\istsos **7) Configure apache2** Go to the folder where Apache is installed, modify the permissions of conf/httpd.conf and conf/extra/httpd-vhosts.conf so that they are writable from Everyone. Open conf/httpd.conf with a text editor and add this line: :: LoadModule wsgi_module modules/mod_wsgi.so #close to the others LoadModule lines Uncomment the line 'Include conf/extra/httpd-vhosts.conf' (remove the #) Open conf/extra/httpd-vhosts.conf, delete the two examples of and paste the following code. Modify the paths so they correspond to the Apache and istSOS folders. :: ServerAdmin webmaster@localhost #DocumentRoot "C:/istsos/interface" DocumentRoot "C:/Apache2/htdocs" Options FollowSymLinks AllowOverride None # Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ "c:/Apache2/cgi-bin/" AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog "c:/Apache2/logs/error.log" LogLevel warn CustomLog "c:/Apache2/logs/access.log" combined Alias /doc/ "c:/Apache2/manual/" Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 WSGIScriptAlias /istsos "c:/istsos/application.py" Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 Alias /istsos/admin "c:/istsos/interface" **8) restart Apache 2.2** Restart apache 2.2 using the icon or: :: control panel > system and security > administrative tools > services click on Apache 2.2 and then on restart. -------------------------------- Check and debug the installation -------------------------------- Now istSOS is up and running. Open a web browser and go to ``_. You should see the istSOS Web Admin page. .. note:: If an error occurs, take a look at the Apache error log with this command to understand what’s going wrong In *Ubuntu* try: :: tail -f /var/log/apache2/error.log In Windows open the file: :: \logs\error.log