<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://vistapedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kirt</id>
	<title>VistApedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://vistapedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kirt"/>
	<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php/Special:Contributions/Kirt"/>
	<updated>2026-04-24T09:02:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://vistapedia.com/index.php?title=EWD_Components&amp;diff=15301</id>
		<title>EWD Components</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=EWD_Components&amp;diff=15301"/>
		<updated>2012-09-30T11:35:00Z</updated>

		<summary type="html">&lt;p&gt;Kirt: in progress&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; EWD Components&lt;br /&gt;
The following is a functional description of the moving parts of EWD so the user/developer has a good idea of how the parts fit together and how they work or don&#039;t work.  I will describe the variant which is Open Source and specifically the back end GTM and front end JavaScript and mainly custom tag sets invoking extJS Framework and Sencha Touch for touch-based smart phones and tablet devices.  Other variants are available in the full MGateway products, but are ignored for simplicity here.&lt;br /&gt;
&lt;br /&gt;
An EWD system consists of a server system accessed by browser clients.&lt;br /&gt;
&lt;br /&gt;
The Server may run Apache or a Node-js Server (or both to be strictly correct).  As such it must have a domain-name or IP address on the LAN or the Internet.&lt;br /&gt;
&lt;br /&gt;
Usually an EWD-based system will operate securely using https:// protocol and therefore use SSH as a component of the server.  See details of how it uses port 443 typically to encrypt messages transmitted between client browser and server over what my be the public Internet or a private (hospital) Intranet (LAN - local area network plus or minus wireless linkages. See [[EWD Network and SSH]].&lt;br /&gt;
&lt;br /&gt;
An Apache web server can be a complex topic in itself because of the multitude of features and modes available in this amazing open source product.  Once configured, however, it just works and need not worry the developer after a system is set up and configured.  Getting there is managed in the [[dEWDrop]] Virtual Machine or by AstroVistA debian-type installer.&lt;br /&gt;
&lt;br /&gt;
Instead of apache, a Node js Web Server may be used as a component of EWD.&lt;br /&gt;
&lt;br /&gt;
M_Gateway is a component which runs on the server and maps the incoming URLs to GTM as special EWD references instead of other web-requests to the server.  It is analogous to older CGI requests which were mapped in early web systems to be interpreted by the Apache to create html pages from databases with &#039;variable&#039; data instead of being fixed web html pages.  EWD references by the browser take the form:&lt;br /&gt;
&lt;br /&gt;
 https://192.168.197.129/vista/MyApp/MyPage.ewd&lt;br /&gt;
&lt;br /&gt;
Where&lt;br /&gt;
 https is the protocol used to invoke SSH secure transmission for the request to the EWD server.&lt;br /&gt;
 192.168.1.150  is a typical LAN IP address of the EWD server (in lieu of a domain name).&lt;br /&gt;
 vista/   is a specific string - a code to invoke the EWD system to process the rest of the URL.&lt;br /&gt;
    See [[M_Gateway]].&lt;br /&gt;
 MyApp/  represents an [[EWD-App/EWD Application]] - a set of EWD code pages working together, compiled by EWD.&lt;br /&gt;
 MyPage.ewd has the specific extension .ewd   and is a container page or Starting page of the EWD subsystem&lt;br /&gt;
&lt;br /&gt;
The M_Gateway component is a low-level extension of the Apache server which triggers Run-time EWD.&lt;br /&gt;
The &amp;quot;vista&amp;quot; here in the URL triggers EWD-Runtime with the rest of the URL at the back end of Apache.&lt;br /&gt;
&lt;br /&gt;
An [[EWD-App]] (or Application) is a set of [[EWD-page]]s stored in a single folder whose Folder-name determines the App Name used in the EWD URLs.&lt;br /&gt;
&lt;br /&gt;
EWD Pages are simple text files which have the file-extension *.ewd  are high level tag-based code which are Compiled by EWD into functioning Mumps Routines ([[MRoutines]]) which are executed by the runtime portions of EWD.&lt;br /&gt;
&lt;br /&gt;
EWD Pages may include html code and include or invoke JavaScript programming.  More commonly now, however, EWD tags refer to components of a FrameWork like extJS which provide complex GUI functionality for the EWD system and actual HTML is, in practice, not used much.&lt;br /&gt;
&lt;br /&gt;
EWD does this via [[Custom-Tags]] which are logical extensions of EWD.  Rob Tweed developed the set of custom-tags which invoke extJS and Sencha Touch, but any developer can similarly develop custom-tags for other Frameworks or special Functions such as DOJo  or to link directly with VistA on the backend.&lt;br /&gt;
&lt;br /&gt;
EWD pages are compiled in a series of transformations, first from custom tags to more detailed tags, then into html and JavaScript.  These are compiled into MUMPS code which generally writes the html out to the browser via apache when invoked by the EWD-URL request.  Actually, ewd is compiled to MUMPS and the MUMPS source code is compiled by GTM into Run-time GTM Object files.  Object files are linked into the Linux process which runs the mumps program.  &amp;quot;Compiled&amp;quot; thus has several meanings for the EWD developer.&lt;br /&gt;
&lt;br /&gt;
The EWD Compiler is written in MUMPS and thus is invoked as a MUMPS Routine, for example by the M Command:&lt;br /&gt;
  D compilePage^%zewdAPI(&amp;quot;MyApp&amp;quot;,&amp;quot;MyPage&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The EWD Compiler uses the NameSpace ^%zewd*.   GTM source MRoutines are files _zewd*.m  and GTM Object MRoutines are _zewd*.o. Note the % within MUMPS MRoutine Names is transformed to Underscore in Linux (which does not allow the % character in its filenames). GTM source files, the MUMPS source code are plain text files with extension *.m and GTM compiles these to corresponding files *.o  which are invoked at GTM Runtime into running Linux processes composed of a number of MRoutines which reference each other.  The fileName is the MUMPS RoutineName.&lt;br /&gt;
&lt;br /&gt;
These files are scattered among a number of Linux Folders/Directories and this configuration of folders may be a source of confusion for the EWD Developer and are discussed in [[EWD Folders and Files]].&lt;br /&gt;
&lt;br /&gt;
EWD manages a number of otherwise sticky problems with web-based multiuser interactions between client browser and EWD server with the gtm mumps backend database.  These include:&lt;br /&gt;
 Creating a logical user-state in the server and browser in a stateless network at the TCP/IP level.&lt;br /&gt;
 Encrypting internal page references to prevent illegitimate entrance by unauthorized clients.&lt;/div&gt;</summary>
		<author><name>Kirt</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=EWD_Components&amp;diff=15274</id>
		<title>EWD Components</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=EWD_Components&amp;diff=15274"/>
		<updated>2012-09-30T03:39:42Z</updated>

		<summary type="html">&lt;p&gt;Kirt: Components Overview of EWD - new page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== EWD Components&lt;br /&gt;
The following is a functional description of the moving parts of EWD so the user/developer has a good idea of how the parts fit together and how they work or don&#039;t work.  I will describe the variant which is Open Source and specifically the back end GTM and front end JavaScript and mainly custom tag sets invoking extJS Framework and Sencha Touch for touch-based smart phones and tablet devices.  Other variants are available in the full MGateway products, but are ignored for simplicity here.&lt;br /&gt;
&lt;br /&gt;
 An EWD system consists of a server system accessed by browser clients.&lt;br /&gt;
&lt;br /&gt;
 The Server may run Apache or a Node-js Server (or both to be strictly correct).  As such it must have a domain-name or IP address on the LAN or the Internet.&lt;br /&gt;
&lt;br /&gt;
 Usually an EWD-based system will operate securely using https:// protocol and therefore use SSH as a component of the server.  See details of how it uses port 443 typically to encrypt messages transmitted between client browser and server over what my be the public Internet or a private (hospital) Intranet (LAN - local area network plus or minus wireless linkages. See [[EWD Network and SSH]].&lt;br /&gt;
&lt;br /&gt;
 An Apache web server can be a complex topic in itself because of the multitude of features and modes available in this amazing open source product.  Once configured, however, it just works and need not worry the developer after a system is set up and configured.  Getting there is managed in the [[dEWDrop]] Virtual Machine or by AstroVistA debian-type installer.&lt;/div&gt;</summary>
		<author><name>Kirt</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=EWD&amp;diff=15273</id>
		<title>EWD</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=EWD&amp;diff=15273"/>
		<updated>2012-09-30T03:21:11Z</updated>

		<summary type="html">&lt;p&gt;Kirt: Basis for EWD Section Enhancements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
EWD  or Enterprise Web Developer is an Open Source Product on GT.M and Linux which is a complete system for developing Web-Based Systems which combine MUMPS in the background Database and Logical Structure with Browser-based Client GUI Interfaces.  Systems developed with EWD separate the GUI Design of the User Interface and the Database and MUMPS programming logic of the system to provide the efficient development and modeling of complex data that has always characterized MUMPS systems, but now, finally with the GUI power of JavaScript and JavaScript Frameworks (open source too) of extJS and Sencha Touch and YUI on the front end.&lt;br /&gt;
&lt;br /&gt;
www.MGateway.com is the main source for EWD and associated documentation and Many Thanks to Rob Tweed for this open source product and for support via the Google Group [[Enterprise Web Developer Community/https://groups.google.com/forum/?fromgroups=#!forum/enterprise-web-developer-community]]&lt;br /&gt;
&lt;br /&gt;
Sam Habiel has detailed one installation process on this site:  [[EWD Installation Guide]].&lt;br /&gt;
&lt;br /&gt;
Ignatio Valdez has created a debian installer, AstroVistA, which installs WorldVista along with EWD, GTM and Apache.&lt;br /&gt;
&lt;br /&gt;
David Wicksell et. al. have created [[dEWDrop]] and made it available for download as a VMWare (or VirtualBox) Virtual Machine with Ubuntu Linux, all of VistA, EWD, GTM and other things configured and hopefully ready to run for development and training in EWD and GTM and VistA itself. It may be downloaded from www.FourthWatchSoftware.com.&lt;br /&gt;
&lt;br /&gt;
[[EWD Components]] is a page that details the major working parts of EWD.&lt;br /&gt;
&lt;br /&gt;
[[EWD Training Examples]] is an area of VistaPedia with multiple small examples of functioning EWD code to learn and modify for development exercises.&lt;br /&gt;
&lt;br /&gt;
[[EWD Error Messages]]  is a set of pages with searchable error messages which help to unravel the source of errors in EWD which can be a bit obscure to the uninitiated.&lt;/div&gt;</summary>
		<author><name>Kirt</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=EWD_Install_Instructions&amp;diff=15272</id>
		<title>EWD Install Instructions</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=EWD_Install_Instructions&amp;diff=15272"/>
		<updated>2012-09-30T02:57:31Z</updated>

		<summary type="html">&lt;p&gt;Kirt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to my page on installing [[EWD]]. I am doing this on Ubuntu. If you do this on a Red Hat like system, you have to adapt the instructions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Latest Version of GT.M installed&lt;br /&gt;
* VISTA installed&lt;br /&gt;
&lt;br /&gt;
=== Install Git and download the Git Repo of EWD ===&lt;br /&gt;
I make my own directory called src or svn or whatever and put all the source code in it.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install git-core				; Get Git&lt;br /&gt;
git clone git://github.com/robtweed/EWD.git		; Get EWD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EWD Installation Using Apache ==&lt;br /&gt;
This will install EWD using Apache as the web facing gateway to EWD. To install it using Node, see below.&lt;br /&gt;
=== Install and Set-up mgwsi ===&lt;br /&gt;
MGWSI is the tcp listener on GT.M that listens for apache requests. Make a routine directory that will be part of the $gtmroutines add add that directory to your $gtmroutines. (Or you could just use a directory already in the existing gtmroutines.) Here&#039;s my GT.M env set-up script, for example. I am running in UTF-8 mode, so you will see extra lines that have to do with that.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
#/bin/bash&lt;br /&gt;
cd ~/pocn-moh&lt;br /&gt;
export gtm_dist=/opt/fis-gtm/V5.4-002A/utf8/&lt;br /&gt;
export gtmroutines=&amp;quot;uo(routines svn/BMX ewdroutines) $gtm_dist&amp;quot;&lt;br /&gt;
export gtmgbldir=mumps.gld&lt;br /&gt;
export PATH=$PATH:$gtm_dist&lt;br /&gt;
export gtm_chset=utf-8&lt;br /&gt;
export gtm_icu_version=4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the ZMGWSI routines from EWD&#039;s m_apache directory to your routines folder.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
cp svn/EWD/m_apache/*.m ewdroutines/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Verify that the routines are found by GT.M:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ mumps -dir&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;d ^%RD&lt;br /&gt;
&lt;br /&gt;
Routine directory&lt;br /&gt;
Routine: %ZM*&lt;br /&gt;
%ZMGWSI   %ZMGWSIS  &lt;br /&gt;
Total of 2 routines.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the program now to make sure it compiles properly.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ mumps -r INETD^%ZMGWSIS&lt;br /&gt;
%GTM-I-CTRLC, CTRL_C encountered&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;ZSHOW&lt;br /&gt;
CHILD3+5^%ZMGWSIS    (Direct mode) &lt;br /&gt;
XINETD+2^%ZMGWSIS&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;H&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then make a bash script to call it:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ cat mgwsi-rpcproc &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
cd /home/sam/pocn-moh&lt;br /&gt;
source ./run_utf8&lt;br /&gt;
date&amp;gt;&amp;gt;rpc_log.log&lt;br /&gt;
$gtm_dist/mumps -run INETD^%ZMGWSIS 2&amp;gt;&amp;gt; rpc_log.log&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
# Make it executable&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ chmod +x mgwsi-rpcproc &lt;br /&gt;
&lt;br /&gt;
# Run it&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ ./mgwsi-rpcproc &lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;zshow&lt;br /&gt;
CHILD3+5^%ZMGWSIS    (Direct mode) &lt;br /&gt;
XINETD+2^%ZMGWSIS&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we put it as a xinetd service&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
# Create the following line in configuration file: /etc/services&lt;br /&gt;
mgwsi           7041/tcp                # Service for MGWSI clients&lt;br /&gt;
&lt;br /&gt;
# Create Xined script that calls mgwsi-rpcproc&lt;br /&gt;
sudo cat mgwsi_pocn-moh_7041&lt;br /&gt;
service mgwsi-pocn-moh-7041&lt;br /&gt;
        {&lt;br /&gt;
        disable	= no&lt;br /&gt;
        port = 7041&lt;br /&gt;
        socket_type = stream&lt;br /&gt;
        protocol = tcp&lt;br /&gt;
        user = sam&lt;br /&gt;
        server = /bin/bash&lt;br /&gt;
        groups = yes&lt;br /&gt;
        server_args = /home/sam/pocn-moh/mgwsi-rpcproc&lt;br /&gt;
        type = UNLISTED&lt;br /&gt;
        wait = no&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we test it by putting xinetd in debug mode and then telneting to the port.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:/etc/xinetd.d$ sudo xinetd -d &amp;amp;&lt;br /&gt;
[2] 10521&lt;br /&gt;
...&lt;br /&gt;
Service configuration: mgwsi-pocn-moh-7041&lt;br /&gt;
	id = mgwsi-pocn-moh-7041&lt;br /&gt;
	flags = IPv4&lt;br /&gt;
	type = UNLISTED&lt;br /&gt;
	socket_type = stream&lt;br /&gt;
	Protocol (name,number) = (tcp,6)&lt;br /&gt;
	port = 7041&lt;br /&gt;
	wait = no&lt;br /&gt;
	user = 1000&lt;br /&gt;
	Groups = yes&lt;br /&gt;
	PER_SOURCE = -1&lt;br /&gt;
	Bind = All addresses.&lt;br /&gt;
	Server = /bin/bash&lt;br /&gt;
	Server argv = bash /home/sam/pocn-moh/mgwsi-rpcproc&lt;br /&gt;
	Only from: All sites&lt;br /&gt;
	No access: No blocked sites&lt;br /&gt;
	No logging&lt;br /&gt;
...&lt;br /&gt;
11/5/23@10:41:33: DEBUG: 10521 {cnf_start_services} Started service: mgwsi-pocn-moh-7041&lt;br /&gt;
...&lt;br /&gt;
11/5/23@10:41:33: NOTICE: 10521 {main} xinetd Version 2.3.14 started with libwrap loadavg options compiled in.&lt;br /&gt;
11/5/23@10:41:33: NOTICE: 10521 {main} Started working: 8 available services&lt;br /&gt;
11/5/23@10:41:33: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
telnet localhost 7041&lt;br /&gt;
Trying ::1...&lt;br /&gt;
Trying 127.0.0.1...&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10521 {main_loop} select returned 1&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is &#039;^]&#039;.&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10521 {server_start} Starting service mgwsi-pocn-moh-7041&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10523 {exec_server} duping 14&lt;br /&gt;
^]&lt;br /&gt;
&lt;br /&gt;
telnet&amp;gt; quit&lt;br /&gt;
Connection closed.&lt;br /&gt;
sam@sam-desktop:/etc/xinetd.d$ 11/5/23@10:41:57: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {main_loop} select returned 1&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {check_pipe} Got signal 17 (Child exited)&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {child_exit} waitpid returned = 10523&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {server_end} mgwsi-pocn-moh-7041 server 10523 exited&lt;br /&gt;
11/5/23@10:41:57: INFO: 10521 {conn_free} freeing connection&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {child_exit} waitpid returned = -1&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once you are sure it works, foreground your xinetd process and kill it using Ctrl-C.&lt;br /&gt;
&lt;br /&gt;
=== Setting up m_apache ===&lt;br /&gt;
First, make sure that m_apache is the right architecture for your machine. If not, you need to compile the m_apache.c file. The compilation instructions are from the source. Also, Mike Clayton&#039;s 64 bit installers for EWD provide the m_apache22 file in 64 bit format which you can extract from the .deb file.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh/svn/EWD/m_apache$ file m_apache22.so &lt;br /&gt;
m_apache22.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy to the lib folder of apache modules: in Ubuntu:  /usr/lib/apache2/modules&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sudo cp m_apache22.so /usr/lib/apache2/modules/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Configure your apache so that it will route all pages in a specific location to Mumps. Make sure to get your gld file correctly. I edited my /etc/apache2/sites-available/default to have these lines:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
    LoadModule m_apache_module /usr/lib/apache2/modules/m_apache22.so&lt;br /&gt;
    &amp;lt;Location /ewd&amp;gt;&lt;br /&gt;
        SetEnv MGWSI_PORT 7041&lt;br /&gt;
        SetEnv MGWSI_M_UCI /home/sam/pocn-moh/mumps.gld&lt;br /&gt;
        SetEnv MGWSI_M_FUNCTION runPage^%zewdGTMRuntime&lt;br /&gt;
    &amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart apache and make sure there aren&#039;t any errors.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:/etc/apache2/sites-available$ sudo service apache2 restart&lt;br /&gt;
 * Restarting web server apache2                                                                                                          apache2: Could not reliably determine the server&#039;s fully qualified domain name, using 127.0.1.1 for ServerName&lt;br /&gt;
 ... waiting .apache2: Could not reliably determine the server&#039;s fully qualified domain name, using 127.0.1.1 for ServerName&lt;br /&gt;
                                                                                                                                   [ OK ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Test M apache. In a web browser, navigate to http://localhost/ewd/index.mgwsi. You should get an EWD Error Page. If you get an apache error message, something is wrong.&lt;br /&gt;
&lt;br /&gt;
=== SELinux and Apache to MGWSI ===&lt;br /&gt;
If you do get an apache Service Unavailable message, it could be due to SELinux.&lt;br /&gt;
&lt;br /&gt;
Review &amp;lt;tt&amp;gt;/var/log/audit/audit.log&amp;lt;/tt&amp;gt;. See if there is a AVC type message like this:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
type=AVC msg=audit(1317316775.606:57870): avc:  denied  { name_connect } for  pid=15027 comm=&amp;quot;httpd&amp;quot; dest=7041 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you see something like this, you need to tell SELinux the following:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
semanage port -a -t http_port_t -p tcp 7041&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install EWD M Files ===&lt;br /&gt;
Copy the EWD Mumps files to a GT.M Mumps directory. They are all in the root of the repo.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh/svn$ cp EWD/*.m ../ewdroutines/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install Resources ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
You need to install a bunch of files under /var/www:&lt;br /&gt;
# Copy iwd from the root directory to /var/www/&lt;br /&gt;
sudo cp -r iwd /var/www/&lt;br /&gt;
&lt;br /&gt;
# Copy the resources files from the ewdMgr/resourceFiles directory to /var/www/resources (which you need to make)&lt;br /&gt;
sudo mkdir -p /var/www/resources&lt;br /&gt;
sudo chmod 777 /var/www/resources/&lt;br /&gt;
sudo cp ewdMgr/resourceFiles/* /var/www/resources&lt;br /&gt;
&lt;br /&gt;
# Get the YUI library and install it.&lt;br /&gt;
wget http://yui.zenfs.com/releases/yui2/yui_2.6.0r2.zip&lt;br /&gt;
sudo unzip yui_2.6.0r2.zip -d /var/www/&lt;br /&gt;
sudo chmod 777 /var/www/yui/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install EWD [[Application~|Application]]s ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
# Make a directory for [[application~|Application]]s&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ mkdir ewdapps&lt;br /&gt;
&lt;br /&gt;
# Copy the ewdMgr and iwd to that directory&lt;br /&gt;
cp -r ewdMgr/ ../../ewdapps/&lt;br /&gt;
cp -r iWDApps/ ../../ewdapps/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Configure EWD for the First Run ===&lt;br /&gt;
There are many bugs in this area, so make sure to read below so you know what you are in for before doing any of these steps.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
GTM&amp;gt;KILL ^zewd&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;D compileAll^%zewdAPI(&amp;quot;ewdMgr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Installing/Configuring Enterprise Web Developer (Build 790)&lt;br /&gt;
&lt;br /&gt;
Note: hit Esc to go back at any point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Application~|Application]] Root Path (/usr/ewdapps): /home/sam/pocn-moh/ewdapps&lt;br /&gt;
Routine Path (/usr/local/gtm/ewd/): /home/sam/pocn-moh/ewdroutines/&lt;br /&gt;
Javascript and CSS File Output Path (/var/www/resources/): /var/www/resources/&lt;br /&gt;
Javascript and CSS File URL Path (/resources/): /resources/&lt;br /&gt;
&lt;br /&gt;
Enterprise Web Developer (Build 790) is configured and ready for use&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== EWD First Run Bugs ====&lt;br /&gt;
* _zewdDocumentation2.m contains invalid Unicode characters. I cleaned it up using iconv.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
iconv -fUTF8 -tUTF8 -c _zewdDocumentation2.m -o _zewdDocumentation2.m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* EWD expects to be able to write to /var/www/resources. I put that in the instructions for that section.&lt;br /&gt;
* For some reason, EWD switches the routine path the first time it connects from the web. Why??? So you have to fix it manually. AND REMEMBER TO PUT A TRAILING SLASH. THAT ONE CAUGHT ME FOR A WHILE!!!&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
S ^zewd(&amp;quot;config&amp;quot;,&amp;quot;routinePath&amp;quot;,&amp;quot;gtm&amp;quot;)=&amp;quot;/home/sam/pocn-moh/ewdroutines/&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Issue of compiling [[application~|Application]]s with subdirectories. Where is it supposed to output? Update: Rob says ignore for now. Here&#039;s an example:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
GTM&amp;gt;d compileAll^%zewdAPI(&amp;quot;iWDApps&amp;quot;)&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/iWDExample&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/completed.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/demologin.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/details.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/newUser.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/selectApp.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/selectLocations.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/selectUser.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab1.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab2.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab3.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab4.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/userList.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/iWDMgr&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/about.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/[[application~|Application]]s.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/configuration.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/incomplete.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/login.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/mainMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/pageMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/pages.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/sessionContent.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/sessionDetails.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/sessions.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/imdb&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/attributeMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/deleteAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/deleteDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/deleteItem.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/domainMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/editAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/itemMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/login.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/newAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/newDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/newItem.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/notInitialised.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveAttributeValue.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveItem.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/iwdmdb&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDXArtist.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDXArtistList.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDXTitle.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/about.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/mainMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/selectTrack.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/mdb&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/addUser.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/addUserResponse.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/applianceAbout.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/displayDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdDocs.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/getDomains.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/initialise.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/initialiseInfo.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/login.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/loginForm.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mainmenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mdbMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mdbWelcome.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mgwsiMgr.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/security.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/showUserInfo.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/showUsers.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/timezone.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/timezoneResponse.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/userDetails.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfig.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigApache.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigArchitecture.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigExit.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigGTM.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigIP.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigKB.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigLinuxGTM.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigMGWSI.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigUsernames.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/viewer.ewd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* I wasn&#039;t able to get YUI tags to work. The JS to load them properly in the webpage is there, but is not evaluated. I will work on that later.&lt;br /&gt;
=== Setting Up the Special MGWSI Functions Location ===&lt;br /&gt;
You need this for several cryptographic functions to work:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Location &amp;quot;/mgwsi/sys/&amp;quot;&amp;gt;&lt;br /&gt;
	# This is a reserved location used for the m_apache systems facilities invoked through: &lt;br /&gt;
	# /mgwsi/sys/system_functions.mgwsi&lt;br /&gt;
	Order deny,allow&lt;br /&gt;
	Allow from all&lt;br /&gt;
	&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setting Up SSL With EWD ===&lt;br /&gt;
There is nothing to it. Follow the instructions here: http://wiki.centos.org/HowTos/Https then make your config file as follows (Note that I did this on CentOS):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
LoadModule m_apache_module modules/m_apache22.so&lt;br /&gt;
ServerName example.com&lt;br /&gt;
&lt;br /&gt;
NameVirtualHost *:443&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/pki/tls/certs/ca.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/pki/tls/private/ca.key&lt;br /&gt;
        &amp;lt;Location /ewd&amp;gt;&lt;br /&gt;
                SetEnv MGWSI_PORT 7041&lt;br /&gt;
                SetEnv MGWSI_M_UCI /opt/worldvista/EHR/globals/mumps.gld&lt;br /&gt;
                SetEnv MGWSI_M_FUNCTION runPage^%zewdGTMRuntime&lt;br /&gt;
        &amp;lt;/Location&amp;gt;&lt;br /&gt;
	&amp;lt;Location &amp;quot;/mgwsi/sys/&amp;quot;&amp;gt;&lt;br /&gt;
	# This is a reserved location used for the m_apache systems facilities invoked through: &lt;br /&gt;
	# /mgwsi/sys/system_functions.mgwsi&lt;br /&gt;
	Order deny,allow&lt;br /&gt;
	Allow from all&lt;br /&gt;
	&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{HTTPS} off&lt;br /&gt;
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up the SSL Proxy for EWD ===&lt;br /&gt;
There is a special case where you are trying to access external ssl connections from within EWD using the http methods in %zewdGTM. If you do so, you will need to configure a proxy on port 89 that forwards your connections from EWD to the ssl port. This is done using Apache&#039;s mod_proxy and mod_ssl. My thanks to David W and Larry L for the instructions on how to set this up and prevent it from being abused.&lt;br /&gt;
&lt;br /&gt;
These instructions are for Debian systems.&lt;br /&gt;
&lt;br /&gt;
First, enable the modules ssl and proxy.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo a2enmod proxy&lt;br /&gt;
sudo a2enmod proxy_connect&lt;br /&gt;
sudo a2enmod proxy_ftp&lt;br /&gt;
sudo a2enmod proxy_http&lt;br /&gt;
sudo a2enmod ssl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set-up this config file for apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Listen 89&lt;br /&gt;
  SSLProxyEngine on&lt;br /&gt;
  ProxyRequests on&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
    Allow from localhost&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  SSLProxyEngine on&lt;br /&gt;
  SSLProxyVerify none&lt;br /&gt;
&lt;br /&gt;
  ProxyVia on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous Stuff ===&lt;br /&gt;
==== Compiling m_apache ====&lt;br /&gt;
I am troubleshooting a bug in m_apache right now: I needed to re-compile it because I think I may have an older version. If the bug shows up again, well, I can change the source. I did this on CentOS 6; your luck may differ.&lt;br /&gt;
&lt;br /&gt;
You need m_apache.c from the EWD repo, which you downloaded in step 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
yum install gcc&lt;br /&gt;
yum install httpd-devel&lt;br /&gt;
yum install openssl-devel&lt;br /&gt;
apxs -i -a -I/usr/include/openssl/ -n m_apache22 -o m_apache22.so -c m_apache.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also figured out how to do it with plain gcc using the tips apxs gave me.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; gcc -fPIC -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wformat-security -fno-strict-aliasing  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1  -I/usr/include/openssl/  -c -o m_apache.obj m_apache.c&lt;br /&gt;
&amp;gt; gcc -shared -rdynamic -o m_apache22.so m_apache.obj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== EWD Installation using Node.js ==&lt;br /&gt;
[http://nodejs.org Node.js] is a an up and coming technology that allows you to build scalable network programs. EWD works with node.js. For more information on the advantages of using node.js with EWD, look [https://github.com/robtweed/ewdGateway here].&lt;br /&gt;
&lt;br /&gt;
Note that I am doing this on a different machine than above with vastly different directories. The ideas are the same though.&lt;br /&gt;
&lt;br /&gt;
=== Install Node.js &amp;amp; NPM ===&lt;br /&gt;
I install node per the Node.js wiki in my home directory and then add it to my path. You may have other ideas. Note that you have to have gcc, g++ and GNU Make installed.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
# Get Node from Github&lt;br /&gt;
git clone --depth 1 git://github.com/joyent/node.git&lt;br /&gt;
sudo apt-get install libssl-dev&lt;br /&gt;
# Install Node&lt;br /&gt;
cd node  # cd to the git directory you downloaded above&lt;br /&gt;
export JOBS=2 # optional, sets number of parallel commands.&lt;br /&gt;
mkdir ~/local&lt;br /&gt;
./configure --prefix=$HOME/local/node&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
export PATH=$HOME/local/node/bin:$PATH (&amp;amp; put in .bashrc)&lt;br /&gt;
&lt;br /&gt;
# Install NPM&lt;br /&gt;
sudo apt-get install curl&lt;br /&gt;
curl http://npmjs.org/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install ewdGateway.js &amp;amp; Socket.io ===&lt;br /&gt;
Install using npm.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
npm install ewdGateway&lt;br /&gt;
npm install socket.io&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Prepare GT.M directories ===&lt;br /&gt;
I will assume that you already have VISTA installed on GT.M. For EWD, you need to drop the EWD routines in a directory that contains the M routines for VISTA, and you need to drop the [[application~|Application]]s in another directory.&lt;br /&gt;
&lt;br /&gt;
=== Copy EWD Routines into the Routines directory ===&lt;br /&gt;
Copy the EWD Mumps files to a GT.M Mumps directory. They are all in the root of the repo.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~$ cd EWD    &lt;br /&gt;
sakura@medusa:~/EWD$ cp *.m /opt/worldvista/EHR/routines/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Copy Resources ===&lt;br /&gt;
Note that for convenience I chmodded /var/www to 777 instead of being root. &lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~/EWD$ cp -r iwd/ /var/www/&lt;br /&gt;
sakura@medusa:~/EWD$ mkdir -p /var/www/resources&lt;br /&gt;
sakura@medusa:~/EWD$ chmod 777 /var/www/resources&lt;br /&gt;
sakura@medusa:~/EWD$ cp ewdMgr/resourceFiles/* /var/www/resources/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Copy [[Application~|Application]]s ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~/EWD$ cp -r ewdMgr/ /opt/worldvista/EHR/plugins/web/ewdapps/&lt;br /&gt;
sakura@medusa:~/EWD$ cp -r iWDApps/ /opt/worldvista/EHR/plugins/web/ewdapps/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== First Time EWD Configuration ===&lt;br /&gt;
Let me explain a few things here.&lt;br /&gt;
* I kill ^zewd first because my instance already has that existing and it&#039;s incorrect.&lt;br /&gt;
* EWD tries to install files in /var/www/resources using sudo. Remember that we already made /var/www/resources modded to 777, so we will be able to write to it. Just hit enter on the sudo prompts and the files will be written anyways.&lt;br /&gt;
* Ignore the mkdir Errors. These happen because there is a sub-directory under ewdMgr, and EWD does not support subdirectories in an [[application~|Application]].&lt;br /&gt;
* Don&#039;t forget the trailing slashes on the directories.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~/EWD$ gtm                                  &lt;br /&gt;
&lt;br /&gt;
medusa&amp;gt;K ^zewd&lt;br /&gt;
&lt;br /&gt;
medusa&amp;gt;d compileAll^%zewdAPI(&amp;quot;ewdMgr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Installing/Configuring Enterprise Web Developer (Build 887)&lt;br /&gt;
&lt;br /&gt;
Note: hit Esc to go back at any point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Application~|Application]] Root Path (/usr/ewdapps): /opt/worldvista/EHR/plugins/web/ewdapps/&lt;br /&gt;
Routine Path (/usr/local/gtm/ewd/): /opt/worldvista/EHR/plugins/web/r/&lt;br /&gt;
Javascript and CSS File Output Path (/var/www/resources/): /var/www/resources/&lt;br /&gt;
Javascript and CSS File URL Path (/resources/): /resources/&lt;br /&gt;
&lt;br /&gt;
Enterprise Web Developer (Build 887) is configured and ready for use&lt;br /&gt;
&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/about.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/applianceAbout.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compilePage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compilePageResults.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compiler.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compilerResults.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/config.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/configDaemon.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/configMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/configSettingsSaved.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/customTags.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/dataTypes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/deleteCustomTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/deleteDataType.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docParam.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docParams.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docPurpose.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docRetVal.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docTypCall.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/documentation.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/domDocumentation.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/domDocumentationDetail.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/editCustomTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/editDataType.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/errors.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdAjaxError.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdDocs.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdErrorRedirect.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdMgr.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/gtmHome.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/gtmMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/gtmSecurity.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/index.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/initialPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/initialSecurity.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/invalidAccess.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/invalidAccessMessage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/invalidvaaccess.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/listError.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/listPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/listSession.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/login.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/loginForm.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/logout.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/mainMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/mapacheConfig.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/mgwsiMgr.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/newCustomTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/newDataType.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/relink.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/reloadCustomTags.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/reloadDataTypes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/reloadSecurity.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/security.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/sessions.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/showCustomTagNotes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/showDataTypeNotes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/user.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfig.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigApache.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigArchitecture.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigEWD.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigExit.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigGTM.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigIP.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigKB.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigLinuxGTM.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigMGWSI.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigUsernames.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaInitialPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xref.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageFromPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageFromScript.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageFromTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageToPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageToScript.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageToTag.ewd&lt;br /&gt;
mkdir: cannot create directory `/ewdMgr&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/ewdMgr/resourceFiles&#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
medusa&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Last thing, launch ewdGateway ===&lt;br /&gt;
First, you need to make a tiny node js file. I called it launchewd.js.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt; &lt;br /&gt;
  var ewd = require(&#039;ewdGateway&#039;);&lt;br /&gt;
  var params = {database:&#039;gtm&#039;, httpPort: 8080, poolSize: 3, startWebserver: true};&lt;br /&gt;
  ewd.start(params, function(gateway) {&lt;br /&gt;
    console.log(&amp;quot;version = &amp;quot; + gateway.version());&lt;br /&gt;
  });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go ahead and launch it. The mumps executable must be in the PATH otherwise the execution will seem successful but not really.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt; &lt;br /&gt;
sakura@medusa:~/node$ PATH=$gtm_dist:$PATH node launchewd.js &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the output:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt; &lt;br /&gt;
sakura@medusa:~/node$ PATH=$gtm_dist:$PATH node launchewd.js &lt;br /&gt;
   info  - socket.io started&lt;br /&gt;
********************************************&lt;br /&gt;
*** EWD Gateway for GT.M Build 18 (14 September 2011) ***&lt;br /&gt;
********************************************&lt;br /&gt;
3 connections established to GT.M&lt;br /&gt;
Web server started successfully on port 8080&lt;br /&gt;
Trace mode is on&lt;br /&gt;
version = ewdGateway build 18, 14 September 2011&lt;br /&gt;
/ewd/so/index.ewd&lt;br /&gt;
incoming request for app: so; page: index&lt;br /&gt;
added to Queue (http): %7B%7D; queue length = 1; requestNo = 1; after 13.655 sec&lt;br /&gt;
processing queue: 1; queue length 1; after 13.656 seconds&lt;br /&gt;
Request sent to Cache using connection = 0&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dump: :72:84:84:80:47:49:46:49:32:50:48:48:32:79:75:13:10&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
Content-type: &lt;br /&gt;
&lt;br /&gt;
dump: :67:111:110:116:101:110:116:45:116:121:112:101:58:32&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
text/html&lt;br /&gt;
&lt;br /&gt;
dump: :116:101:120:116:47:104:116:109:108&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dump: :13:10&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dump: :13:10&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
etc&lt;br /&gt;
...&lt;br /&gt;
Connection 0 reset and waiting..&lt;br /&gt;
Connection utilitisation:&lt;br /&gt;
0: 1&lt;br /&gt;
1: 0&lt;br /&gt;
2: 0&lt;br /&gt;
Max queue length: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kirt</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=EWD_Install_Instructions&amp;diff=15271</id>
		<title>EWD Install Instructions</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=EWD_Install_Instructions&amp;diff=15271"/>
		<updated>2012-09-30T02:57:02Z</updated>

		<summary type="html">&lt;p&gt;Kirt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to my page on installing [EWD]. I am doing this on Ubuntu. If you do this on a Red Hat like system, you have to adapt the instructions.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Latest Version of GT.M installed&lt;br /&gt;
* VISTA installed&lt;br /&gt;
&lt;br /&gt;
=== Install Git and download the Git Repo of EWD ===&lt;br /&gt;
I make my own directory called src or svn or whatever and put all the source code in it.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install git-core				; Get Git&lt;br /&gt;
git clone git://github.com/robtweed/EWD.git		; Get EWD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EWD Installation Using Apache ==&lt;br /&gt;
This will install EWD using Apache as the web facing gateway to EWD. To install it using Node, see below.&lt;br /&gt;
=== Install and Set-up mgwsi ===&lt;br /&gt;
MGWSI is the tcp listener on GT.M that listens for apache requests. Make a routine directory that will be part of the $gtmroutines add add that directory to your $gtmroutines. (Or you could just use a directory already in the existing gtmroutines.) Here&#039;s my GT.M env set-up script, for example. I am running in UTF-8 mode, so you will see extra lines that have to do with that.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
#/bin/bash&lt;br /&gt;
cd ~/pocn-moh&lt;br /&gt;
export gtm_dist=/opt/fis-gtm/V5.4-002A/utf8/&lt;br /&gt;
export gtmroutines=&amp;quot;uo(routines svn/BMX ewdroutines) $gtm_dist&amp;quot;&lt;br /&gt;
export gtmgbldir=mumps.gld&lt;br /&gt;
export PATH=$PATH:$gtm_dist&lt;br /&gt;
export gtm_chset=utf-8&lt;br /&gt;
export gtm_icu_version=4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the ZMGWSI routines from EWD&#039;s m_apache directory to your routines folder.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
cp svn/EWD/m_apache/*.m ewdroutines/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Verify that the routines are found by GT.M:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ mumps -dir&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;d ^%RD&lt;br /&gt;
&lt;br /&gt;
Routine directory&lt;br /&gt;
Routine: %ZM*&lt;br /&gt;
%ZMGWSI   %ZMGWSIS  &lt;br /&gt;
Total of 2 routines.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the program now to make sure it compiles properly.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ mumps -r INETD^%ZMGWSIS&lt;br /&gt;
%GTM-I-CTRLC, CTRL_C encountered&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;ZSHOW&lt;br /&gt;
CHILD3+5^%ZMGWSIS    (Direct mode) &lt;br /&gt;
XINETD+2^%ZMGWSIS&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;H&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then make a bash script to call it:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ cat mgwsi-rpcproc &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
cd /home/sam/pocn-moh&lt;br /&gt;
source ./run_utf8&lt;br /&gt;
date&amp;gt;&amp;gt;rpc_log.log&lt;br /&gt;
$gtm_dist/mumps -run INETD^%ZMGWSIS 2&amp;gt;&amp;gt; rpc_log.log&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
# Make it executable&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ chmod +x mgwsi-rpcproc &lt;br /&gt;
&lt;br /&gt;
# Run it&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ ./mgwsi-rpcproc &lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;zshow&lt;br /&gt;
CHILD3+5^%ZMGWSIS    (Direct mode) &lt;br /&gt;
XINETD+2^%ZMGWSIS&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we put it as a xinetd service&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
# Create the following line in configuration file: /etc/services&lt;br /&gt;
mgwsi           7041/tcp                # Service for MGWSI clients&lt;br /&gt;
&lt;br /&gt;
# Create Xined script that calls mgwsi-rpcproc&lt;br /&gt;
sudo cat mgwsi_pocn-moh_7041&lt;br /&gt;
service mgwsi-pocn-moh-7041&lt;br /&gt;
        {&lt;br /&gt;
        disable	= no&lt;br /&gt;
        port = 7041&lt;br /&gt;
        socket_type = stream&lt;br /&gt;
        protocol = tcp&lt;br /&gt;
        user = sam&lt;br /&gt;
        server = /bin/bash&lt;br /&gt;
        groups = yes&lt;br /&gt;
        server_args = /home/sam/pocn-moh/mgwsi-rpcproc&lt;br /&gt;
        type = UNLISTED&lt;br /&gt;
        wait = no&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we test it by putting xinetd in debug mode and then telneting to the port.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:/etc/xinetd.d$ sudo xinetd -d &amp;amp;&lt;br /&gt;
[2] 10521&lt;br /&gt;
...&lt;br /&gt;
Service configuration: mgwsi-pocn-moh-7041&lt;br /&gt;
	id = mgwsi-pocn-moh-7041&lt;br /&gt;
	flags = IPv4&lt;br /&gt;
	type = UNLISTED&lt;br /&gt;
	socket_type = stream&lt;br /&gt;
	Protocol (name,number) = (tcp,6)&lt;br /&gt;
	port = 7041&lt;br /&gt;
	wait = no&lt;br /&gt;
	user = 1000&lt;br /&gt;
	Groups = yes&lt;br /&gt;
	PER_SOURCE = -1&lt;br /&gt;
	Bind = All addresses.&lt;br /&gt;
	Server = /bin/bash&lt;br /&gt;
	Server argv = bash /home/sam/pocn-moh/mgwsi-rpcproc&lt;br /&gt;
	Only from: All sites&lt;br /&gt;
	No access: No blocked sites&lt;br /&gt;
	No logging&lt;br /&gt;
...&lt;br /&gt;
11/5/23@10:41:33: DEBUG: 10521 {cnf_start_services} Started service: mgwsi-pocn-moh-7041&lt;br /&gt;
...&lt;br /&gt;
11/5/23@10:41:33: NOTICE: 10521 {main} xinetd Version 2.3.14 started with libwrap loadavg options compiled in.&lt;br /&gt;
11/5/23@10:41:33: NOTICE: 10521 {main} Started working: 8 available services&lt;br /&gt;
11/5/23@10:41:33: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
telnet localhost 7041&lt;br /&gt;
Trying ::1...&lt;br /&gt;
Trying 127.0.0.1...&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10521 {main_loop} select returned 1&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is &#039;^]&#039;.&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10521 {server_start} Starting service mgwsi-pocn-moh-7041&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
11/5/23@10:41:52: DEBUG: 10523 {exec_server} duping 14&lt;br /&gt;
^]&lt;br /&gt;
&lt;br /&gt;
telnet&amp;gt; quit&lt;br /&gt;
Connection closed.&lt;br /&gt;
sam@sam-desktop:/etc/xinetd.d$ 11/5/23@10:41:57: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {main_loop} select returned 1&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {check_pipe} Got signal 17 (Child exited)&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {child_exit} waitpid returned = 10523&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {server_end} mgwsi-pocn-moh-7041 server 10523 exited&lt;br /&gt;
11/5/23@10:41:57: INFO: 10521 {conn_free} freeing connection&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {child_exit} waitpid returned = -1&lt;br /&gt;
11/5/23@10:41:57: DEBUG: 10521 {main_loop} active_services = 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once you are sure it works, foreground your xinetd process and kill it using Ctrl-C.&lt;br /&gt;
&lt;br /&gt;
=== Setting up m_apache ===&lt;br /&gt;
First, make sure that m_apache is the right architecture for your machine. If not, you need to compile the m_apache.c file. The compilation instructions are from the source. Also, Mike Clayton&#039;s 64 bit installers for EWD provide the m_apache22 file in 64 bit format which you can extract from the .deb file.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh/svn/EWD/m_apache$ file m_apache22.so &lt;br /&gt;
m_apache22.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy to the lib folder of apache modules: in Ubuntu:  /usr/lib/apache2/modules&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sudo cp m_apache22.so /usr/lib/apache2/modules/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Configure your apache so that it will route all pages in a specific location to Mumps. Make sure to get your gld file correctly. I edited my /etc/apache2/sites-available/default to have these lines:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
    LoadModule m_apache_module /usr/lib/apache2/modules/m_apache22.so&lt;br /&gt;
    &amp;lt;Location /ewd&amp;gt;&lt;br /&gt;
        SetEnv MGWSI_PORT 7041&lt;br /&gt;
        SetEnv MGWSI_M_UCI /home/sam/pocn-moh/mumps.gld&lt;br /&gt;
        SetEnv MGWSI_M_FUNCTION runPage^%zewdGTMRuntime&lt;br /&gt;
    &amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart apache and make sure there aren&#039;t any errors.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:/etc/apache2/sites-available$ sudo service apache2 restart&lt;br /&gt;
 * Restarting web server apache2                                                                                                          apache2: Could not reliably determine the server&#039;s fully qualified domain name, using 127.0.1.1 for ServerName&lt;br /&gt;
 ... waiting .apache2: Could not reliably determine the server&#039;s fully qualified domain name, using 127.0.1.1 for ServerName&lt;br /&gt;
                                                                                                                                   [ OK ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Test M apache. In a web browser, navigate to http://localhost/ewd/index.mgwsi. You should get an EWD Error Page. If you get an apache error message, something is wrong.&lt;br /&gt;
&lt;br /&gt;
=== SELinux and Apache to MGWSI ===&lt;br /&gt;
If you do get an apache Service Unavailable message, it could be due to SELinux.&lt;br /&gt;
&lt;br /&gt;
Review &amp;lt;tt&amp;gt;/var/log/audit/audit.log&amp;lt;/tt&amp;gt;. See if there is a AVC type message like this:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
type=AVC msg=audit(1317316775.606:57870): avc:  denied  { name_connect } for  pid=15027 comm=&amp;quot;httpd&amp;quot; dest=7041 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you see something like this, you need to tell SELinux the following:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
semanage port -a -t http_port_t -p tcp 7041&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install EWD M Files ===&lt;br /&gt;
Copy the EWD Mumps files to a GT.M Mumps directory. They are all in the root of the repo.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sam@sam-desktop:~/pocn-moh/svn$ cp EWD/*.m ../ewdroutines/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install Resources ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
You need to install a bunch of files under /var/www:&lt;br /&gt;
# Copy iwd from the root directory to /var/www/&lt;br /&gt;
sudo cp -r iwd /var/www/&lt;br /&gt;
&lt;br /&gt;
# Copy the resources files from the ewdMgr/resourceFiles directory to /var/www/resources (which you need to make)&lt;br /&gt;
sudo mkdir -p /var/www/resources&lt;br /&gt;
sudo chmod 777 /var/www/resources/&lt;br /&gt;
sudo cp ewdMgr/resourceFiles/* /var/www/resources&lt;br /&gt;
&lt;br /&gt;
# Get the YUI library and install it.&lt;br /&gt;
wget http://yui.zenfs.com/releases/yui2/yui_2.6.0r2.zip&lt;br /&gt;
sudo unzip yui_2.6.0r2.zip -d /var/www/&lt;br /&gt;
sudo chmod 777 /var/www/yui/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install EWD [[Application~|Application]]s ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
# Make a directory for [[application~|Application]]s&lt;br /&gt;
sam@sam-desktop:~/pocn-moh$ mkdir ewdapps&lt;br /&gt;
&lt;br /&gt;
# Copy the ewdMgr and iwd to that directory&lt;br /&gt;
cp -r ewdMgr/ ../../ewdapps/&lt;br /&gt;
cp -r iWDApps/ ../../ewdapps/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Configure EWD for the First Run ===&lt;br /&gt;
There are many bugs in this area, so make sure to read below so you know what you are in for before doing any of these steps.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
GTM&amp;gt;KILL ^zewd&lt;br /&gt;
&lt;br /&gt;
GTM&amp;gt;D compileAll^%zewdAPI(&amp;quot;ewdMgr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Installing/Configuring Enterprise Web Developer (Build 790)&lt;br /&gt;
&lt;br /&gt;
Note: hit Esc to go back at any point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Application~|Application]] Root Path (/usr/ewdapps): /home/sam/pocn-moh/ewdapps&lt;br /&gt;
Routine Path (/usr/local/gtm/ewd/): /home/sam/pocn-moh/ewdroutines/&lt;br /&gt;
Javascript and CSS File Output Path (/var/www/resources/): /var/www/resources/&lt;br /&gt;
Javascript and CSS File URL Path (/resources/): /resources/&lt;br /&gt;
&lt;br /&gt;
Enterprise Web Developer (Build 790) is configured and ready for use&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== EWD First Run Bugs ====&lt;br /&gt;
* _zewdDocumentation2.m contains invalid Unicode characters. I cleaned it up using iconv.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
iconv -fUTF8 -tUTF8 -c _zewdDocumentation2.m -o _zewdDocumentation2.m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* EWD expects to be able to write to /var/www/resources. I put that in the instructions for that section.&lt;br /&gt;
* For some reason, EWD switches the routine path the first time it connects from the web. Why??? So you have to fix it manually. AND REMEMBER TO PUT A TRAILING SLASH. THAT ONE CAUGHT ME FOR A WHILE!!!&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
S ^zewd(&amp;quot;config&amp;quot;,&amp;quot;routinePath&amp;quot;,&amp;quot;gtm&amp;quot;)=&amp;quot;/home/sam/pocn-moh/ewdroutines/&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Issue of compiling [[application~|Application]]s with subdirectories. Where is it supposed to output? Update: Rob says ignore for now. Here&#039;s an example:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
GTM&amp;gt;d compileAll^%zewdAPI(&amp;quot;iWDApps&amp;quot;)&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/iWDExample&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/completed.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/demologin.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/details.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/newUser.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/selectApp.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/selectLocations.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/selectUser.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab1.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab2.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab3.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/tab4.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDExample/userList.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/iWDMgr&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/about.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/[[application~|Application]]s.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/configuration.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/incomplete.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/login.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/mainMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/pageMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/pages.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/sessionContent.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/sessionDetails.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iWDMgr/sessions.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/imdb&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/attributeMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/deleteAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/deleteDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/deleteItem.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/domainMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/editAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/itemMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/login.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/newAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/newDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/newItem.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/notInitialised.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveAttribute.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveAttributeValue.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/imdb/saveItem.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/iwdmdb&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDXArtist.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDXArtistList.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/CDXTitle.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/about.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/mainMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/iwdmdb/selectTrack.ewd&lt;br /&gt;
mkdir: cannot create directory `/iWDApps&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/iWDApps/mdb&#039;: No such file or directory&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/addUser.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/addUserResponse.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/applianceAbout.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/displayDomain.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdAjaxError.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdDocs.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/ewdErrorRedirect.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/getDomains.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/index.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/initialise.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/initialiseInfo.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/login.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/loginForm.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mainmenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mdbMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mdbWelcome.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/mgwsiMgr.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/security.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/showUserInfo.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/showUsers.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/timezone.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/timezoneResponse.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/userDetails.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfig.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigApache.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigArchitecture.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigExit.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigGTM.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigIP.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigKB.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigLinuxGTM.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigMGWSI.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigMenu.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/vaConfigUsernames.ewd&lt;br /&gt;
/home/sam/pocn-moh/ewdapps/iWDApps/mdb/viewer.ewd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* I wasn&#039;t able to get YUI tags to work. The JS to load them properly in the webpage is there, but is not evaluated. I will work on that later.&lt;br /&gt;
=== Setting Up the Special MGWSI Functions Location ===&lt;br /&gt;
You need this for several cryptographic functions to work:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Location &amp;quot;/mgwsi/sys/&amp;quot;&amp;gt;&lt;br /&gt;
	# This is a reserved location used for the m_apache systems facilities invoked through: &lt;br /&gt;
	# /mgwsi/sys/system_functions.mgwsi&lt;br /&gt;
	Order deny,allow&lt;br /&gt;
	Allow from all&lt;br /&gt;
	&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setting Up SSL With EWD ===&lt;br /&gt;
There is nothing to it. Follow the instructions here: http://wiki.centos.org/HowTos/Https then make your config file as follows (Note that I did this on CentOS):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
LoadModule m_apache_module modules/m_apache22.so&lt;br /&gt;
ServerName example.com&lt;br /&gt;
&lt;br /&gt;
NameVirtualHost *:443&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
        SSLCertificateFile /etc/pki/tls/certs/ca.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/pki/tls/private/ca.key&lt;br /&gt;
        &amp;lt;Location /ewd&amp;gt;&lt;br /&gt;
                SetEnv MGWSI_PORT 7041&lt;br /&gt;
                SetEnv MGWSI_M_UCI /opt/worldvista/EHR/globals/mumps.gld&lt;br /&gt;
                SetEnv MGWSI_M_FUNCTION runPage^%zewdGTMRuntime&lt;br /&gt;
        &amp;lt;/Location&amp;gt;&lt;br /&gt;
	&amp;lt;Location &amp;quot;/mgwsi/sys/&amp;quot;&amp;gt;&lt;br /&gt;
	# This is a reserved location used for the m_apache systems facilities invoked through: &lt;br /&gt;
	# /mgwsi/sys/system_functions.mgwsi&lt;br /&gt;
	Order deny,allow&lt;br /&gt;
	Allow from all&lt;br /&gt;
	&amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteCond %{HTTPS} off&lt;br /&gt;
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up the SSL Proxy for EWD ===&lt;br /&gt;
There is a special case where you are trying to access external ssl connections from within EWD using the http methods in %zewdGTM. If you do so, you will need to configure a proxy on port 89 that forwards your connections from EWD to the ssl port. This is done using Apache&#039;s mod_proxy and mod_ssl. My thanks to David W and Larry L for the instructions on how to set this up and prevent it from being abused.&lt;br /&gt;
&lt;br /&gt;
These instructions are for Debian systems.&lt;br /&gt;
&lt;br /&gt;
First, enable the modules ssl and proxy.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo a2enmod proxy&lt;br /&gt;
sudo a2enmod proxy_connect&lt;br /&gt;
sudo a2enmod proxy_ftp&lt;br /&gt;
sudo a2enmod proxy_http&lt;br /&gt;
sudo a2enmod ssl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set-up this config file for apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Listen 89&lt;br /&gt;
  SSLProxyEngine on&lt;br /&gt;
  ProxyRequests on&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
    Order deny,allow&lt;br /&gt;
    Deny from all&lt;br /&gt;
    Allow from localhost&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  SSLProxyEngine on&lt;br /&gt;
  SSLProxyVerify none&lt;br /&gt;
&lt;br /&gt;
  ProxyVia on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous Stuff ===&lt;br /&gt;
==== Compiling m_apache ====&lt;br /&gt;
I am troubleshooting a bug in m_apache right now: I needed to re-compile it because I think I may have an older version. If the bug shows up again, well, I can change the source. I did this on CentOS 6; your luck may differ.&lt;br /&gt;
&lt;br /&gt;
You need m_apache.c from the EWD repo, which you downloaded in step 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
yum install gcc&lt;br /&gt;
yum install httpd-devel&lt;br /&gt;
yum install openssl-devel&lt;br /&gt;
apxs -i -a -I/usr/include/openssl/ -n m_apache22 -o m_apache22.so -c m_apache.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also figured out how to do it with plain gcc using the tips apxs gave me.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; gcc -fPIC -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wformat-security -fno-strict-aliasing  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1  -I/usr/include/openssl/  -c -o m_apache.obj m_apache.c&lt;br /&gt;
&amp;gt; gcc -shared -rdynamic -o m_apache22.so m_apache.obj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== EWD Installation using Node.js ==&lt;br /&gt;
[http://nodejs.org Node.js] is a an up and coming technology that allows you to build scalable network programs. EWD works with node.js. For more information on the advantages of using node.js with EWD, look [https://github.com/robtweed/ewdGateway here].&lt;br /&gt;
&lt;br /&gt;
Note that I am doing this on a different machine than above with vastly different directories. The ideas are the same though.&lt;br /&gt;
&lt;br /&gt;
=== Install Node.js &amp;amp; NPM ===&lt;br /&gt;
I install node per the Node.js wiki in my home directory and then add it to my path. You may have other ideas. Note that you have to have gcc, g++ and GNU Make installed.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
# Get Node from Github&lt;br /&gt;
git clone --depth 1 git://github.com/joyent/node.git&lt;br /&gt;
sudo apt-get install libssl-dev&lt;br /&gt;
# Install Node&lt;br /&gt;
cd node  # cd to the git directory you downloaded above&lt;br /&gt;
export JOBS=2 # optional, sets number of parallel commands.&lt;br /&gt;
mkdir ~/local&lt;br /&gt;
./configure --prefix=$HOME/local/node&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
export PATH=$HOME/local/node/bin:$PATH (&amp;amp; put in .bashrc)&lt;br /&gt;
&lt;br /&gt;
# Install NPM&lt;br /&gt;
sudo apt-get install curl&lt;br /&gt;
curl http://npmjs.org/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install ewdGateway.js &amp;amp; Socket.io ===&lt;br /&gt;
Install using npm.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
npm install ewdGateway&lt;br /&gt;
npm install socket.io&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Prepare GT.M directories ===&lt;br /&gt;
I will assume that you already have VISTA installed on GT.M. For EWD, you need to drop the EWD routines in a directory that contains the M routines for VISTA, and you need to drop the [[application~|Application]]s in another directory.&lt;br /&gt;
&lt;br /&gt;
=== Copy EWD Routines into the Routines directory ===&lt;br /&gt;
Copy the EWD Mumps files to a GT.M Mumps directory. They are all in the root of the repo.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~$ cd EWD    &lt;br /&gt;
sakura@medusa:~/EWD$ cp *.m /opt/worldvista/EHR/routines/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Copy Resources ===&lt;br /&gt;
Note that for convenience I chmodded /var/www to 777 instead of being root. &lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~/EWD$ cp -r iwd/ /var/www/&lt;br /&gt;
sakura@medusa:~/EWD$ mkdir -p /var/www/resources&lt;br /&gt;
sakura@medusa:~/EWD$ chmod 777 /var/www/resources&lt;br /&gt;
sakura@medusa:~/EWD$ cp ewdMgr/resourceFiles/* /var/www/resources/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Copy [[Application~|Application]]s ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~/EWD$ cp -r ewdMgr/ /opt/worldvista/EHR/plugins/web/ewdapps/&lt;br /&gt;
sakura@medusa:~/EWD$ cp -r iWDApps/ /opt/worldvista/EHR/plugins/web/ewdapps/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== First Time EWD Configuration ===&lt;br /&gt;
Let me explain a few things here.&lt;br /&gt;
* I kill ^zewd first because my instance already has that existing and it&#039;s incorrect.&lt;br /&gt;
* EWD tries to install files in /var/www/resources using sudo. Remember that we already made /var/www/resources modded to 777, so we will be able to write to it. Just hit enter on the sudo prompts and the files will be written anyways.&lt;br /&gt;
* Ignore the mkdir Errors. These happen because there is a sub-directory under ewdMgr, and EWD does not support subdirectories in an [[application~|Application]].&lt;br /&gt;
* Don&#039;t forget the trailing slashes on the directories.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt;&lt;br /&gt;
sakura@medusa:~/EWD$ gtm                                  &lt;br /&gt;
&lt;br /&gt;
medusa&amp;gt;K ^zewd&lt;br /&gt;
&lt;br /&gt;
medusa&amp;gt;d compileAll^%zewdAPI(&amp;quot;ewdMgr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Installing/Configuring Enterprise Web Developer (Build 887)&lt;br /&gt;
&lt;br /&gt;
Note: hit Esc to go back at any point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Application~|Application]] Root Path (/usr/ewdapps): /opt/worldvista/EHR/plugins/web/ewdapps/&lt;br /&gt;
Routine Path (/usr/local/gtm/ewd/): /opt/worldvista/EHR/plugins/web/r/&lt;br /&gt;
Javascript and CSS File Output Path (/var/www/resources/): /var/www/resources/&lt;br /&gt;
Javascript and CSS File URL Path (/resources/): /resources/&lt;br /&gt;
&lt;br /&gt;
Enterprise Web Developer (Build 887) is configured and ready for use&lt;br /&gt;
&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
[sudo] password for sakura: &lt;br /&gt;
Sorry, try again.&lt;br /&gt;
sudo: 3 incorrect password attempts&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/about.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/applianceAbout.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compilePage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compilePageResults.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compiler.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/compilerResults.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/config.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/configDaemon.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/configMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/configSettingsSaved.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/customTags.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/dataTypes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/deleteCustomTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/deleteDataType.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docParam.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docParams.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docPurpose.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docRetVal.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/docTypCall.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/documentation.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/domDocumentation.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/domDocumentationDetail.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/editCustomTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/editDataType.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/errors.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdAjaxError.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdAjaxErrorRedirect.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdDocs.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdErrorRedirect.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/ewdMgr.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/gtmHome.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/gtmMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/gtmSecurity.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/index.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/initialPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/initialSecurity.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/invalidAccess.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/invalidAccessMessage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/invalidvaaccess.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/listError.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/listPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/listSession.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/login.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/loginForm.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/logout.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/mainMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/mapacheConfig.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/mgwsiMgr.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/newCustomTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/newDataType.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/relink.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/reloadCustomTags.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/reloadDataTypes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/reloadSecurity.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/security.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/sessions.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/showCustomTagNotes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/showDataTypeNotes.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/user.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfig.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigApache.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigArchitecture.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigEWD.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigExit.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigGTM.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigIP.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigKB.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigLinuxGTM.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigMGWSI.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigMenu.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaConfigUsernames.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/vaInitialPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xref.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageFromPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageFromScript.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageFromTag.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageToPage.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageToScript.ewd&lt;br /&gt;
/opt/worldvista/EHR/plugins/web/ewdapps/ewdMgr/xrefPageToTag.ewd&lt;br /&gt;
mkdir: cannot create directory `/ewdMgr&#039;: Permission denied&lt;br /&gt;
mkdir: cannot create directory `/ewdMgr/resourceFiles&#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
medusa&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Last thing, launch ewdGateway ===&lt;br /&gt;
First, you need to make a tiny node js file. I called it launchewd.js.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt; &lt;br /&gt;
  var ewd = require(&#039;ewdGateway&#039;);&lt;br /&gt;
  var params = {database:&#039;gtm&#039;, httpPort: 8080, poolSize: 3, startWebserver: true};&lt;br /&gt;
  ewd.start(params, function(gateway) {&lt;br /&gt;
    console.log(&amp;quot;version = &amp;quot; + gateway.version());&lt;br /&gt;
  });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go ahead and launch it. The mumps executable must be in the PATH otherwise the execution will seem successful but not really.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt; &lt;br /&gt;
sakura@medusa:~/node$ PATH=$gtm_dist:$PATH node launchewd.js &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the output:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.1em&amp;quot;&amp;gt; &lt;br /&gt;
sakura@medusa:~/node$ PATH=$gtm_dist:$PATH node launchewd.js &lt;br /&gt;
   info  - socket.io started&lt;br /&gt;
********************************************&lt;br /&gt;
*** EWD Gateway for GT.M Build 18 (14 September 2011) ***&lt;br /&gt;
********************************************&lt;br /&gt;
3 connections established to GT.M&lt;br /&gt;
Web server started successfully on port 8080&lt;br /&gt;
Trace mode is on&lt;br /&gt;
version = ewdGateway build 18, 14 September 2011&lt;br /&gt;
/ewd/so/index.ewd&lt;br /&gt;
incoming request for app: so; page: index&lt;br /&gt;
added to Queue (http): %7B%7D; queue length = 1; requestNo = 1; after 13.655 sec&lt;br /&gt;
processing queue: 1; queue length 1; after 13.656 seconds&lt;br /&gt;
Request sent to Cache using connection = 0&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dump: :72:84:84:80:47:49:46:49:32:50:48:48:32:79:75:13:10&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
Content-type: &lt;br /&gt;
&lt;br /&gt;
dump: :67:111:110:116:101:110:116:45:116:121:112:101:58:32&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
text/html&lt;br /&gt;
&lt;br /&gt;
dump: :116:101:120:116:47:104:116:109:108&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dump: :13:10&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dump: :13:10&lt;br /&gt;
&lt;br /&gt;
from GT.M on connection 0:&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
etc&lt;br /&gt;
...&lt;br /&gt;
Connection 0 reset and waiting..&lt;br /&gt;
Connection utilitisation:&lt;br /&gt;
0: 1&lt;br /&gt;
1: 0&lt;br /&gt;
2: 0&lt;br /&gt;
Max queue length: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kirt</name></author>
	</entry>
	<entry>
		<id>https://vistapedia.com/index.php?title=User:Kirt&amp;diff=15270</id>
		<title>User:Kirt</title>
		<link rel="alternate" type="text/html" href="https://vistapedia.com/index.php?title=User:Kirt&amp;diff=15270"/>
		<updated>2012-09-30T02:38:32Z</updated>

		<summary type="html">&lt;p&gt;Kirt: Created page with &amp;quot;See [KW].&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [KW].&lt;/div&gt;</summary>
		<author><name>Kirt</name></author>
	</entry>
</feed>