How to install OpenERP 6.0 on Ubuntu 10.04 LTS Server (Part 1)
Update: 22/02/2012. OpenERP 6.1 was released today. I’ve written a howto for this new version here.
Recently at work, we’ve been setting up several new instances of OpenERP for customers. Our server operating system of choice is Ubuntu 10.04 LTS.
Installing OpenERP isn’t really that hard, but having seen several other “How Tos” on-line describing various methods where none seemed to do the whole thing in what I consider to be “the right way”, I thought I’d explain how we do it. There are a few forum posts that I’ve come across where the advice is just plain wrong too, so do be careful.
As we tend to host OpenERP on servers that are connected to the big wide Internet, our objective is to end up with a system that is:
- A: Accessible only via encrypted (SSL) services from the GTK client, Web browser, WebDAV and CalDAV
- B: Readily upgradeable and customisable
One of my friends said to me recently, “surely it’s just sudo apt-get install openerp-server
isn’t it?” Fair enough; this would actually work. But there are several problems I have with using a packaged implementation in this instance:
- Out-of-date. The latest packaged version I could see, in either the Ubuntu or Debian repositories, was 5.0.15. OpenERP is now at 6.0.3 and is a major upgrade from the 5.x series.
- Lack of control. Being a business application, with many configuration choices, it can be harder to tweak your way when the packager determined that one particular way was the “true path”.
- Upgrades and patches. Knowing how, where and why your OpenERP instance is installed the way it is, means you can decide when and how to update it and patch it, or add custom modifications.
So although the way I’m installing OpenERP below is manual, it gives us a much more fine-grained level of control. Without further ado then here is my way as it stands currently (“currently” because you can almost always improve things. HINT: suggestions for improvement gratefully accepted).
[Update 18/08/2011: I’ve updated this post for the new 6.0.3 release of OpenERP]
Step 1. Build your server
I install just the bare minimum from the install routine (you can install the openssh-server during the install procedure or install subsequently depending on your preference).
After the server has restarted for the first time I install the openssh-server package (so we can connect to it remotely) and denyhosts to add a degree of brute-force attack protection. There are other protection applications available: I’m not saying this one is the best, but it’s one that works and is easy to configure and manage. If you don’t already, it’s also worth looking at setting up key-based ssh access, rather than relying on passwords. This can also help to limit the potential of brute-force attacks. [NB: This isn’t a How To on securing your server…]
sudo apt-get install openssh-server denyhosts
Now make sure you are running all the latest patches by doing an update:
sudo apt-get update
sudo apt-get dist-upgrade
Although not always essential it’s probably a good idea to reboot your server now and make sure it all comes back up and you can still login via ssh.
Now we’re ready to start the OpenERP install.
Step 2. Create the OpenERP user that will own and run the application
sudo adduser --system --home=/opt/openerp --group openerp
This is a “system” user. It is there to own and run the application, it isn’t supposed to be a person type user with a login etc. In Ubuntu, a system user gets a UID below 1000, has no shell (well it’s actually /bin/false
) and has logins disabled. Note that I’ve specified a “home” of /opt/openerp
, this is where the OpenERP server, and optional web client, code will reside and is created automatically by the command above. The location of the server code is your choice of course, but be aware that some of the instructions and configuration files below may need to be altered if you decide to install to a different location.
Step 3. Install and configure the database server, PostgreSQL
sudo apt-get install postgresql
Then configure the OpenERP user on postgres:
First change to the postgres user so we have the necessary privileges to configure the database.
sudo su - postgres
Now create a new database user. This is so OpenERP has access rights to connect to PostgreSQL and to create and drop databases. Remember what your choice of password is here; you will need it later on:
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt openerp
Enter password for new role: ********
Enter it again: ********
[Update 18/08/2011: I have added the --no-superuser
switch. There is no need for the openerp database user to have superuser privileges.]
Finally exit from the postgres user account:
exit
Step 4. Install the necessary Python libraries for the server
sudo apt-get install python python-psycopg2 python-reportlab \
python-egenix-mxdatetime python-tz python-pychart python-mako \
python-pydot python-lxml python-vobject python-yaml python-dateutil \
python-pychart python-webdav
And if you plan to use the Web client install the following:
sudo apt-get install python-cherrypy3 python-formencode python-pybabel \
python-simplejson python-pyparsing
Step 5. Install the OpenERP server, and optional web client, code
I tend to use wget for this sort of thing and I download the files to my home directory.
Make sure you get the latest version of the application files. At the time of writing this it’s 6.0.2 6.0.3; I got the download links from their download page.
wget http://www.openerp.com/download/stable/source/openerp-server-6.0.3.tar.gz
And if you want the web client:
wget http://www.openerp.com/download/stable/source/openerp-web-6.0.3.tar.gz
Now install the code where we need it: cd to the /opt/openerp/
directory and extract the tarball(s) there.
cd /opt/openerp
sudo tar xvf ~/openerp-server-6.0.3.tar.gz
sudo tar xvf ~/openerp-web-6.0.3.tar.gz
Next we need to change the ownership of all the the files to the openerp user and group.
sudo chown -R openerp: *
And finally, the way I have done this is to copy the server and web client directories to something with a simpler name so that the configuration files and boot scripts don’t need constant editing (I call them, rather unimaginatively, server
and web
). I started out using a symlink solution, but I found that when it comes to upgrading, it seems to make more sense to me to just keep a copy of the files in place and then overwrite them with the new code. This way you keep any custom or user-installed modules and reports etc. all in the right place.
sudo cp -a openerp-server-6.0.3 server
sudo cp -a openerp-web-6.0.3 web
As an example, should OpenERP 6.0.4 come out next, I can extract the tarballs into /opt/openerp/
as above. I can do any testing I need, then repeat the copy command (replacing 6.0.3 obviously) so that the modified files will overwrite as needed and any custom modules, report templates and such will be retained. Once satisfied the upgrade is stable, the older 6.0.3 directories can be removed if wanted.
That’s the OpenERP server and web client software installed. The last steps to a working system are to set up the two (server and web client) configuration files and associated init
scripts so it all starts and stops automatically when the server boots and shuts down.
Step 6. Configuring the OpenERP application
The default configuration file for the server (in /opt/openerp/server/doc/
) could really do with laying out a little better and a few more comments in my opinion. I’ve started to tidy up this config file a bit and here is a link to the one I’m using at the moment (with the obvious bits changed). You need to copy or paste the contents of this file into /etc/
and call the file openerp-server.conf
. Then you should secure it by changing ownership and access as follows:
sudo chown openerp:root /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf
The above commands make the file owned and writeable only by the openerp user and only readable by openerp and root.
To allow the OpenERP server to run initially, you should only need to change one line in this file. Toward to the top of the file change the line db_password = ********
to have the same password you used way back in step 3. Use your favourite text editor here. I tend to use nano, e.g. sudo nano /etc/openerp-server.conf
Once the config file is edited, you can start the server if you like just to check if it actually runs.
/opt/openerp/server/bin/openerp-server.py --config=/etc/openerp-server.conf
It won’t really work just yet as it isn’t running as the openerp user. It’s running as your normal user so it won’t be able to talk to the PostgreSQL database. Just type CTL+C
to stop the server.
Step 7. Installing the boot script
For the final step we need to install a script which will be used to start-up and shut down the server automatically and also run the application as the correct user. Here’s a link to the one I’m using currently.
Similar to the config file, you need to either copy it or paste the contents of this script to a file in /etc/init.d/
and call it openerp-server
. Once it is in the right place you will need to make it executable and owned by root:
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
In the config file there’s an entry for the server’s log file. We need to create that directory first so that the server has somewhere to log to and also we must make it writeable by the openerp user:
sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp
Step 8. Testing the server
To start the OpenERP server type:
sudo /etc/init.d/openerp-server start
You should now be able to view the logfile and see that the server has started.
less /var/log/openerp/openerp-server.log
If there are any problems starting the server now you need to go back and check. There’s really no point ploughing on if the server doesn’t start…
If you now start up the GTK client and point it at your new server you should see a message like this:
Which is a good thing. It means the server is accepting connections and you do not have a database configured yet. I will leave configuring and setting up OpenERP as an exercise for the reader. This is a how to for installing the server. Not a how to on using and configuring OpenERP itself…
What I do recommend you do at this point is to change the super admin password to something nice and strong. By default it is “admin” and with that a user can create, backup, restore and drop databases (in the GTK client, go to the file menu and choose the Databases -> Administrator Password option to change it). This password is written as plain text into the /etc/openerp-server.conf file. Hence why we restricted access to just openerp and root.
One rather strange thing I’ve just realised is that when you change the super admin password and save it, OpenERP completely re-writes the config file. It removes all comments and scatters the configuration entries randomly throughout the file. I’m not sure as of now if this is by design or not.
Now it’s time to make sure the server stops properly too:
sudo /etc/init.d/openerp-server stop
Check the logfile again to make sure it has stopped and/or look at your server’s process list.
Step 9. Automating OpenERP startup and shutdown
If everything above seems to be working OK, the final step is make the script start and stop automatically with the Ubuntu Server. To do this type:
sudo update-rc.d openerp-server defaults
You can now try rebooting you server if you like. OpenERP should be running by the time you log back in.
If you type ps aux | grep openerp
you should see a line similar to this:
openerp 708 3.8 5.8 181716 29668 ? Sl 21:05 0:00 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf
Which shows that the server is running. And of course you can check the logfile or use the GTK client too.
Step 10. Configure and automate the Web Client
Although it’s called the web client, it’s really another server-type application which [ahem] serves OpenERP to users via a web browser instead of the GTK desktop client.
If you want to use the web client too, it’s basically just a repeat of steps 6, 7, 8 and 9.
The default configuration file for the web client (can also be found in /opt/openerp/web/doc/openerp-web.cfg) is laid out more nicely than the server one and should work as is when both the server and web client are installed on the same machine as we are doing here. I have changed one line to turn on error logging and point the file at our /var/log/openerp/
directory. For our installation, the file should reside in /etc/
, be called openerp-web.conf
and have it’s owner and access rights set as with the server configuration file:
sudo chown openerp:root /etc/openerp-web.conf
sudo chmod 640 /etc/openerp-web.conf
Here is a web client boot script. This needs to go into /etc/init.d/
, be called openerp-web
and be owned by root and executable.
sudo chmod 755 /etc/init.d/openerp-web
sudo chown root: /etc/init.d/openerp-web
You should now be able to start the web server by entering the following command:
sudo /etc/init.d/openerp-web start
Check the web client is running by looking in the log file, looking at the process log and, of course, connecting to your OpenERP server with a web browser. The web client by default runs on port 8080 so the URL to use is something like this: http://my-ip-or-domain:8080
Make sure the web client stops properly:
sudo /etc/init.d/openerp-web stop
And then configure it to start and stop automatically.
sudo update-rc.d openerp-web defaults
You should now be able to reboot your server and have the OpenERP server and web client start and stop automatically.
I think that will do for this post. It’s long enough as it is!
I’ll do a part 2 in a little while where I’ll cover using apache, ssl and mod_proxy to provide encrypted access to all services.
[UPDATE: Part 2 is here]
Tags: CalDAV, denyhosts, Hosting, OpenERP, openssh, PostgreSQL, Server, The Open Learning Centre, Ubuntu, Virtualisation
Very interesting! Not a simple beast is openerp is it ?
Version 6 is a huge improvement in usability. And although this looks quite a long post, there aren’t actually that many commands. And considering you’re essentially getting something similar to SAP I reckon that’s not too bad a deal at all 😉
Alan
>>you’re essentially getting something similar to SAP<<
And that's a good thing?
BTW – uzERP is a one-command install from on base debian/ubuntu i.e. dpkg -i uzerp_xx.deb and point your web browser.
Martyn
Hi Martyn,
I never said SAP was a good thing 😉
And as I stated at the top, a “one-click” install is available for OpenERP (get the deb here) but it doesn’t give me the control I want.
I’ve just built a new machine for a client tonight. Following the instructions above. After the server itself was built, the rest took about 7 minutes…
Great manual! In the Netherlands, Open ERP gaining business used at the expense of Exact, Afas and Unit4.
Heya, I’m packaging the updated openerp5 and openerp6 for debian now. Will upload to debian archive soon and there is a ppa on launchpad. It’s a bit raw around the edges right now but soon i’ll add automatic database user creation. At least my packages run behind mod_wsgi =))))
@Dmitrijs,
Thanks for the info. I’m especially interested to hear about using mod_wsgi. Currently we are running behind mod_proxy so effectively duplicating processes. Got any docs or info about how you configure for this?
Cheers
[…] Twitter Feed « How to install OpenERP 6 on Ubuntu 10.04 LTS Server (Part 1) […]
Hello,
I hope this is the correct place to shoot in a question on installation of OpenErp. If not, any pointer to where I can post such a question?
My system is running Debian Squeeze and the Python version is 2.6. At least that is what I get when I do “python -V”
I just downloaded and tried to install the latest .deb packages from http://www.openerp.com/downloads.
When I install the package, I get a lot of python compile errors like:
Compiling /usr/lib/pymodules/python2.4/openerp-server/tools/translate.py ...
File "/usr/lib/pymodules/python2.4/openerp-server/tools/translate.py", line 223
finally:
Now I am a bit puzzled because those packages are in the directory python2.4 and the python version I use is 2.6. I don’t speak Python, but I found out that the syntax errors are related to the try/except/finally syntax which was revisited after 2.4. But I do have Python 2.6.
Before this attempt I installed OpenErp 5 on Debian without problems. (And uninstalled it before installing 6.0.
BTW, on the OpenErp downloads page the latest version points to version 6.0.2-0, not to 6.0.2-1. I tried to install both resulted in the same errors.
jlinkels
Hi Hans,
That sounds a little like a Python Path issue. I’d start by doing some googling for PYTHONPATH and Debian.
But I’d also not be installing from the deb either 😉
I just see there is an OpenErp user forum. I guess it is better to leave a message there, right?
jlinkels
@Hans, it entirely depends what the message is about.
Thanks for the great work, your tutorial is by far the best I have found and it has helped me tremendously! I like the fact you don’t run the setup script, it would otherwise copy files all over the place with IMHO weird file location defaults (configuration file in the “doc” folder!?). Your guide is much more “elegant”.
And all the ssl configuration tips are super valuable. And I learned about denyhosts, which was a smart tip.
Thank you!
@Marcelo,
Thanks for the compliments. Also, if you find any improvements please let me know and I will update it.
nice work Alan, how about how to install 6.1 trunk, very different….
@Claude,
Thanks and that sounds like a good suggestion to do the same for 6.1. Although a blog post will probably have to wait a while…
Hi Alan,
Finally an installation tutorial which works for Linux/OpenERP newbies too.
Good job!
OpenERP world really needs this kind of step by step tuts with detailed explanations. Otherwise it just scares new people away , and then what is the point …
Thanks!
hi Alan
nice tutorial!
i have some trouble about upgrade the server and module,
can u give detail explanation about the upgrade process
thank you very much!!
Can’t make the web start. The server run fine, but the web don’t run.
ds1288:/opt/openerp/web# ps -ef | grep openerp
openerp 7980 1 0 13:05 ? 00:00:00 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf
root 8850 7109 0 13:31 pts/0 00:00:00 grep openerp
No error.
Here is the error:
Traceback (most recent call last):
File “/opt/openerp/web/openerp-web.py”, line 11, in
from openobject.commands import start, ConfigurationError
File “/opt/openerp/web/openobject/__init__.py”, line 11, in
import controllers._root
File “/opt/openerp/web/openobject/controllers/_root.py”, line 5, in
from openobject.tools import expose
File “/opt/openerp/web/openobject/tools/__init__.py”, line 2, in
from _expose import *
File “/opt/openerp/web/openobject/tools/_expose.py”, line 39, in
cherrypy.engine.autoreload.files.add(res)
AttributeError: ‘function’ object has no attribute ‘files’
Hi Henrique,
I’ve not seen that error before but this howto does work if you follow the instructions correctly.
As the error mentions “ConfigurationError” perhaps the first place to look is the openerp-web.conf file and the associated init.d start-up script…
Hi. Thanks for saving my day! 🙂
Anyway, I recently found some errors when installing this to Ubuntu 10.04. The installation went perfectly fine. But when I tried to run the web client (the server app was running perfect btw), it returned the usual “Starting openerp-web” message, but no process whatsoever was found.
After trying to find out why, I found that the locale settings weren’t set properly. All I did was to add the locale settings to the /etc/environment, reboot, and voila!
Hope this helps.
The problem WAS in openerp-web.conf, especially around the row where the path to log files is set. the path is kinda wrong cause when it`s commented everything runs smoothly! =)
“Could not create database.”
I open the site of my installed by chromium: http://192.168.15.95:8080/openerp/database/do_create
Occurred to the error when I create a database.
How can I solve? (ubuntu 11.04)
thank’s
There could be many reasons for this error.
First thing is to make sure you changed the entry for db_password in /etc/openerp-server.conf to be the same as the one you used to create the openerp PostgreSQL user in the first place.
Secondly, I would check the log files.
I doubt anyone could help you without more information.
Good luck.
I’m sure the password is correct in the openerp-server.conf file, I use the same account can successfully access the PostgretSQL service by pgAdmin III in other PC, and create a new database;
in addition, the error of openerp-server.log: ERROR:dbconnection_pool:Connection to the database failed.
Hi Alan Lord
Has been resolved. Modify the pg_hba.conf file.
thank’s
I am not sure why you needed to modify that file.
The instructions in this post work. On Ubuntu 10.04 LTS if a reader follows the instructions accurately it will work; every time.
I have never needed to alter the pg_hba.conf file.
Hi Alan Lord
However, there is now a new problem.
That is not backed up the database. I have not tested it to restore the database.
Error: Could not backup database
I have used this article as the basis to write a Chef cookbook that automates the complete installation. Have a look at Chef in general and at the cookbook itself. Sources are on Github and contributions are welcome via pull requests.
Interesting idea, thanks for the info.
I’ve been doing some testing recently and I’m fairly sure that the postgres user we create does NOT need to be a superuser. I want to do a couple more trials before updating this page (it is getting quite a lot of hits) but it is likely that those instructions will change. So in your database.rb recipe I think you will be able to set
createrole false
superuser false
or however the rb syntax works.
Keep monitoring this page for updates… 🙂
Thanks again
Hi.
Step 8 :
/etc/init.d/openerp-server: line 22: /etc/rc.d/init.d/functions: Aucun fichier ou dossier de ce type..
?
Hi dovile,
I’m not sure I understand. Line 22 of the openerp-server file is a blank line. The lines above and below it are:
# Specify the user name (Default: openerp).
USER=openerp
# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"
Are you sure you are using the same file that is linked to here?
I do not think this file
/etc/rc.d/init.d/functions
exists in Ubuntu (and it wouldn’t be in that directory anyway!).Hi Alan,
Thanks for your mail..
I used the original file, not your file.
Now :
user@debian-preprod:~# /etc/init.d/openerp-server start
Starting openerp-server: openerp-server.
But the log file is emtpy
and when I try to stop the process
user@debian-preprod:~# /etc/init.d/openerp-server stop
Stopping openerp-server: start-stop-daemon: warning: failed to kill 1405: No such process
openerp-server.
User and config file are all right.
Hi dovile,
I’m not sure but did you use sudo when you tried to run the init script?
user@debian-preprod:~# sudo /etc/init.d/openerp-server start
?This howto does work – I build servers this way all the time.
I wrote it for Ubutnu 10.04 LTS so if you are using debian instead then I guess it will be similar to Ubuntu but it might not all be the same… You will have to check everything from the start.
You can also try running the server from the command line after ‘su’ing to the openerp user like this:
sudo su -s /bin/bash openerp
(The -s /bin/bash is needed as the openerp user has no shell normally)Then run it like:
/opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf
At least you may see what the problem is.
HTH
Legend, end off.
I have installed Ubuntu Server on an Oracle Virtual Box. I have followed all the steps but not able to change directory to openerp
may you please help
That was a spelling problem when creating directory
Hello,
Wonderful tuto. I learn a lot with it.
Work great.
But what about the openerp_report_designer.zip. I am using 6.0.2 with the web-client.
When I configure the base_report_designer I have to save the OpenObject Report Designer Plug-in.
I clik ‘save as’ and I get an error message from my webroser (iceweasel) : file not found.
I have other installation of openerp and there is no problem with that.
Do you have this problem? Any idea to solve this problem?
thanks
FRancois
Hi Laurent,
Thanks for the comment.
I haven’t used the report designer for some time now. Our preferred choice is to use the Aeroo Report project https://launchpad.net/aeroo.
But I do not see why the report designer module should not work. Perhaps someone else can help if they read this…
Great howto
In Debian 6, if dependency-based booting is enabled, you shuld use
insserv openerp-server
insteadupdate-rc.d openerp-server defaults
(http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot).And before running it, add a reference to postgresql service in the header of openerp-server init.d script so openerp-server starts after postgresql, eg.:
Required-Start: $remote_fs $syslog postgresql
Thanks for the tips Boris. 🙂
your copy link is wrong, with cp -a nobody will be able to upgrade the installation files ;D
@zambanini I’m not sure I get what you mean.
cp -a
is equivalent tocp -dr --preserve=all
which copies recursively, and preserves the file ownerships and other settings so the copy will be owned by the user & group openerp as in the previous command we set the ownership of the original files to openerp:openerp.Care to explain your thinking a bit more?
Thanks
well, if you want to upgrade from one openerp version to another,
you will not be happy with cp -a ..since this command will copy the new folder within the old
so you will have following folder structure /oldfolder/newfolder
..so not the files within the folder will be copied…but the complete folder
I guess
@zambanini
I think this is correct.
If for example openerp 6.0.4 comes out next week:
sudo cp -a openerp-server-6.0.4 server
will overwrite the previous version’s system files but not change any custom modules that you have installed. All the configuration is in /etc so I think this is correct.The alternative is that you have to find and copy all of the custom modules over to a new “server” directory and then re-configure or rename the config files or directories.
Alan, great tutorial. I have read through it a few times and am interested in deploying OpenERP on a test basis at a non-profit for which I am responsible for the network and server. However, we use Zentyal as our server linux distro (sits on top of Ubuntu 10.04 http://www.zentyal.com/ whose web admin interface is accessed by pointing Firefox (on a LAN PC) to https://server-LAN-ip. Of course the problem is that also appears to be how the web interface of OpenERP is accessed. Any advice on how this could work would be appreciated. I would prefer to install OpenERP on our server (which also runs Zentyal) for redundancy and backup security reasons (RAID1 plus weekly rsync backup runs) but installing it on a separate “sidecar” server may be the only workable solution.
Thanks for sharing all of this. Kind Regards.
I’m familiar with Zentyal. It’s a great product (in fact we use it for our own mailserver system now).
We tend to isolate our various systems by virtualising them so Zentyal runs in one Virtual Machine, OpenERP another, vtiger CRM in another and so forth. They can then sit atop one or more hardware systems.
However I don’t see why you couldn’t run OpenERP on the same server as Zentyal. It would need some though but you can access OpenERP on whatever port you want and/or you could probably set up a different vhost for OpenERP.
Thanks for the reply, friend. Also, would you please clarify what one gains by implementing Part 2 of your tutorial. I am assuming that Part 2 is for folks who will use OpenERP from the internet (from home, from the road, or in any case outside the office LAN.) If someone will only be using OpenERP from the on site LAN, is there any need for Part 2? It seems to me that by leaving off Part 2, it solves my problem of a conflict between the Zentyal administration web access and OpenERP-web if I can merely access OpenERP-web from http://LAN-server-ip:8080. Will you confirm or deny this for me? Thanks again so very much for sharing all of this. On our LAN, I figured I will use the gtk client for our Linux boxes, but we also have some MACs where it seems like the web interface would be ideal. Thanks again 🙂
Hi stlouisubuntu,
Yes, the idea of part 2 is to provide encrypted access to all of the services on OpenERP (Web, GTK and WebDAV/CalDAV). If your OpenERP system lives inside your network and users do not need remote access then you do not need to implement part 2.
Alan,
Thank you for a most excellent and helpful tutorial for an OpenERP newbie like myself. It was a great help and worked fine!
Magic! Thanks for the educational tutorial
Alan,
I have followed your tutorial in detail (a helpful tool for everyone) but in step 8 when I check the log file (less /var/log/openerp/openerp-server.log) I came across with the following error:
[2011-09-18 21:26:42,274][?] ERROR:httpd:Error occured when starting the server daemon.
Traceback (most recent call last):
File “/opt/openerp/server/bin/service/http_server.py”, line 147, in __init__
self.server = ThreadedHTTPServer((interface, port), handler, proto=self._RealProto)
File “/opt/openerp/server/bin/service/http_server.py”, line 75, in __init__
HTTPServer.__init__(self, addr, requestHandler)
File “/usr/lib/python2.7/SocketServer.py”, line 408, in __init__
self.server_bind()
File “/usr/lib/python2.7/BaseHTTPServer.py”, line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.7/SocketServer.py”, line 419, in server_bind
self.socket.bind(self.server_address)
File “/usr/lib/python2.7/socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 98] Address already in use
[2011-09-18 21:44:48,676][?] INFO:server:OpenERP version – 6.0.3
[2011-09-18 21:44:48,677][?] INFO:server:addons_path – /opt/openerp/server/bin/addons
[2011-09-18 21:44:48,677][?] INFO:server:database hostname – localhost
[2011-09-18 21:44:48,677][?] INFO:server:database port – 5432
[2011-09-18 21:44:48,677][?] INFO:server:database user – openerp
[2011-09-18 21:44:48,677][?] INFO:server:initialising distributed objects services
[2011-09-18 21:44:48,961][?] ERROR:httpd:Error occured when starting the server daemon.
Traceback (most recent call last):
File “/opt/openerp/server/bin/service/http_server.py”, line 147, in __init__
self.server = ThreadedHTTPServer((interface, port), handler, proto=self._RealProto)
File “/opt/openerp/server/bin/service/http_server.py”, line 75, in __init__
HTTPServer.__init__(self, addr, requestHandler)
File “/usr/lib/python2.7/SocketServer.py”, line 408, in __init__
self.server_bind()
File “/usr/lib/python2.7/BaseHTTPServer.py”, line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.7/SocketServer.py”, line 419, in server_bind
self.socket.bind(self.server_address)
File “/usr/lib/python2.7/socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 98] Address already in use
I searched about it (http://powerphil.wordpress.com/2011/01/28/how-to-install-and-configure-an-openerp-6-0-1-server-and-web-server-on-an-ubuntu-10-10-server/) and it seems that there is another process running on the same address, but I don’t know whether this is my case and if so what process do I have to kill to in order to get the server up and running.
Thanks in advance.
This is the interesting bit:
error: [Errno 98] Address already in use
.You have another process that has already taken the ports you have configured in your openerp-server.conf file (It is commonly just another instance of OpenERP already running).
Run something like
sudo netstat -alntp | grep LIST
and it will show you the processes that are listening on which ports.Alan…Thanks for your quick answer, I didn’t do anything different rather than rebooting ubuntu and restarting up the GTK Client again and it works fine, I’ll keep your suggestion on mind for further implementations.
Regards
Hi, thanks Alan for this nice tutorial but…
I got an error when starting the server with the command line from the step 8 here above:
sudo /etc/init.d/openerp-server start
it just returns:
/etc/init.d/openerp-server: 1: N: not found
Please anyone can help me ?
First I would like to Thanks!!! for giving us a wonderful document step-by-step with explaination.
My openerp server was working fine even from remote.
Today I say that server is giving and not responding since my developer were working on this first time.
————–
First Error
[2011-09-24 09:12:01,510][sample] ERROR:db.cursor:bad query: UPDATE res_users SET date=now() WHERE login=E’demo’ AND password=E’demo’ AND active RETURNING id
Traceback (most recent call last):
File “/opt/openerp/server/bin/sql_db.py”, line 131, in execute
res = self._obj.execute(query, params)
OperationalError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
———————-
I deleted my sample database in postgresql and restart – postgresql-8.4, openerp-server, openerp-web.
openerp-server gives the following error now.
openerp@mark:/root$ /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf
Traceback (most recent call last):
File “/opt/openerp/server/bin/openerp-server.py”, line 112, in
service.http_server.init_servers()
File “/opt/openerp/server/bin/service/http_server.py”, line 232, in init_servers
int(tools.config.get(‘xmlrpc_port’, 8069)))
File “/opt/openerp/server/bin/service/http_server.py”, line 212, in __init__
handler=MultiHandler2)
File “/opt/openerp/server/bin/service/http_server.py”, line 147, in __init__
self.server = ThreadedHTTPServer((interface, port), handler, proto=self._RealProto)
File “/opt/openerp/server/bin/service/http_server.py”, line 75, in __init__
HTTPServer.__init__(self, addr, requestHandler)
File “/usr/lib/python2.6/SocketServer.py”, line 400, in __init__
self.server_bind()
File “/usr/lib/python2.6/BaseHTTPServer.py”, line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.6/SocketServer.py”, line 411, in server_bind
self.socket.bind(self.server_address)
File “”, line 1, in bind
socket.error: [Errno 98] Address already in use
openerp@mark:/root$ ^C
——————————–
Now I am freezed, how to clear this error and start the server.
When I connecting from remote OpenERP client / browser
IN OpenERP client
I am getting this error message Database cannot be accessed or does not exist
“Please double-check the database name or contact your administrator to verify the database status”
IN browser,
Bad username or password
Kindly help me!!!
The clue is here I think:
socket.error: [Errno 98] Address already in use
Either you have added another service on the server which is using the same port as one of the OpenERP services or you are trying to “start” OpenERP when it is already running.
Thank you very much! It’s a great post.
[…] another link Information Technology, Open ERP none […]
It worked perfect! Thank you very much!
Thanks!
Thanks a lot for this great tutorial!
It helped me a lot in my first install of OpenERP.
Hi Alan,
during the testing of the OpenErp, i find that if I change the super admin password from the openerp-web interface, same to the password stored in the file openerp-server.conf, when I reboot the OS (Ubuntu 10.04 LTS)the super admin password it reset by itself to the default password “admin”. Any idea why is happened this? Thanks for the answer Simone
When you change the super admin password, it gets written to the openerp-server.conf file; actually the whole file is re-written from what I can tell as it seems to mess up any care I have taken to order/group settings 🙁
As to why it is reverting after a reboot I really couldn’t say. Are you *sure* that the file is actually being written to when you save the new password? Check the owner and permissions of the file.
Hi Alan,
thanks very much, the problem was the owner of the openerp-server.conf. Now work fine. Thanks Simone
Thanks for this guide. Very well written and easy to follow along.
But for some reason, that I don’t understand I cannot get the gtk-client working with the server. The client says No database found, you must create one ! So that means there is some connection going on, but I cannot login or more specifically the ok button does not turn green… As far as I know the default user is admin and the password also admin. So I should be able to login.
If I follow your guide for the webinterface it works as expected, but I’d rather keep a simple setup to play around without a webserver.
Any ideas how I can solve this?
That sounds correct.
Open the GTK Client, cancel the “No database” popup dialogue. Go to the File menu and choose Databases->New Database.
As a clean install OpenERP does not have any databases installed. You must first create one.
Ok got it fixed, already. It is just me struggling with the new Unity interface. The option to create a new database was hidden under the upper panel and suddenly I noticed it when i went over it with the mouse…
Sorry very stupid not to notice it earlier…
Great tutorial, helped me get a demonstration server setup correctly. Thanks!
Greate Tutorial! Managed to install openerp server and web in Ubuntu 11.04 without any problem. Thanks for this!
Hi, was wondering if you have installed the magento connector – I followed your instructions to the letter and installed Openerp 6 with absolutely no glitches whatsoever. Thanx a million 🙂
Any info on the connector though would be extremely appreciated.
Thanx again.
D.
Hi Demetri,
Unfortunately not. It’s not something we have needed to install yet.
Hi Alan,
I am getting the following errors, please let me now if you can help me in any way I have been working on this for the past 3 days and am not very technically sound. I am installing openerp on my rackspace cloud server.. it runs Ubuntu 10.04
1. When I use the command ps aux | grep openerp as you have mentioned above. My OS says “1000 4532 0.0 0.1 6204 584 tty0 R+ 12:14 0:00 grep openerp” I am not sure if this makes sense and if this means that the server is running or not.
2. When I try to run the GTK client on my Ubuntu 10.04 rackspace cloud server. It gives me an ImportError: No module named pygtk. It gives me the same error if I try to run the GTK client on my mac osx lion.
3. When I tried to run the web-client. It worked the first time. However after rebooting the server it started giving me the error message
“/etc/init.d/openerp-web: 24: CONFIGFILE: not found
Starting openerp-web: openerp-web.”
4. Also when I use the “http:// my-ip:8080” firefox shows me a “can’t establish connection” error.
Not sure what exactly I can do and where I am going wrong. I have followed the steps above over and over again but am still not being able to get it to run. Please help! Thanks.
– Mudit
@Mudit,
1. If that is the only line you get back then OpenERP is not running.
2. Why are you trying to run the “client” on the server in the cloud? The client has different Python dependencies to the server and one wouldn’t normally be running it on the server at all.
3. There is probably something wrong with the file /etc/init.d/openerp-web as that error looks like it is not trying to assign the path to the variable CONFIGFILE but read it directly.
4. I am not surprised.
It looks like there are a number of issues here which are not going to be easily resolved on a blog post.
I’d be glad to help you get OpenERP installed on your server if you like. I will email you off line to discuss our rates.
Hi, the problem number 3 described by Mudit can be resolve changing in the script the parametr USER=root .
This is a bad idea, but at moment I don’t found a better solution! Seems that the problem is in openerp user local settings, but I’m still investigation…
Thanks for commenting Andre, and yes that’s a very bad idea!
Come to think of it I’m not sure if OpenERP will even run as root at all. Certainly in the forthcoming 6.1 release there are checks to stop the server starting if it is running as root.
Dear Alan,
Thanks you for the very clear tutorial and I thought I was going at a good pace and although the server seems to run when started manually (just before Step 7) when I run the log file test in Step 8 I get nothing. No log file, no errors. Running the openerp-server stop command it reports “No such Process”. I spent the last couple of hours checking the paths and file names and reading through the comments above but I am at a loss now.
Can you help?
Chris
Hi Chris,
The instructions do work if followed precisely.
I would check that:
1. That the /etc/init.d/openerp-server file is executable and able to read the /etc/openerp-server.conf file correctly. Check permissions and ownership using the
ls -l
command.2. The directory /var/log/openerp exists and is correctly owned:
ls -l /var/log/
The openerp directory should look like this:drwxr-xr-x 2 openerp root 4096 2011-11-01 17:06 openerp
3. The server is running as the correct user, openerp, when starting: use the
ps aux | grep openerp
command.It doesn’t sound like much is wrong – just take your time to make sure all the file permissions are correct.
Dear Alan,
No luck so far, checked permissions, etc. I must not be understanding something. One thing though, does it matter whether I am using SSH or password login to run the console?
Thanks,
Chris
Hi Chris,
Nope. It shouldn’t matter if you are logged in remotely or not.
Hi Alan,
Going through all with a fine comb now. I stumble on the problems of the linux dummy. Like how do I test the postgres password? I thought it is a normal linux user but it doesn’t do su – postgres, at least it keeps telling me the password is wrong. How do I check / set this?
Thanks,
Chris
@Chris,
The postgres user shouldn’t have a password by default.
But to su to it you must use sudo (i.e. gain root privileges) first so:
sudo su - postgres
HTH
Hi Alan,
Thank you very much for the instructions and for helping me out here. Sorry it has taken so long for me to get back to this project. I must have done something wrong in one of the configuration files, I resolved the issue simple by downloading the openerp-server.conf and openerp-server again from the links in your instructions and then apply the required modifications. After that all went right and my OpenERP server is buzzing away now and serving the connected clients. Thanks Alan.
Regards,
Chris
@Chris,
That’s great. I’m glad it is now all working for you.
Thanks for letting everyone know.
Awesome explanation ! I did setup server on Debian 6.0.2 in just few minutes.
Thanks a lot for yout time and patience in explaining this depth.
Regards,
Gururaj
Hi Gururaj
Can you please share the knowledge. If any changes are to be made for installation on Debian 6.X.X?
Thanks
SCN
Nice, was very helpful 😉
I have a major problem. I create a database form the web interface. then Im logged it but when I logout i cant log in again. Or the same happens when I restart the postgresql server. Ther is always the message that i provided a bad username or password.
i tried everything that came up to my mind. I reinstalled postgre from scratch. reinstalled all the packages needed.
Hope you can help me. let me know if you need further information to solve the problem.
Regards
Sorry,
I don’t really understand why that should be happening.
My instinct would be to check your encoding settings, e.g. UTF-8 vs something else? But other than that I have no idea what could be wrong.
Are there any errors being reported in the logs?
After creating a database I restart postgresql. Then I restart openerp-server and web. But then I cant log in again. Everything works just fine before restarting.
Here are some logs
[2011-11-17 15:59:46,190][?] ERROR:httpd:Error occured when starting the server daemon.
Traceback (most recent call last):
File “/opt/openerp/server/bin/service/http_server.py”, line 147, in __init__
self.server = ThreadedHTTPServer((interface, port), handler, proto=self._RealProto)
File “/opt/openerp/server/bin/service/http_server.py”, line 75, in __init__
HTTPServer.__init__(self, addr, requestHandler)
File “/usr/lib/python2.6/SocketServer.py”, line 400, in __init__
self.server_bind()
File “/usr/lib/python2.6/BaseHTTPServer.py”, line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.6/SocketServer.py”, line 411, in server_bind
self.socket.bind(self.server_address)
File “”, line 1, in bind
error: [Errno 98] Die Adresse wird bereits verwendet
I’ve got openerp running some time ago. But didn’t use it anymore. So I also tried to install the 6.0.2 version. But I get the same result here. I think it has something to do with the sudo apt-get dist-upgrade. Maybe ther is some software in conflict… here ist the error I get from the 6.0.2 version
ERROR:httpd:Error occured when starting the server daemon.
Traceback (most recent call last):
File “/opt/openerp/server/bin/service/http_server.py”, line 147, in __init__
self.server = ThreadedHTTPServer((interface, port), handler, proto=self._RealProto)
File “/opt/openerp/server/bin/service/http_server.py”, line 75, in __init__
HTTPServer.__init__(self, addr, requestHandler)
File “/usr/lib/python2.6/SocketServer.py”, line 400, in __init__
self.server_bind()
File “/usr/lib/python2.6/BaseHTTPServer.py”, line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.6/SocketServer.py”, line 411, in server_bind
self.socket.bind(self.server_address)
File “”, line 1, in bind
error: [Errno 98] Address already in use
[2011-11-17 17:56:29,304][aaa] ERROR:db.cursor:bad query: UPDATE res_users SET date=now() WHERE login=E’admin’ AND password=E’aaa’ AND active RETURNING id
Traceback (most recent call last):
File “/opt/openerp/server/bin/sql_db.py”, line 131, in execute
res = self._obj.execute(query, params)
OperationalError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
I hope you can help me!!
I think this line is your problem:
error: [Errno 98] Address already in use
Either the server is already running or something else (like apache or tomcat for example) is bound to the port(s) that OpenERP is trying to use.
See this comment for more info
I cant reply to your comment Alan because there is no reply link…
You are right there seems to be some python stuff blocking the openerp ports. Ive changed the port settings in the openerp-server.conf but this doesnt change much here is the list with the acual port usage:
netstat -alntp | grep LIST
tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 2706/python
tcp 0 0 0.0.0.0:8070 0.0.0.0:* LISTEN 2706/python
tcp 0 0 0.0.0.0:8071 0.0.0.0:* LISTEN 2706/python
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1062/mysqld
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 11484/python
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 2173/perl
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1564/apache2
tcp 0 0 127.0.0.1:8021 0.0.0.0:* LISTEN 2706/python
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1228/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1184/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1420/master
tcp6 0 0 :::22 :::* LISTEN 1184/sshd
Regards
I think there is a “nesting limit” on replies on the front end.
That looks suspiciously like OpenERP is already running to me. Try something like
ps aux | grep python
to see what is currently running. Or grep for the Process id of what you show above “2706” and see what that is.Thanks a lot for your help. I havent got the time to continue searching for the problem but now i will try to solve it here is the result
ps aux | grep python
openerp 603 1.7 0.2 262176 34592 ? Sl Nov22 234:51 python /opt/openerp/web/openerp-web.py -c /etc/openerp-web.conf
root 1387 0.0 0.0 45888 7836 ? S Nov27 0:06 python /usr/sbin/denyhosts –daemon –purge –config=/etc/denyhosts.conf –config=/etc/denyhosts.conf
openerp 2706 0.0 0.7 434172 126880 ? Sl Nov11 21:23 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf
root 30324 0.0 0.0 7636 984 pts/0 S+ 20:05 0:00 grep –color=auto python
Regards
So openerp-server and openerp-web are both running already.
That is why you can’t start it again.
Hi,
I’ve installed openerp-server for the first time. I keep getting this error when trying to connect to it from a client or browser
[2011-11-15 20:33:50,391][template1] ERROR:db.connection_pool:Connection to the database failed
Traceback (most recent call last):
File “/opt/openerp/server/bin/sql_db.py”, line 303, in borrow
result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
OperationalError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
Thank you for helping me understand what I did wrong.
thanks, very usefull!!!
Thank you so much for this great Tuto.
I’d like to use both clients, so when you say :
How shall we install GTK Client with the same efficiency ?
Thank’s
Thanks. Installing the GTK client is easy – but you don’t want to do that on the same machine as the server. Just download the deb (or exe) from OpenERP, or copy the source tarball of the GTK client into your local ~/bin dir and run it from there.
There are some dependencies required for the client – Google is your friend 🙂
Just wanted to say “thank you” for the excellent writeup. MUCH better than the official OpenERP documentation!
really appreciate
Fantastic!
Also as a Windows User I managed to install openERP thanks.