Thank you Joonas and Graham for the input! You were correct, I had
WSGIProcessGroup set to GLOBAL, but not WSGIApplicationGroup. However,
when I set both to GLOBAL, it is still crashing.
I am running in embedded mode. I am happy to run in daemon mode, but I am
unable to find a deployment recipe for running Web2Py in daemon mode. Does
anyone know of any?
Also, here are my config files followed by the error.log (with
WSGIApplicationGroup ${GLOBAL}) in case anyone see problems there.
Once again, I really appreciate all the help!
-Mike
*wsgi.conf file:*
<IfModule mod_wsgi.c>
#This config file is provided to give an overview of the directives,
#which are only allowed in the 'server config' context.
#For a detailed description of all avaiable directives please read
#http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives
#WSGISocketPrefix: Configure directory to use for daemon sockets.
#
#Apache's DEFAULT_REL_RUNTIMEDIR should be the proper place for WSGI's
#Socket. In case you want to mess with the permissions of the directory,
#you need to define WSGISocketPrefix to an alternative directory.
#See http://code.google.com/p/modwsgi/wiki/ConfigurationIssues for more
#information
#WSGISocketPrefix /var/run/apache2/wsgi
#WSGIPythonOptimize: Enables basic Python optimisation features.
#
#Sets the level of Python compiler optimisations. The default is '0'
#which means no optimisations are applied.
#Setting the optimisation level to '1' or above will have the effect
#of enabling basic Python optimisations and changes the filename
#extension for compiled (bytecode) files from .pyc to .pyo.
#When the optimisation level is set to '2', doc strings will not be
#generated and retained. This will result in a smaller memory footprint,
#but may cause some Python packages which interrogate doc strings in
some
#way to fail.
#WSGIPythonOptimize 0
#WSGIPythonPath: Additional directories to search for Python modules,
# overriding the PYTHONPATH environment variable.
#
#Used to specify additional directories to search for Python modules.
#If multiple directories are specified they should be separated by a
':'.
#WSGIPythonPath directory|directory-1:directory-2:...
#WSGIPythonEggs: Directory to use for Python eggs cache.
#
#Used to specify the directory to be used as the Python eggs cache
#directory for all sub interpreters created within embedded mode.
#This directive achieves the same affect as having set the
#PYTHON_EGG_CACHE environment variable.
#Note that the directory specified must exist and be writable by the
user
#that the Apache child processes run as. The directive only applies to
#mod_wsgi embedded mode. To set the Python eggs cache directory for
#mod_wsgi daemon processes, use the 'python-eggs' option to the
#WSGIDaemonProcess directive instead.
#WSGIPythonEggs directory
#WSGIRestrictEmbedded: Enable restrictions on use of embedded mode.
#
#The WSGIRestrictEmbedded directive determines whether mod_wsgi embedded
#mode is enabled or not. If set to 'On' and the restriction on embedded
#mode is therefore enabled, any attempt to make a request against a
#WSGI application which hasn't been properly configured so as to be
#delegated to a daemon mode process will fail with a HTTP internal
server
#error response.
#WSGIRestrictEmbedded On|Off
#WSGIRestrictStdin: Enable restrictions on use of STDIN.
#WSGIRestrictStdout: Enable restrictions on use of STDOUT.
#WSGIRestrictSignal: Enable restrictions on use of signal().
#
#Well behaved WSGI applications neither should try to read/write from/to
#STDIN/STDOUT, nor should they try to register signal handlers. If your
#application needs an exception from this rule, you can disable the
#restrictions here.
#WSGIRestrictStdin On
#WSGIRestrictStdout On
#WSGIRestrictSignal On
#WSGIAcceptMutex: Specify type of accept mutex used by daemon processes.
#
#The WSGIAcceptMutex directive sets the method that mod_wsgi will use to
#serialize multiple daemon processes in a process group accepting
requests
#on a socket connection from the Apache child processes. If this
directive
#is not defined then the same type of mutex mechanism as used by Apache
for
#the main Apache child processes when accepting connections from a
client
#will be used. If set the method types are the same as for the Apache
#AcceptMutex directive.
#WSGIAcceptMutex default
#WSGIImportScript: Specify a script file to be loaded on process start.
#
#The WSGIImportScript directive can be used to specify a script file to
be
#loaded when a process starts. Options must be provided to indicate the
#name of the process group and the application group into which the
script
#will be loaded.
#WSGIImportScript process-group=name application-group=name
#WSGILazyInitialization: Enable/disable lazy initialisation of Python.
#
#The WSGILazyInitialization directives sets whether or not the Python
#interpreter is preinitialised within the Apache parent process or
whether
#lazy initialisation is performed, and the Python interpreter only
#initialised in the Apache server processes or mod_wsgi daemon processes
#after they have forked from the Apache parent process.
#WSGILazyInitialization On|Off
</IfModule>
*apache default.conf:*
WSGIDaemonProcess web2py user=www-data group=www-data processes=1 threads=1
WSGIProcessGroup %{GLOBAL}
WSGIApplicationGroup %{GLOBAL}
<VirtualHost xx.111.177.xx:80>
WSGIApplicationGroup %{GLOBAL}
WSGIProcessGroup %{GLOBAL}
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://app.myappapp.com/$1 [R,L]
CustomLog /var/log/apache2/access.log common
ErrorLog /var/log/apache2/error.log
</VirtualHost>
<VirtualHost xx.111.177.xx:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/fd5fd2b23620e633.crt
SSLCertificateKeyFile /etc/apache2/ssl/myappapp.key
SSLCACertificateFile /etc/apache2/ssl/sf_bundle-g2-g1.crt
WSGIApplicationGroup %{GLOBAL}
WSGIProcessGroup %{GLOBAL}
WSGIScriptAlias / /home/www-data/web2py/wsgihandler.py
WSGIPassAuthorization On
<Directory /home/www-data/web2py>
AllowOverride None
Require all denied
<Files wsgihandler.py>
Require all granted
</Files>
</Directory>
AliasMatch ^/([^/]+)/static/(?:_[\d]+.[\d]+.[\d]+/)?(.*) \
/home/www-data/web2py/applications/$1/static/$2
<Directory /home/www-data/web2py/applications/*/static/>
Options -Indexes
ExpiresActive On
ExpiresDefault "access plus 1 hour"
Require all granted
</Directory>
CustomLog /var/log/apache2/ssl-access.log common
ErrorLog /var/log/apache2/error.log
ServerName app.myappapp.com
</VirtualHost>
[Tue Jan 05 00:49:22.665890 2016] [ssl:info] [pid 1296] AH01887: Init:
Initializing (virtual) servers for SSL
[Tue Jan 05 00:49:22.665948 2016] [ssl:info] [pid 1296] AH01914:
Configuring server app.myapp.com:443 for SSL protocol
[Tue Jan 05 00:49:22.666577 2016] [ssl:debug] [pid 1296]
ssl_engine_init.c(1600): AH02209: CA certificate: CN=Starfield Secure
Certificate Authority -
G2,OU=http://certs.starfieldtech.com/repository/,O=Starfield
Technologies\\, Inc.,L=Scottsdale,ST=Arizona,C=US
[Tue Jan 05 00:49:22.666596 2016] [ssl:debug] [pid 1296]
ssl_engine_init.c(1600): AH02209: CA certificate: CN=Starfield Root
Certificate Authority - G2,O=Starfield Technologies\\,
Inc.,L=Scottsdale,ST=Arizona,C=US
[Tue Jan 05 00:49:22.666607 2016] [ssl:debug] [pid 1296]
ssl_engine_init.c(1600): AH02209: CA certificate: OU=Starfield Class 2
Certification Authority,O=Starfield Technologies\\, Inc.,C=US
[Tue Jan 05 00:49:22.666659 2016] [ssl:debug] [pid 1296]
ssl_engine_init.c(390): AH01893: Configuring TLS extension handling
[Tue Jan 05 00:49:22.666859 2016] [ssl:debug] [pid 1296]
ssl_util_ssl.c(343): AH02412: [app.myapp.com:443] Cert matches for name
'app.myapp.com' [subject: CN=app.myapp.com,OU=Domain Control Validated /
issuer: CN=Starfield Secure Certificate Authority -
G2,OU=http://certs.starfieldtech.com/repository/,O=Starfield
Technologies\\, Inc.,L=Scottsdale,ST=Arizona,C=US / serial:
FD5FD2A73620E644 / notbefore: Sep 7 05:25:43 2015 GMT / notafter: Sep 7
05:25:43 2016 GMT]
[Tue Jan 05 00:49:22.666869 2016] [ssl:info] [pid 1296] AH02568:
Certificate and private key app.myapp.com:443:0 configured from
/etc/apache2/ssl/FD5FD2A73620E644.crt and /etc/apache2/ssl/myapp.key
[Tue Jan 05 00:49:22.666962 2016] [ssl:info] [pid 1296] AH01876:
mod_ssl/2.4.10 compiled against Server: Apache/2.4.10, Library:
OpenSSL/1.0.1f
[Tue Jan 05 00:49:22.697500 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(396): AH00821: shmcb_init allocated 512000 bytes of
shared memory
[Tue Jan 05 00:49:22.697525 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(412): AH00822: for 511912 bytes (512000 including
header), recommending 32 subcaches, 88 indexes each
[Tue Jan 05 00:49:22.697528 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(445): AH00824: shmcb_init_memory choices follow
[Tue Jan 05 00:49:22.697531 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(447): AH00825: subcache_num = 32
[Tue Jan 05 00:49:22.697544 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(449): AH00826: subcache_size = 15992
[Tue Jan 05 00:49:22.697548 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(451): AH00827: subcache_data_offset = 2128
[Tue Jan 05 00:49:22.697550 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(453): AH00828: subcache_data_size = 13864
[Tue Jan 05 00:49:22.697553 2016] [socache_shmcb:debug] [pid 1298]
mod_socache_shmcb.c(455): AH00829: index_num = 88
[Tue Jan 05 00:49:22.697629 2016] [socache_shmcb:info] [pid 1298] AH00830:
Shared memory socache initialised
[Tue Jan 05 00:49:22.697633 2016] [ssl:info] [pid 1298] AH01887: Init:
Initializing (virtual) servers for SSL
[Tue Jan 05 00:49:22.697637 2016] [ssl:info] [pid 1298] AH01914:
Configuring server app.myapp.com:443 for SSL protocol
[Tue Jan 05 00:49:22.698297 2016] [ssl:debug] [pid 1298]
ssl_engine_init.c(1600): AH02209: CA certificate: CN=Starfield Secure
Certificate Authority -
G2,OU=http://certs.starfieldtech.com/repository/,O=Starfield
Technologies\\, Inc.,L=Scottsdale,ST=Arizona,C=US
[Tue Jan 05 00:49:22.698314 2016] [ssl:debug] [pid 1298]
ssl_engine_init.c(1600): AH02209: CA certificate: CN=Starfield Root
Certificate Authority - G2,O=Starfield Technologies\\,
Inc.,L=Scottsdale,ST=Arizona,C=US
[Tue Jan 05 00:49:22.698326 2016] [ssl:debug] [pid 1298]
ssl_engine_init.c(1600): AH02209: CA certificate: OU=Starfield Class 2
Certification Authority,O=Starfield Technologies\\, Inc.,C=US
[Tue Jan 05 00:49:22.698378 2016] [ssl:debug] [pid 1298]
ssl_engine_init.c(390): AH01893: Configuring TLS extension handling
[Tue Jan 05 00:49:22.698579 2016] [ssl:debug] [pid 1298]
ssl_util_ssl.c(343): AH02412: [app.myapp.com:443] Cert matches for name
'app.myapp.com' [subject: CN=app.myapp.com,OU=Domain Control Validated /
issuer: CN=Starfield Secure Certificate Authority -
G2,OU=http://certs.starfieldtech.com/repository/,O=Starfield
Technologies\\, Inc.,L=Scottsdale,ST=Arizona,C=US / serial:
FD5FD2A73620E644 / notbefore: Sep 7 05:25:43 2015 GMT / notafter: Sep 7
05:25:43 2016 GMT]
[Tue Jan 05 00:49:22.698589 2016] [ssl:info] [pid 1298] AH02568:
Certificate and private key app.myapp.com:443:0 configured from
/etc/apache2/ssl/FD5FD2A73620E644.crt and /etc/apache2/ssl/myapp.key
[Tue Jan 05 00:49:22.698684 2016] [ssl:info] [pid 1298] AH01876:
mod_ssl/2.4.10 compiled against Server: Apache/2.4.10, Library:
OpenSSL/1.0.1f
[Tue Jan 05 00:49:22.698892 2016] [wsgi:debug] [pid 1298]
src/server/mod_wsgi.c(7804): mod_wsgi (pid=1298): Socket for 'web2py' is
'/var/run/apache2/wsgi.1298.0.1.sock'.
[Tue Jan 05 00:49:22.698918 2016] [wsgi:debug] [pid 1298]
src/server/mod_wsgi.c(7862): mod_wsgi (pid=1298): Listen backlog for socket
'/var/run/apache2/wsgi.1298.0.1.sock' is '100'.
[Tue Jan 05 00:49:22.699639 2016] [wsgi:info] [pid 1301] mod_wsgi
(pid=1301): Starting process 'web2py' with uid=33, gid=33 and threads=1.
[Tue Jan 05 00:49:22.699917 2016] [wsgi:info] [pid 1301] mod_wsgi
(pid=1301): Initializing Python.
[Tue Jan 05 00:49:22.700691 2016] [proxy:debug] [pid 1302]
proxy_util.c(1771): AH00925: initializing worker proxy:reverse shared
[Tue Jan 05 00:49:22.700728 2016] [proxy:debug] [pid 1302]
proxy_util.c(1813): AH00927: initializing worker proxy:reverse local
[Tue Jan 05 00:49:22.700760 2016] [proxy:debug] [pid 1302]
proxy_util.c(1864): AH00931: initialized single connection worker in child
1302 for (*)
[Tue Jan 05 00:49:22.700836 2016] [wsgi:info] [pid 1302] mod_wsgi
(pid=1302): Initializing Python.
[Tue Jan 05 00:49:22.703923 2016] [mpm_prefork:notice] [pid 1298] AH00163:
Apache/2.4.10 (Ubuntu) OpenSSL/1.0.1f mod_wsgi/4.4.20 Python/2.7.9
configured -- resuming normal operations
[Tue Jan 05 00:49:22.703966 2016] [mpm_prefork:info] [pid 1298] AH00164:
Server built: Jul 24 2015 17:25:18
[Tue Jan 05 00:49:22.703979 2016] [core:notice] [pid 1298] AH00094: Command
line: '/usr/sbin/apache2'
[Tue Jan 05 00:49:22.703983 2016] [mpm_prefork:debug] [pid 1298]
prefork.c(995): AH00165: Accept mutex: fcntl (default: sysvsem)
[Tue Jan 05 00:49:22.704497 2016] [proxy:debug] [pid 1303]
proxy_util.c(1771): AH00925: initializing worker proxy:reverse shared
[Tue Jan 05 00:49:22.704523 2016] [proxy:debug] [pid 1303]
proxy_util.c(1813): AH00927: initializing worker proxy:reverse local
[Tue Jan 05 00:49:22.704558 2016] [proxy:debug] [pid 1303]
proxy_util.c(1864): AH00931: initialized single connection worker in child
1303 for (*)
[Tue Jan 05 00:49:22.704634 2016] [wsgi:info] [pid 1303] mod_wsgi
(pid=1303): Initializing Python.
[Tue Jan 05 00:49:22.708721 2016] [proxy:debug] [pid 1304]
proxy_util.c(1771): AH00925: initializing worker proxy:reverse shared
[Tue Jan 05 00:49:22.708757 2016] [proxy:debug] [pid 1304]
proxy_util.c(1813): AH00927: initializing worker proxy:reverse local
[Tue Jan 05 00:49:22.708794 2016] [proxy:debug] [pid 1304]
proxy_util.c(1864): AH00931: initialized single connection worker in child
1304 for (*)
[Tue Jan 05 00:49:22.708874 2016] [wsgi:info] [pid 1304] mod_wsgi
(pid=1304): Initializing Python.
[Tue Jan 05 00:49:22.712708 2016] [proxy:debug] [pid 1306]
proxy_util.c(1771): AH00925: initializing worker proxy:reverse shared
[Tue Jan 05 00:49:22.712723 2016] [proxy:debug] [pid 1305]
proxy_util.c(1771): AH00925: initializing worker proxy:reverse shared
[Tue Jan 05 00:49:22.712742 2016] [proxy:debug] [pid 1306]
proxy_util.c(1813): AH00927: initializing worker proxy:reverse local
[Tue Jan 05 00:49:22.712759 2016] [proxy:debug] [pid 1305]
proxy_util.c(1813): AH00927: initializing worker proxy:reverse local
[Tue Jan 05 00:49:22.712787 2016] [proxy:debug] [pid 1306]
proxy_util.c(1864): AH00931: initialized single connection worker in child
1306 for (*)
[Tue Jan 05 00:49:22.712877 2016] [wsgi:info] [pid 1306] mod_wsgi
(pid=1306): Initializing Python.
[Tue Jan 05 00:49:22.714612 2016] [wsgi:info] [pid 1302] mod_wsgi
(pid=1302): Attach interpreter ''.
[Tue Jan 05 00:49:22.715366 2016] [wsgi:info] [pid 1302] mod_wsgi
(pid=1302): Imported 'mod_wsgi'.
[Tue Jan 05 00:49:22.716414 2016] [proxy:debug] [pid 1305]
proxy_util.c(1864): AH00931: initialized single connection worker in child
1305 for (*)
[Tue Jan 05 00:49:22.716546 2016] [wsgi:info] [pid 1305] mod_wsgi
(pid=1305): Initializing Python.
[Tue Jan 05 00:49:22.726402 2016] [wsgi:info] [pid 1301] mod_wsgi
(pid=1301): Attach interpreter ''.
[Tue Jan 05 00:49:22.727207 2016] [wsgi:info] [pid 1301] mod_wsgi
(pid=1301): Imported 'mod_wsgi'.
[Tue Jan 05 00:49:22.729718 2016] [wsgi:info] [pid 1304] mod_wsgi
(pid=1304): Attach interpreter ''.
[Tue Jan 05 00:49:22.730080 2016] [wsgi:info] [pid 1305] mod_wsgi
(pid=1305): Attach interpreter ''.
[Tue Jan 05 00:49:22.730444 2016] [wsgi:info] [pid 1306] mod_wsgi
(pid=1306): Attach interpreter ''.
[Tue Jan 05 00:49:22.730458 2016] [wsgi:info] [pid 1304] mod_wsgi
(pid=1304): Imported 'mod_wsgi'.
[Tue Jan 05 00:49:22.730721 2016] [wsgi:debug] [pid 1301]
src/server/mod_wsgi.c(8417): mod_wsgi (pid=1301): Started thread 0 in
daemon process 'web2py'.
[Tue Jan 05 00:49:22.730824 2016] [wsgi:info] [pid 1305] mod_wsgi
(pid=1305): Imported 'mod_wsgi'.
[Tue Jan 05 00:49:22.731192 2016] [wsgi:info] [pid 1306] mod_wsgi
(pid=1306): Imported 'mod_wsgi'.
[Tue Jan 05 00:49:22.732563 2016] [wsgi:info] [pid 1303] mod_wsgi
(pid=1303): Attach interpreter ''.
[Tue Jan 05 00:49:22.733260 2016] [wsgi:info] [pid 1303] mod_wsgi
(pid=1303): Imported 'mod_wsgi'.
[Tue Jan 05 00:49:35.947693 2016] [ssl:info] [pid 1302] [client
70.117.108.188:63443] AH01964: Connection to child 0 established (server
app.myapp.com:443)
[Tue Jan 05 00:49:35.948061 2016] [ssl:debug] [pid 1302]
ssl_engine_kernel.c(1908): [client 70.117.108.188:63443] AH02043: SSL
virtual host for servername app.myapp.com found
[Tue Jan 05 00:49:36.006521 2016] [ssl:debug] [pid 1302]
ssl_engine_kernel.c(1841): [client 70.117.108.188:63443] AH02041: Protocol:
TLSv1.2, Cipher: ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
[Tue Jan 05 00:49:36.055162 2016] [ssl:debug] [pid 1302]
ssl_engine_kernel.c(243): [client 70.117.108.188:63443] AH02034: Initial
(No.1) HTTPS request received for child 0 (server app.myapp.com:443)
[Tue Jan 05 00:49:36.055280 2016] [authz_core:debug] [pid 1302]
mod_authz_core.c(809): [client 70.117.108.188:63443] AH01626: authorization
result of Require all granted: granted
[Tue Jan 05 00:49:36.055286 2016] [authz_core:debug] [pid 1302]
mod_authz_core.c(809): [client 70.117.108.188:63443] AH01626: authorization
result of <RequireAny>: granted
[Tue Jan 05 00:49:36.055387 2016] [authz_core:debug] [pid 1302]
mod_authz_core.c(809): [client 70.117.108.188:63443] AH01626: authorization
result of Require all granted: granted
[Tue Jan 05 00:49:36.055392 2016] [authz_core:debug] [pid 1302]
mod_authz_core.c(809): [client 70.117.108.188:63443] AH01626: authorization
result of <RequireAny>: granted
[Tue Jan 05 00:49:36.055439 2016] [wsgi:info] [pid 1302] [client
70.117.108.188:63443] mod_wsgi (pid=1302, process='', application=''):
Loading WSGI script '/home/www-data/web2py/wsgihandler.py'.
[Tue Jan 05 00:49:36.719326 2016] [core:notice] [pid 1298] AH00052: child
pid 1302 exit signal Segmentation fault (11)
--
You received this message because you are subscribed to the Google Groups
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.