]> Creatis software - creaWT.git/commitdiff
#2689 creaToolsTools Feature New Normal - Third party Linux WT configuration
authorEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Thu, 6 Aug 2015 14:02:22 +0000 (16:02 +0200)
committerEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Thu, 6 Aug 2015 14:02:22 +0000 (16:02 +0200)
wt/data/infoConf_server_fcgi/Readme.txt
wt/data/infoConf_server_fcgi/Readme.txt~
wt/data/infoConf_server_fcgi/wt_config.xml [new file with mode: 0644]

index 442ef99b123a0330d3bab155c41dcabec098430a..8d63d71f85720175f80f31de3c222c68db09826c 100644 (file)
@@ -6,7 +6,7 @@ yum install fcgi-devel
 yum install mod_fcgid
 
 1) ld configuration
-cp bbtk.conf/etc/ld.so.conf.d/.
+cp bbtk.conf  /etc/ld.so.conf.d/.
 ldconfig
 
 2) Create virtual site apache
@@ -21,10 +21,14 @@ cp fastcgi-wt.conf /etc/httpd/conf.modules.d/.
 service httpd restart
 
 4) wt temporary diractory
-mkdir /run/wt
-chown apache:apache /run/wt
+mkdir /var/run/wt
+chown apache:apache /var/run/wt
 
-5) Prepare wt application site 
+5) wt CONFIGURATION
+mkdir /etc/wt
+cp wt_config.xml /etc/wt
+
+6) Prepare wt application site 
 
 mkdir <rootBbtkWt>/<appliBtkWt>
 mkdir <rootBbtkWt>/<appliBtkWt>/imagesTMP
@@ -34,7 +38,7 @@ ln -s <INSTALATION_creaWT>/wt/data/reosurcesXTK <rootBbtkWt>/resourcesXTK
 ln -s <INSTALATION_BBTK>/bin/bbiWeb.wt <rootBbtkWt>/bbiWeb.wt
 
 
-6) Call application from browser
+7) Call application from browser
 http://localhost/<appliBbtkWt>/bbiWeb.php
 
 
index 148d4a5bbd77c7544479950dba9d4167582b5ca6..086225c4f4f8fe2b4c8985a78e805c5df53b4493 100644 (file)
@@ -21,10 +21,14 @@ cp fastcgi-wt.conf /etc/httpd/conf.modules.d/.
 service httpd restart
 
 4) wt temporary diractory
-mkdir /run/wt
-chown apache:apache /run/wt
+mkdir /var/run/wt
+chown apache:apache /var/run/wt
 
-5) Prepare wt application site 
+5) wt CONFIGURATION
+
+cp wt_config.xml /etc/wt
+mkdir /etc/wt
+6) Prepare wt application site 
 
 mkdir <rootBbtkWt>/<appliBtkWt>
 mkdir <rootBbtkWt>/<appliBtkWt>/imagesTMP
@@ -66,7 +70,6 @@ make -C examples -j8
 
 
 
-Creados por EED
 
 FastCGI configuration:
 /etc/httpd/conf.modules.d/fastcgi-wt.conf     
diff --git a/wt/data/infoConf_server_fcgi/wt_config.xml b/wt/data/infoConf_server_fcgi/wt_config.xml
new file mode 100644 (file)
index 0000000..5c18730
--- /dev/null
@@ -0,0 +1,612 @@
+<!--
+    Wt Configuration File.
+
+    The Wt configuration file manages, for every Wt application, settings
+    for session management, debugging, directory for runtime information
+    such as session sockets, and some security settings.
+
+    Settings may be specified globally, or for a single application path.
+
+    The path should be as configured in the Wt build process, where it
+    defaults to /etc/wt/wt_config.xml. It can be overridden in the environment
+    variable WT_CONFIG_XML, or with the -c startup option of wthttp.
+
+    The values listed here are the default values, which are used when the
+    declaration is missing or no configuration file is used.
+  -->
+
+<server>
+
+    <!-- Default application settings
+
+      The special location "*" always matches. See below for an example
+      of settings specific to a single application.
+      -->
+    <application-settings location="*">
+
+        <!-- Session management. -->
+       <session-management>
+            <!-- Every session runs within a dedicated process.
+
+              This mode guarantees kernel-level session privacy, but as every
+              session requires a seperate process, it is also an easy target
+              for DoS attacks if not shielded by access control.
+
+              Note: currently only supported by the wtfcgi and wthttp
+              connectors.
+              -->
+
+           <!--
+              <dedicated-process>
+                <max-num-sessions>100</max-num-sessions>
+              </dedicated-process>
+             -->
+
+           <!-- Multiple sessions within one process.
+
+              This mode spawns a number of processes, and sessions are
+              allocated randomly to one of these processes (you should not
+              use this for dynamic FCGI servers, but only in conjunction
+              with a fixed number of static FCGI servers.
+
+              This requires careful programming, as memory corruption in one
+              session will kill all of the sessions in the same process. You
+              should debug extensively using valgrind. Also, it is your
+              responsibility to keep session state not interfering and
+              seperated.
+
+              On the other hand, sessions are inexpensive, and this mode
+              suffers far less from DoS attacks than dedicated-process mode.
+              Use it for non-critical and well-debugged web applications.
+
+              Note: the wthttp connector will ignore the num-processes
+              setting and use only process.
+              -->
+           <shared-process>
+               <num-processes>1</num-processes>
+           </shared-process>
+
+           <!-- Session tracking strategy.
+
+              Possible values:
+                Auto: cookies is available, otherwise URL rewriting
+                URL:  only URL rewriting
+
+               It is recommended to stick to URL rewriting for session
+              tracking as this is more secure (it avoids the risk of attacks
+              like CSRF or BREACH), and also provides proper support for
+              concurrent sessions in a single browser.
+             -->
+           <tracking>URL</tracking>
+
+           <!-- How reload should be handled.
+
+              When reload should (or rather, may) spawn a new session, then
+              even in the case cookies are not used for session management,
+              the URL will not be cluttered with a sessionid.
+              However, WApplication::refresh() will never be called.
+             -->
+           <reload-is-new-session>true</reload-is-new-session>
+
+           <!-- Session timeout (seconds).
+
+              When a session remains inactive for this amount of time, it is
+              cleaned up.
+             -->
+           <timeout>600</timeout>
+
+           <!-- Server push timeout (seconds).
+
+               When using server-initiated updates, the client uses
+               long-polling requests. Proxies (including reverse
+               proxies) are notorious for silently closing idle
+               requests; the client therefore cancels the request
+               periodically and issues a new one. This timeout sets
+               the frequency.
+             -->
+           <server-push-timeout>50</server-push-timeout>
+       </session-management>
+
+       <!-- Settings that apply only to the FastCGI connector.
+
+          To configure the wthttp connector, use command line options, or
+          configure default options in /etc/wt/wthttpd
+         -->
+       <connector-fcgi>
+           <!-- Valgrind path
+
+               If debugging is enabled and this path is not empty, then valgrind
+              will be started for every shared process, or for every session
+              which has ?debug appended to the command line.
+
+              The variable is slighly misnamed. Not only a path can be set,
+              but also options, like for example:
+
+                 /usr/bin/valgrind - -leak-check=full
+             -->
+           <valgrind-path></valgrind-path>
+
+           <!-- Run directory
+
+               Path used by Wt to do session management.
+             -->
+           <run-directory>/var/run/wt</run-directory>
+
+           <!-- Number of threads per process
+
+               This configures the size of the thread pool. You may
+               want to change this value if you would like to support
+               reentrant event loops, where you block one event loop
+               using WDialog::exec() or related static
+               methods. Everytime you enter such an event loop, one
+               thread is blocked, and therefore the total number of
+               sessions that reliably can do this is limited to the
+               number of thread you have (minus one to unblock).
+
+              For the built-in http connector, there is a similar
+              config option that is specified in the whttpd config
+              file or on the command line (-t).
+
+               The default value is 1.
+             -->
+           <num-threads>1</num-threads>
+
+       </connector-fcgi>
+
+       <!-- Settings that apply only to the MS IIS ISAPI connector.
+
+          To configure the wthttp connector, use command line options, or
+          configure default options in /etc/wt/wthttpd
+         -->
+       <connector-isapi>
+           <!-- Number of threads per process
+
+               This configures the number of threads that will be used
+               to handle Wt requests. The IIS internal threads are never
+               used to do any processing; all requests are forwarded to
+               be handled in this threadpool. Rather than to configure a
+               so-called 'web-garden' in IIS, increase this number. The
+               ISAPI connector will not work correctly when a web-garden
+               is configured.
+
+               You may want to change this value if you would like to
+               support more reentrant event loops, where you block one
+               event loop using WDialog::exec() or related static
+               methods. Everytime you enter such an event loop, one
+               thread is blocked, and therefore the total number of
+               sessions that reliably can do this is limited to the
+               number of thread you have (minus one to unblock).
+
+               You may also want to increase this number if your Wt
+               application is regularly waiting for IO (databases, network,
+               files, ...). If this number is too low, all threads could
+               be waiting for IO operations to complete while your CPU
+               is idle. Increasing the number of threads may help.
+
+               Computing intensive applications may also increase this number,
+               even though it is better to offload computations to a helper
+               thread and user server push or a WTimer to check for
+               completion of the task in order to keep your GUI responsive
+               during the computations.
+
+               The default value is 10.
+             -->
+           <num-threads>10</num-threads>
+
+           <!-- Maximum Request Size spooled in memory (Kb)
+        
+               Normally, Wt keeps incoming requests (POST data) in memory.
+               However, malicious users could send a big POST and as such
+               use up all memory of your HTTP server. With this parameter,
+               you tune how big a request can be before Wt spools it in a
+               file before processing it. Legitimate big POST messages may
+               occur when users are expected to upload files.
+
+               See also max-request-size.
+
+               The default value is 128K, which is more than enough for
+               any interactive Wt event.
+             -->
+           <max-memory-request-size>128</max-memory-request-size>
+       </connector-isapi>
+
+        <!-- Javascript debug options
+
+            Values:
+            - naked: JavaScript errors are not caught at all
+            - false: JavaScript errors are caught and a simple error message
+                     is printed to indicate that something is terribly wrong
+            - stack: equivalent to 'false'
+            - true: JavaScript errors are rethrown after server-side logging
+
+             Unless the value is 'naked',
+            WApplication::handleJavaScriptError() is called which by
+            default logs the error and terminates the session.
+         -->
+       <debug>false</debug>
+
+       <!-- Log file
+
+          When the log file is empty, or omitted, logging is done to
+          stderr. This may end up in the web server error log file
+          (e.g. for apache + fastcgi module), or on stderr (e.g. for
+          the built-in httpd).
+         -->
+       <log-file></log-file>
+
+       <!-- Logger configuration
+
+          This configures the logger. With the default configuration,
+          everything except for debugging messages are logged.
+
+          The configuration is a string that defines rules for
+          enabling or disabling certain logging. It is a white-space
+          delimited list of rules, and each rule is of the form:
+
+            [-]level : enables (or disables) logging of messages of
+            the given level; '*' is a wild-card that matches all
+            levels
+
+            [-]level:scope : enables (or disables) logging of
+            messages of the given level and scope; '*' is a wild-card
+            that matches all levels or scopes.  The default
+            configuration is "* -debug", i.e. by default everything
+            is logged, except for "debug" messages.
+
+          Some other examples:
+
+            "* -debug debug:wthttp": logs everything, including
+            debugging messages of scope "wthttp", but no other
+            debugging messages.
+
+            "* -info -debug": disables logging of info messages
+            in addition to debugging messages.
+
+          Note debugging messages are only emitted when debugging
+          has been enabled while building Wt.
+         -->
+       <log-config>* -debug</log-config>
+
+       <!-- Maximum HTTP request size (Kb)
+
+           Maximum size of an incoming POST request. This value must be
+           increased when the user is allowed to upload files.
+         -->
+       <max-request-size>128</max-request-size>
+
+       <!-- Session id length (number of characters) -->
+       <session-id-length>16</session-id-length>
+
+       <!-- DoS prevention: limit plain HTML sessions
+
+           This is a simple measure which avoids Denial-of-Service
+           attacks on plain HTML sessions, which are easy to mount in
+           particular in the case of progressive bootstrap mode.
+
+           This setting may be used to keep the ratio of plain HTML
+           versus Ajax sessions under a certain ratio. Typically, most
+           of your sessions will be Ajax sessions, and only a tiny
+           fraction (e.g. less than 5%) will be plain HTML
+           sessions. This ratio is only enforced when more than 20 sessions
+          have been created.
+         -->
+       <plain-ajax-sessions-ratio-limit>1</plain-ajax-sessions-ratio-limit>
+
+       <!-- DoS prevention: adds a puzzle to validate Ajax sessions
+
+           This is a simple measure which avoids Denial-of-Service
+           attacks on Ajax sessions.
+
+           When enabled, a puzzle needs to be solved in the first Ajax
+           request which eliminates agents that do not build a proper
+           DOM tree.
+         -->
+       <ajax-puzzle>false</ajax-puzzle>
+
+       <!-- Do strict serialization of events.
+
+          By default events are queued at the client-side, and
+          transmitted to the server so that at any time only one
+          request/response is pending. This scheme has a quality that
+          resembles TCP: on a low-latency link you allow the
+          transmission of many smaller requests, while on a high
+          latency link, events will be propagated less often, but in
+          batches.
+
+          In any case, this scheme does not drop events, no matter
+          how quickly they are generated.
+
+          In rare cases, the scheme may result in unwanted behaviour,
+          because the client-side is allowed to be slighly out of
+          sync at the time an event is recorded with the server-side
+          (and more so on high-latency links). The drastic
+          alternative is to discard events while a response is
+          pending, and can be configured by setting this option to
+          true.
+         -->
+       <strict-event-serialization>false</strict-event-serialization>
+
+       <!-- Enables web socket.
+
+          By default Ajax and long polling are used to communicate
+          between server and browser.
+
+           By enabling web socket support, if the browser supports
+           WebSockets, then WebSocket is the protocol used for
+           communication between client and server. WebSockets are
+           currently only supported by the built-in httpd Connector,
+          which acts as both an HTTP and WebSocket server. The WebSocket
+          protocol is intentionally not compatible with HTTP, through 
+          a special hand-shake mechanism, and requires
+           that all (reverse) proxy servers also have explicit support
+           for this protocol.
+
+           This feature is still experimental: the Web Sockets RFC is
+           still a draft. Wt implements up to version 17 of the draft
+          (latest as of November 2011).
+         -->
+       <web-sockets>false</web-sockets>
+
+       <!-- Enables the detection of webgl-capabilites.
+
+            When this is enabled, the browser will try to create a
+            webgl-context when loading to verify that it is possible. This
+            is neccesary when using WGLWidget.
+
+            This can take up some load time. When your application does not
+            use WGLWidget, this option can be set to false. It will improve
+            the initial loading time of the web-application.
+       -->
+       <webgl-detection>true</webgl-detection>
+
+       <!-- Redirect message shown for browsers without JavaScript support
+
+          By default, Wt will use an automatic redirect to start the
+          application when the browser does not support
+          JavaScript. However, browsers are not required to follow
+          the redirection, and in some situations (when using XHTML),
+          such automatic redirection is not supported.
+
+          This configures the text that is shown in the anchor which
+          the user may click to be redirected to a basic HTML version
+          of your application.
+          -->
+       <redirect-message>Load basic HTML</redirect-message>
+
+       <!-- Whether we are sitting behind a reverse proxy 
+
+          When deployed behind a reverse proxy (such as Apache or Squid),
+          the server location is not read from the "Host" header,
+          but from the X-Forwarded-For header, if present.
+
+           This option is required to make e.g. clientAddress() return the
+           correct address.
+         -->
+       <behind-reverse-proxy>false</behind-reverse-proxy>
+
+       <!-- Whether inline CSS is allowed.
+
+           Some Wt widgets will insert CSS rules in the the inline
+           stylesheet when first used. This can be disabled using this
+          configuration option.
+
+           Note: some widgets, such as WTreeView and WTableView,
+           dynamically manipulate rules in this stylesheet, and will
+           no longer work properly when inline-css is disabled.
+         -->
+       <inline-css>true</inline-css>
+
+       <!-- The timeout before showing the loading indicator.
+
+          The value is specified in ms.
+          -->
+       <indicator-timeout>500</indicator-timeout>
+
+       <!-- The timeout for processing a double click event.
+
+          The value is specified in ms.
+          -->
+       <double-click-timeout>200</double-click-timeout>
+
+       <!-- Ajax user agent list
+
+           Wt considers three types of sessions:
+          - Ajax sessions: use Ajax and JavaScript
+          - plain HTML sessions: use plain old server GETs and POSTs
+          - bots: have clean internal paths and no persistent sessions
+
+           By default, Wt does a browser detection to distinguish between
+          the first two: if a browser supports JavaScript (and has it
+          enabled), and has an Ajax DOM API, then Ajax sessions are chosen,
+          otherwise plain HTML sessions.
+
+           Here, you may indicate which user agents should or should
+           not receive an Ajax session regardless of what they report as
+          capabilities.
+
+           Possible values for 'mode' or "white-list" or "black-list". A
+          white-list will only treat the listed agents as supporting Ajax,
+          all other agents will be served plain HTML sessions. A black-list
+          will always server plain HTML sessions to listed agents and
+          otherwise rely on browser capability detection.
+
+           Each <user-agent> is a regular expression.
+         -->
+       <user-agents type="ajax" mode="black-list">
+         <!-- <user-agent>.*Crappy browser.*</user-agent> -->
+       </user-agents>
+
+       <!-- Bot user agent list
+
+           Here, you can specify user agents that should be should be
+           treated as bots.
+
+           Each <user-agent> is a regular expression.
+         -->
+       <user-agents type="bot">
+         <user-agent>.*Googlebot.*</user-agent>
+         <user-agent>.*msnbot.*</user-agent>
+         <user-agent>.*Slurp.*</user-agent>
+         <user-agent>.*Crawler.*</user-agent>
+         <user-agent>.*Bot.*</user-agent>
+         <user-agent>.*ia_archiver.*</user-agent>
+         <user-agent>.*Twiceler.*</user-agent>
+       </user-agents>
+
+       <!-- Configures different rendering engines for certain browsers.
+
+           Currently this is only used to select IE7 compatible rendering
+          engine for IE8, which solves problems of unreliable and slow
+          rendering performance for VML which Microsoft broke in IE8.
+
+           Before 3.3.0, the default value was IE8=IE7, but since 3.3.0
+          this has been changed to an empty string (i.e. let IE8 use the
+          standard IE8 rendering engine) to take advantage of IE8's
+          improved CSS support. If you make heavy use of VML, you may need
+          to revert to IE8=IE7.
+         -->
+       <UA-Compatible></UA-Compatible>
+
+       <!-- Configures whether the progressive bootstrap method is used.
+
+          The default bootstrap method first senses whether there is Ajax
+          support, and only then creates the application.
+
+          The progressive bootstrap method first renders a plain HTML
+          version and later upgrades to an Ajax version.
+
+           (Not to be confused with the Twitter Bootstrap theme)
+         -->
+       <progressive-bootstrap>false</progressive-bootstrap>
+
+       <!-- Set session-ID cookie
+
+          In its default (and recommended) configuration, Wt does not
+          rely on cookies for session tracking.
+
+          Wt has several mechanisms in place to prevent session ID stealing:
+          - for an Ajax session, the session ID is not shown in the URL,
+             avoiding session ID stealing through a referer attack.
+          - in case the session ID is present in the URL (e.g. for a plain
+            HTML session), Wt will redirect links to images or external
+            anchors through an intermediate page that censors the session ID
+
+          In case of the loss of a session ID, the impact is minimized:
+          - a full page refresh is not supported if the client IP address
+            changes or the user-agent changes
+           - an Ajax update is protected by other state which is not exposed
+            in the URL
+
+          To still enable a full page refresh when the client IP address
+          changes, an additional cookie may be set which is used only
+          for this purpose, and can be enabled using this setting.
+         -->
+       <session-id-cookie>false</session-id-cookie>
+
+       <!-- Configure cookie checks
+
+         By default, Wt will test for cookie support using JavaScript.
+        Because cookie manipulation from JavaScript is a common security
+        risk vector, some prefer to disable these checks.
+
+        -->
+       <cookie-checks>true</cookie-checks>
+
+       <!-- Configure meta headers
+
+         The user-agent allows optional filtering based on the
+         user-agent, using a regular expression. You can have multiple
+         set-meta-headers definitions.
+
+        -->
+       <meta-headers user-agent=".*MSIE.*">
+         <meta name="robots" content="noindex" />
+       </meta-headers>
+
+       <!-- Runtime Properties
+     
+           These properties may be used to adapt applications to their
+          deployment environment. Typical use is for paths to resources
+          that may or may not be shared between several applications.
+         -->
+       <properties>
+           <!-- baseURL property
+
+              The absolute URL at which the application is deployed
+              (known to the user). This is needed only in two scenarios.
+
+              a) use of relative URLs in included XHTML
+
+              When you use relative URLs for images, etc... in
+              literal XHTML fragments (e.g. in WTemplate), which need
+              to resolve against the deployment path of the
+              application. This will not work as expected in the
+              presence of an internal application path.  This URL is
+              set as base URL in the HTML, against which relative
+              URLs are resolved so that these work correctly
+              regardless of the internal path. It is also used
+              explicitly in any URL generated by the library.
+
+              b) widgetset mode deployments
+
+              Another situation in which you need to define the baseURL is
+              when deploying a widgetset mode application behind a reverse
+              proxy. A widgetset mode application uses only absolute URLs
+              because it may be hosted in a web page from an entirely
+              different domain.
+
+              By default, no baseURL is specified, in which case Wt will
+              avoid using absolute URLs. Relative URLs passed in API calls
+              will be "fixed" so that they resolve against the location of the
+              application deploy path, even in the presence of an
+              internal path.
+             -->
+           <!-- <property name="baseURL">"http://mysite.com/app</property> -->
+
+            <!-- resourcesURL property
+
+              The URL at which the resources/ folder is deployed that
+              comes distributed with Wt and contains auxiliary files
+              used to primarily for styles and themes.
+
+              The default value is 'resources/'
+              -->
+           <property name="resourcesURL">resources/</property>
+
+           <!-- extBaseURL property
+
+               Used in conjunction with Ext:: widgets, and points to the
+              URL of Ext JavaScript and resource files (css, images).
+              See the documentation for the Ext namespace for details.
+
+              The default value is 'ext/'
+              -->
+           <property name="extBaseURL">ext/</property>
+
+           <!-- favicon property
+
+              By default, a browser will try to fetch a /favicon.ico icon
+              from the root of your web server which is used as an icon
+              for your application. You can specify an alternative location
+              by setting this property, or for an individual application
+              entry point by passing a location to WServer::addEntryPoint().
+             -->
+           <!-- <property name="favicon">images/favicon.ico</property> -->
+       </properties>
+
+    </application-settings>
+
+
+    <!-- Override settings for specific applications.
+
+       Location refers to physical filesystem location of the
+       application. The application prints this location (which
+       corresponds to argv[0]) to the log file on startup, and this
+       should match exactly.
+      -->
+    <!--
+    <application-settings
+       location="/var/www/localhost/wt-examples/hello.wt">
+    </application-settings>
+    -->
+</server>