Installing Quickbooks Enterprise on a Linux Server.

Intuit/Quickbooks does not provide telephone support for Linux servers, and we have found their online support documentation to be very lacking in some key details that must be properly configured in order to get Multi-User access working properly.  To install Quickbooks Enterprise using a Linux server to host a Multi-User Quickbooks Company data file, follow these steps.

1.  On the Linux server, be sure to set the server name to your preferred hostname, for example ‘accounting’.  We have not tried a fully qualified hostname (for example accounting.domain.com), but do not believe that a fully qualified domain name will work.  Please use a one word hostname.

hostname accounting

2.  Install Samba on the Linux server, and edit your smb.conf configuration file.  The netbios name MUST MATCH the server hostname you set in Step 1, otherwise things will not work.  Here is an example Samba configuration:

netbios name = ACCOUNTING
interfaces = lo eth0 em1 192.168.1.2/32
hosts allow = ALL

[quickbooks]
path = /home/quickbooks
public = no
browseable = yes
guest ok = yes
writeable = yes
guest only = yes
read only = no
follow symlinks = yes
wide links = no
create mask = 0777

3.  Edit your /etc/hosts file on the Linux server.  Add your hostname at the beginning of all localhost entries.  Also, add a unique entry for for the server name as the main IP address of the server, in this case 192.168.1.2 is the main server IP address.  Here is a sample configuration:

::1 accounting localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 accounting localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.2 accounting

4.  Install the Quickbooks Linux database server manager per the instructions found at http://support.quickbooks.intuit.com/support/Articles/HOW12295 — There are different versions of qbdbm which need to match your installation of the Quickbooks client on your workstations.  For example, if you run QuickBooks Enterprise 14.0, the you will download and run the qbdbm-24.0-1.i386.rpm, and your QBDBMgrN_xx that will run on the server will be QBDBMgrN_24.

Per http://support.quickbooks.intuit.com/support/Articles/HOW12417 the following matrix is true:

Quickbooks Version DB Manager Version
Quickbooks Enterprise 2015 QBDBMgrN_25
Quickbooks Enterprise 2014 QBDBMgrN_24
Quickbooks Enterprise 2013 QBDBMgrN_23
Quickbooks Enterprise 2012 QBDBMgrN_22
Quickbooks Enterprise 2011 QBDBMgrN_21

5.  Edit your /opt/qb/util/qbmonitord.conf file and add the full path to your SMB share that will contain the QuickBooks company file.  The monitor program does not monitor sub-directories, so add each unique directory as a separate line:

/home/quickbooks

6.  Make sure that /opt/qb/util/QBGLOBALAPPCONFIG.INI reads as follows (or similar).  Older versions of qbdbm-xx.x.xxx.rpm may not have a QBGLOBALAPPCONFIG.INI — if this is missing, just skip this step.  Even though the StartPortNumber in this configuration file makes no sense, you should not have to edit this file as long as you downloaded and installed the correct version of qbdbm from the Quickbooks website.

[QBDBPortFinder]
StartPortNumber=55333
Range = 5

7.  Make sure that both qbmonitord and QBDBMgrN_xx are running:

[root@accounting]# # ps -ef | grep qb
root 27097 1 0 15:49 ? 00:00:00 /opt/qb/util/qbmonitord
root 27121 1 1 15:49 ? 00:07:06 /opt/qbes14/SYBSsa11/bin/QBDBMgrN_24 -n QB_server_24 -qs -gd all -gk all -gp 4096 -gu all -ch 512M -c 256M -x tcpip(BroadcastListener=No;port=55358) -ti 0 -ec simple -qi -qw -tl 0 -oe /var/log/qbdbmgrn_24.log

If either process is not running, you are probably missing a needed shared library — run the missing process manually from the command line, and debug any errors.  You can also use strace to try to figure out why the process will not start.  Notice how the QBDBMgrN_24 (above) is listening on port 55358, even though our QBGLOBALAPPCONFIG.INI is configured for port 55333 plus 5 for a range of 55333 -> 55338.  I can’t explain it, and no one at Intuit/Quickbooks was able to either.

The article at http://support.quickbooks.intuit.com/support/articles/HOW21086 shows the following ports that are used for each version of Quickbooks.

Quickbooks Version Ports
Quickbooks Enterprise 15.0 8019 and 55363 – 55367
Quickbooks Enterprise 14.0 8019 and 55358 – 55362 *
Quickbooks Enterprise 13.0 8019 and 55353 – 55357
Quickbooks Enterprise 12.0 8019 and 55348 – 55352
Quickbooks Enterprise 11.0 8019 and 55343 – 55347
Quickbooks Enterprise 10.0 8019 and 55338 – 55342
Quickbooks Enterprise 9.0 8019 and 55333 – 55337
Quickbooks Enterprise 8.0 10180
Quickbooks Enterprise 7.0 10172 **

* – When testing Quickbooks Enterprise 14.0 (QBDBMgrN_24), only ports 8019 and 55358 were listening on the Linux server.  Ports 55359 – 55362 were not listening on the Linux server.

** – When testing Quickbooks Enterprise 7.0 (qbdbm-12.0-14.i386.rpm), it did actually listen only on port 10172.

If you intend to test to see if these ports are open, you can telnet to each port number from a client computer from the DOS prompt — the QBDBMgrN process will only listen on the primary ethernet interface configured for the hostname in /etc/hosts, it will not listen on the localhost interface.

8.  Verify your qbdir.dat file which will be in your Samba share path.  The MachineName variable is generated by qbmonitord and is pulled from your server’s hostname configured above in steps 1 and 2.  The MachineName must be consistent across your configuration for the Multi-User configuration to work properly.  A sample configuration is as follows:

// This is QuickBooks configuration File. It exists while users are connected
// to a company file. Do not delete this file yourself. QuickBooks may not
// operate correctly if you manually delete this file.
[NetConnect]
MachineName=accounting
DirectoryPath=/home/quickbooks/

9.  Verify your company.QBW.ND file which will be in the Samba share path.  It should similar to the following.  Of course, your EngineName, Server Port, and FilePath may vary.

[NetConnect]
ServerIp=192.168.1.2
EngineName=QB_server_24
ServerPort=55358
FilePath=/home/quickbooks/company.qbw
ServerMode=1
FileConnectionGuid=

The ServerIp should be the static IP address of your server, and ServerMode should be 1 — If these two variables are not set properly, the Multi-User configuration will work properly.

10. Verify your company.QBW.DSN file which will be in the Samba share path. It should be similar to the following. Make sure that the HOST IP address and Server Name are correct.

// This is QuickBooks configuration File. It exists while users are connected
// to a company file. Do not delete this file yourself. QuickBooks may not
// operate correctly IF you manually delete this file.
[ODBC]
DRIVER=QB SQL Anywhere
Compress=NO
DisableMultiRowFetch=NO
Debug=NO
Integrated=NO
AutoStop=NO
CommLinks=TCPIP{HOST=192.168.1.2:55363}
ServerName=QB_server_24
DatabaseName=1dfafeasd165basdf54fkjx84d7fb5e5ad976d1

11. From your Windows Clients who are running the QuickBooks client software, you must be able to resolve the server hostname properly. Test this by opening a DOS window on each one of your Windows computers and make sure they can successfully ‘ping accounting’ — If you can not resolve the hostname of accounting to an IP address then your Quickbooks software will not be able to connect to the Linux server. If you can’t get name resolution to work properly, you can cheat by adding the hostname of accounting to the Windows hosts file on each client computer.

Share This Information

LET’S GET

OUR GEEK ON!