On 21 Oct 2022, at 6:40 pm, Malcolm Cook <malcol...@gmail.com> wrote:Hello,I have configured apache2 for running any .wsgi apps out of ~/public_htmlIt works for a simple ~/public_html/hello_world.wsgiHooray!However, I am having trouble when my app uses/usr/bin/python3 -m venv venvwith the simplest of dash apps.I have so far learned to include in my app.wsgi the following:site.addsitedir('/home/mec/public_html/dash101/dash101.wsgi')
allowing the app to find the dash modules installed into its venv when run under apache mod_wsgi.The app now works from the command line; when run under apache mod_wsgi it only successfully finds the modules in the venv but then fails with:
[root@hd1991356yb mec]# [Fri Oct 21 01:04:29.974555 2022] [wsgi:info] [pid 69391] mod_wsgi (pid=69391): Create interpreter 'hd1991356yb.sgc.loc|/~mec/dash101/app.wsgi'.
[Fri Oct 21 01:04:29.989457 2022] [wsgi:info] [pid 69391] [client 10.2.20.25:41124] mod_wsgi (pid=69391, process='', application='hd1991356yb.sgc.loc|/~mec/dash101/app.wsgi'): Loading Python script file '/home/mec/public_html/dash101/app.wsgi'., referer: http://hd1991356yb/~mec/dash101/
[Fri Oct 21 01:04:30.891229 2022] [wsgi:error] [pid 69391] /home/mec/public_html/dash101/app.py:2: UserWarning:
[Fri Oct 21 01:04:30.891279 2022] [wsgi:error] [pid 69391] The dash_html_components package is deprecated. Please replace
[Fri Oct 21 01:04:30.891289 2022] [wsgi:error] [pid 69391] `import dash_html_components as html` with `from dash import html`
[Fri Oct 21 01:04:30.891298 2022] [wsgi:error] [pid 69391] import dash_html_components as html
[Fri Oct 21 01:04:33.661364 2022] [wsgi:error] [pid 69391] /home/mec/public_html/dash101/app.py:4: UserWarning:
[Fri Oct 21 01:04:33.661397 2022] [wsgi:error] [pid 69391]
[Fri Oct 21 01:04:33.661403 2022] [wsgi:error] [pid 69391]
[Fri Oct 21 01:04:33.661408 2022] [wsgi:error] [pid 69391] The dash_core_components package is deprecated. Please replace
[Fri Oct 21 01:04:33.661413 2022] [wsgi:error] [pid 69391] `import dash_core_components as dcc` with `from dash import dcc`
[Fri Oct 21 01:04:33.661417 2022] [wsgi:error] [pid 69391]
[Fri Oct 21 01:04:34.825419 2022] [core:info] [pid 69391] [client 10.2.20.25:41124] AH00128: File does not exist: /var/www/html/_dash-component-suites/dash/deps/poly...@7.v2_6_2m1666328797.12.1.min.js, referer: http://hd1991356yb/~mec/dash101/app.wsgi/I am for now ignoring the deprecation warnings.
I error comes from the app looking for dash's .js files within /var/www/html (apache's root).How can my app.wsgi alter this path?I tried adding this to my app.wsgi:os.environ["DASH_URL_BASE_PATHNAME"] = "/home/mec/public_html/dash101/"
which does effect where the js files are sought, only not correctly, as the error is now:[Fri Oct 21 01:48:29.019458 2022] [core:info] [pid 8597] [client 10.2.20.25:43445] AH00128: File does not exist: /var/www/html/home/mec/public_html/dash101/_dash-component-suites/dash/deps/poly...@7.v2_6_2m1666328797.12.1.min.js, referer: http://hd1991356yb/~mec/dash101/app.wsgi
So far, apache2 is configured with:LoadModule wsgi_module /usr/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so<IfModule mod_userdir.c>
UserDir public_html
</IfModule><Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
Require method GET POST OPTIONS
AddHandler cgi-script .cgi
AddHandler wsgi-script .wsgi
</Directory>I am not issuing any other wSGI configuration directives in my apache2 configuration.Perhaps I should not expect apache2+userdir+mod_wsgi to work at all...???
All advice as to how to proceed very welcome.update: I've now read https://groups.google.com/g/modwsgi/c/Lnik3YHFujA/m/3QRuwEZXP6sJ and have tried the approach mentioned there:WSGIRestrictEmbedded OnWSGIDaemonProcess mec
<Directory /home/mec/public_html>
WSGIProcessGroup mec user=mec
</Directory>I modifed it remove the (now deprecated?) `user=mec` (which causes apache restart to fail)But it did not alter the error sequence I am getting.That advice is from 2011. Perhaps things have changed and there is now a best approach to this (possibly including a "means for dynamic creation of daemonprocess groups")...???
I also read https://groups.google.com/g/modwsgi/c/K9hBYI07EsM/m/A_Ao9g4vFgAJ but could not determine if there was relevant advice there.Thanks !~Malcolm COok
--
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 modwsgi+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/modwsgi/21316f05-cf35-427b-91e9-441200954ce5n%40googlegroups.com.
On 21 Oct 2022, at 6:40 pm, Malcolm Cook <malcol...@gmail.com> wrote:Hello,I have configured apache2 for running any .wsgi apps out of ~/public_htmlIt works for a simple ~/public_html/hello_world.wsgiHooray!However, I am having trouble when my app uses/usr/bin/python3 -m venv venvwith the simplest of dash apps.I have so far learned to include in my app.wsgi the following:site.addsitedir('/home/mec/public_html/dash101/dash101.wsgi')The site.addsitedir() function accepts a directory, not a file. For working with virtual environments ensure you read
allowing the app to find the dash modules installed into its venv when run under apache mod_wsgi.The app now works from the command line; when run under apache mod_wsgi it only successfully finds the modules in the venv but then fails with:
[root@hd1991356yb mec]# [Fri Oct 21 01:04:29.974555 2022] [wsgi:info] [pid 69391] mod_wsgi (pid=69391): Create interpreter 'hd1991356yb.sgc.loc|/~mec/dash101/app.wsgi'.
[Fri Oct 21 01:04:29.989457 2022] [wsgi:info] [pid 69391] [client 10.2.20.25:41124] mod_wsgi (pid=69391, process='', application='hd1991356yb.sgc.loc|/~mec/dash101/app.wsgi'): Loading Python script file '/home/mec/public_html/dash101/app.wsgi'., referer: http://hd1991356yb/~mec/dash101/
[Fri Oct 21 01:04:30.891229 2022] [wsgi:error] [pid 69391] /home/mec/public_html/dash101/app.py:2: UserWarning:
[Fri Oct 21 01:04:30.891279 2022] [wsgi:error] [pid 69391] The dash_html_components package is deprecated. Please replace
[Fri Oct 21 01:04:30.891289 2022] [wsgi:error] [pid 69391] `import dash_html_components as html` with `from dash import html`
[Fri Oct 21 01:04:30.891298 2022] [wsgi:error] [pid 69391] import dash_html_components as html
[Fri Oct 21 01:04:33.661364 2022] [wsgi:error] [pid 69391] /home/mec/public_html/dash101/app.py:4: UserWarning:
[Fri Oct 21 01:04:33.661397 2022] [wsgi:error] [pid 69391]
[Fri Oct 21 01:04:33.661403 2022] [wsgi:error] [pid 69391]
[Fri Oct 21 01:04:33.661408 2022] [wsgi:error] [pid 69391] The dash_core_components package is deprecated. Please replace
[Fri Oct 21 01:04:33.661413 2022] [wsgi:error] [pid 69391] `import dash_core_components as dcc` with `from dash import dcc`
[Fri Oct 21 01:04:33.661417 2022] [wsgi:error] [pid 69391]
[Fri Oct 21 01:04:34.825419 2022] [core:info] [pid 69391] [client 10.2.20.25:41124] AH00128: File does not exist: /var/www/html/_dash-component-suites/dash/deps/poly...@7.v2_6_2m1666328797.12.1.min.js, referer: http://hd1991356yb/~mec/dash101/app.wsgi/I am for now ignoring the deprecation warnings.
I error comes from the app looking for dash's .js files within /var/www/html (apache's root).How can my app.wsgi alter this path?I tried adding this to my app.wsgi:os.environ["DASH_URL_BASE_PATHNAME"] = "/home/mec/public_html/dash101/"That is a file system path you are giving it, not a URL path the web server understands.
which does effect where the js files are sought, only not correctly, as the error is now:[Fri Oct 21 01:48:29.019458 2022] [core:info] [pid 8597] [client 10.2.20.25:43445] AH00128: File does not exist: /var/www/html/home/mec/public_html/dash101/_dash-component-suites/dash/deps/poly...@7.v2_6_2m1666328797.12.1.min.js, referer: http://hd1991356yb/~mec/dash101/app.wsgiWhere is the "_dash-component-suites" actually located on the file system.
That directory should be copied into /var/www/html and DASH_URL_BASE_PATHNAME not set, or, you need to set up the Apache Alias directory to map some URL prefix to filesystem location where it is.
So far, apache2 is configured with:LoadModule wsgi_module /usr/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so<IfModule mod_userdir.c>
UserDir public_html
</IfModule><Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
Require method GET POST OPTIONS
AddHandler cgi-script .cgi
AddHandler wsgi-script .wsgi
</Directory>I am not issuing any other wSGI configuration directives in my apache2 configuration.Perhaps I should not expect apache2+userdir+mod_wsgi to work at all...???In general it is best to avoid using mod_userdir with mod_wsgi as it confuses typical WSGI application URL handling.
Why are you trying to use mod_userdir. Do you not control the whole Apache server?
All advice as to how to proceed very welcome.update: I've now read https://groups.google.com/g/modwsgi/c/Lnik3YHFujA/m/3QRuwEZXP6sJ and have tried the approach mentioned there:WSGIRestrictEmbedded OnWSGIDaemonProcess mec
<Directory /home/mec/public_html>
WSGIProcessGroup mec user=mec
</Directory>I modifed it remove the (now deprecated?) `user=mec` (which causes apache restart to fail)But it did not alter the error sequence I am getting.That advice is from 2011. Perhaps things have changed and there is now a best approach to this (possibly including a "means for dynamic creation of daemonprocess groups")...???Daemon process groups still have to be defined up from.
--
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 modwsgi+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/modwsgi/3e786f91-8d0f-41ce-b999-0e52a1781a6en%40googlegroups.com.