Skip to content

How to Install ERPNext

anandpdoshi edited this page Jul 13, 2012 · 23 revisions

Note:

  1. You will need some linux background to be able to install this on your system.
  2. These are high-level instructions and by no means cover every installation issue.

Pre-requisites:

  • any unix based os
  • python 2.6+ (python 3+ not supported)
  • apache
  • mysql 5+
  • git
  • python libraries:
    • python MySQLdb
    • pytz
    • jinja2
    • markdown2
    • dateutil
    • termcolor

Fresh Installation

Steps:

  1. ensure mysql service is running
  2. go to a folder where you want to install erpnext.
  3. git clone https://github.com/webnotes/erpnext.git
  4. go to erpnext folder
  5. chmod 755 install_erpnext.py
  6. ./install_erpnext.py
  7. check your apache/httpd user and group. Most often it is either apache or _www. This can be found in its conf file.
  8. go to erpnext folder and run chown -R apache:apache * or chown -R _www:_www *. This will make the erpnext folder accessible to apache webserver.
  9. edit apache configuration file (or create an erpnext.conf file and include it in apache conf. see example below)
  10. restart apache service
  11. start your browser and go to http://localhost:8080
  12. login as user: Administrator and password: admin

What to write in apache configuration file?

	Listen 8080
	NameVirtualHost *:8080
	<VirtualHost *:8080>
		ServerName localhost
		DocumentRoot [PATH TO ERPNEXT INSTALLATION]/public/
	    AddHandler cgi-script .cgi .xml .py

		<Directory [PATH TO ERPNEXT INSTALLATION]/public/>
			# directory specific options
			Options -Indexes +FollowSymLinks +ExecCGI
		
			# directory's index file
			DirectoryIndex web.py

			# rewrite rule
			RewriteEngine on
		
			# condition 1:
			# ignore login-page.html, app.html, blank.html, unsupported.html
			RewriteCond %{REQUEST_URI} ^((?!app\.html|blank\.html|unsupported\.html).)*$
		
			# condition 2: if there are no slashes
			# and file is .html or does not containt a .
			RewriteCond %{REQUEST_URI} ^(?!.+/)((.+\.html)|([^.]+))$

			# rewrite if both of the above conditions are true
			RewriteRule ^(.+)$ web.py?page=$1 [NC,L]
		
			AllowOverride all
			Order Allow,Deny
			Allow from all
		</Directory>
	</VirtualHost>

Upgrade

  1. Backup your database!
  2. from erpnext folder, run lib/wnf.py --update origin master to update your erpnext setup with latest code, patch database and synchronize the schema (DocTypes)
  3. change your apache config file. DocumentRoot now points to public folder in erpnext.
  4. change owner of all files to apache user and group
  5. restart apache

Looking for a one click installer? Help us build one.