Skip to content

XAMPP Windows server support

Aaron Gong edited this page May 2, 2016 · 4 revisions

Xampp support

The below guide was kindly provided by ais-one

Note: XAMPP support is a work in progress and is not officially supported.

I got it to work on xampp (v5.6.19 - Windows 32-bit). This comment will be edited as and when problems are found. My path to the application is C:\xampp\htdocs\wpos. Later versions of XAMPP not tested yet, there may be an issue with MySQL 5.7 due to changes in GROUP BY as identified by https://github.com/micwallace/wallacepos/issues/40

NOTE THIS FOR LATER: Feed Server Cannot Start, a lot of linux commands will not work, but so far it is NOT a showstopper. Can still detect POS and run feeds.

a) MUST use https://localhost/ instead of https://127.0.0.1/

b) start feed server manually, open shell using xampp control panel and run the following commands:

cd htdocs\wpos\api
run command node server.js

###A. Start With Xampp Configuration (assume fresh install)...

enable mod_proxy_http & mod_proxy_wstunnel in C:\xampp\apache\conf\httpd.conf (uncomment their entries in the config file)

mod_rewrite already enabled - no action needed on this, FYI only

curl and gd modules seem to also have been enabled - no action needed on this, FYI only

   extension=php_curl.dll
   extension=php_gd2.dll

edit C:\xampp\apache\conf\extra\httpd-vhosts.conf, adding the text in the block below:

<VirtualHost *:443>

DocumentRoot /xampp/htdocs/wpos
ServerName 127.0.0.1

#ErrorLog ${APACHE_LOG_DIR}/error.log
#CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on
SSLCipherSuite !ADH:!DSS:!RC4:HIGH:+3DES:+RC4
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /xampp/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /xampp/apache/conf/ssl.key/server.key

<Directory /xampp/htdocs/wpos >
    AllowOverride all
</Directory>

# WSPROXY CONF
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPass /socket.io/1/websocket/ ws://localhost:8080/socket.io/1/websocket/
ProxyPassReverse /socket.io/1/websocket/ ws://localhost:8080/socket.io/1/websocket
ProxyPass /socket.io/ http://localhost:8080/socket.io/
ProxyPassReverse /socket.io/ http://localhost:8080/socket.io/
<Location /socket.io>
    Order allow,deny
    Allow from all
</Location>

</VirtualHost>

###B. Next nodejs, yucks...

add C:\xampp to the PATH environment variable on the machine, stop apache, reboot XAMPP control program, start apache.

download node,exe and npm (and npm's node_modules folder) and place it in the folder C:\xampp\

run npm install socket.io as per instructions (the node_modules\socket.io folder created should be in C:\xampp\htdocs\wpos\api\ folder), So you should get:

C:\xampp\htdocs\wpos\api\node_modules\socket.io\

FINALLY...

###C. Run https://localhost/installer

There are a few errors, nodejs related ones are important. To check if installed properly

Find the line in the file C:\xampp\htdocs\wpos\installer\index.php

`if (!`which nodejs` && !`which node`) {`

Change it to below to ignore this check, because it is node.exe (in windows XAMPP) instead of nodejs (in linux)

`if (0 && !`which nodejs` && !`which node`) {`

Ignore write-permission errors (the other statuses must be green though) and proceed to configure the database. I forgot to note down what it was but there were 2 errors regarding read/write permissions.

rename C:\xampp\htdocs\wpos\docs-template to C:\xampp\htdocs\wpos\docs (it was not renamed as it was caused by one of the errors above)

And I manage to get it working well on XAMPP (Windows 32-bit) so far... until someone else runs into problem.