Have you gone back to the CPanel Apache config and confirmed whether:

   PrivilegesMode SECURE

is defined or not?

What do you get when you run:

    ls -lasd /var/run/apache2

Graham

> On 4 Jul 2018, at 4:54 am, [email protected] wrote:
> 
> Apologies for the late reply!
> 
> I realised I had missed a few errors in my apache restart log. Even though 
> the final message I received was "httpd restarted successfully.", some errors 
> like the "(13)Permission denied" one were being reported as well (I just 
> didn't scroll up far enough to notice them). Oddly enough, these errors 
> didn't always show up in the actual error_log file. 
> 
> So I restarted from scratch again, following the same steps as outlined in my 
> opening post, but using a conda environment (djangotest), conda virtualenv 
> (djangoenv) and non-conda (base python) virtualenv.
> 
> pre_main_global.conf
> 
> # conda env
> LoadModule wsgi_module 
> "/home/user/.conda/envs/djangotest/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
> WSGIPythonHome "/home/user/.conda/envs/djangotest"
> 
> # conda virtualenv
> #LoadModule wsgi_module 
> "/home/user/public_html/django/djangoenv/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
> #WSGIPythonHome "/home/user/public_html/django/djangoenv"
> 
> # non-conda virtualenv
> LoadModule wsgi_module 
> "/home/user/public_html/django/django-base-env/django-base-env/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
> WSGIPythonHome "/home/user/public_html/django/django-base-env/django-base-env
> 
> virtual host
> 
> Alias /static /home/user/public_html/django/myproject/static
> 
> <Directory /home/user/public_html/django/myproject/static>
>     Require all granted
> </Directory>
> 
> <Directory /home/user/public_html/django/myproject/myproject>
>     <Files wsgi.py>
>         Require all granted
>     </Files>
> </Directory>
> 
> WSGIDaemonProcess djangotest python-home=/home/user/.conda/envs/djangotest
> #WSGIDaemonProcess djangotest 
> python-home=/home/user/public_html/django/djangoenv
> #WSGIDaemonProcess djangotest socket-user=#1000 
> python-home=/home/user/public_html/django/django-base-env
> 
> WSGIProcessGroup djangotest
> WSGIScriptAlias / /home/user/public_html/django/myproject/myproject/wsgi.py
> 
> Results for conda environment (after rebuilding conf files and restarting 
> apache):
> 
>    
> [Tue Jul 03 12:38:02.882573 2018] [wsgi:error] [pid 10269] (13)Permission 
> denied: [client 143.129.70.74:35706] mod_wsgi (pid=10269): Unable to connect 
> to WSGI daemon process 'djangotest' on 
> '/var/run/apache2/wsgi.13810.95.1.sock' as user with uid=1000.
>     Adding `LoadFile /opt/miniconda3/lib/libpython3.6m.so.1.0` to the 
> pre_main_global.conf file does not seem to do anything.
>     Adding a `WSGISocketPrefix /tmp/wsgi` line does not seem to change this 
> error.
>     Neither does adding socket-user=#1000
> The actual error log shows:
> 
> [Tue Jul 03 13:40:25.878834 2018] [mpm_prefork:notice] [pid 13810] AH00171: 
> Graceful restart requested, doing restart
> [Tue Jul 03 13:40:25.972140 2018] [ssl:warn] [pid 13810] AH01909: 
> proxy-subdomains-ssl-default-vhost.localhost:443:0 server certificate does 
> NOT include an ID which matches the server name
> [Tue Jul 03 13:40:25.981758 2018] [:notice] [pid 13810] mod_ruid2/0.9.8 
> enabled
> [Tue Jul 03 13:40:25.984009 2018] [mpm_prefork:notice] [pid 13810] AH00163: 
> Apache/2.4.33 (cPanel) OpenSSL/1.0.2o mod_bwlimited/1.4 mod_wsgi/4.6.4 
> Python/3.6 configured -- resuming normal operations
> [Tue Jul 03 13:40:25.984046 2018] [core:notice] [pid 13810] AH00094: Command 
> line: '/usr/sbin/httpd'
> 
> Results for virtualenv:
> 
> [Tue Jul 03 12:38:03.541889 2018] [wsgi:error] [pid 10270] (13)Permission 
> denied: [client 143.129.70.74:35712] mod_wsgi (pid=10270): Unable to connect 
> to WSGI daemon process 'djangotest' on 
> '/var/run/apache2/wsgi.13810.95.1.sock' as user with uid=1000.
>     Adding `LoadFile /opt/miniconda3/lib/libpython3.6m.so.1.0` to the 
> pre_main_global.conf file does not seem to do anything.
>     Adding a `WSGISocketPrefix /tmp/wsgi` line does not seem to change this 
> error.
>     Neither does adding socket-user=#1000
> Results for non-conda python3.6 virtualenv
> 
>     [Tue Jul 03 12:38:02.882573 2018] [wsgi:error] [pid 10269] (13)Permission 
> denied: [client 143.129.70.74:35706] mod_wsgi (pid=10269): Unable to connect 
> to WSGI daemon process 'djangotest' on 
> '/var/run/apache2/wsgi.13810.95.1.sock' as user with uid=1000.
> 
>     Adding ` socket-user=#1000` DOES result in a successfull apache restart 
> without any errors in the output. However, the apache error log then reads:
> 
> Current thread 0x00007f8ed2d49880 (most recent call first):
> [Tue Jul 03 20:24:57.474778 2018] [core:notice] [pid 13810] AH00052: child 
> pid 27489 exit signal Aborted (6)
> [Tue Jul 03 20:24:57.476480 2018] [wsgi:warn] [pid 27493] (2)No such file or 
> directory: mod_wsgi (pid=27493): Unable to stat Python home 
> /home/user/public_html/django/django-base-env/django-base-env. Python 
> interpreter may not be able to be initialized correctly. Verify the supplied 
> path and access permissions for whole of the path.
> Fatal Python error: Py_Initialize: Unable to get the locale encoding
> ModuleNotFoundError: No module named 'encodings'
> 
> I wanted to add a new LoadFile statement, but it seems that the mod_wsgi 
> version, installed via pip in a non-conda virtualenv (base python3.6) was 
> still associated with conda somehow:
> 
> ldd 
> django-base-env/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
>  
>     linux-vdso.so.1 =>  (0x00007ffeeefda000)
>     libpython3.6m.so.1.0 => /opt/miniconda3/lib/libpython3.6m.so.1.0 
> (0x00007f3813c24000)
>     libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f38139fa000)
>     libc.so.6 => /lib64/libc.so.6 (0x00007f381362d000)
>     libdl.so.2 => /lib64/libdl.so.2 (0x00007f3813429000)
>     libutil.so.1 => /lib64/libutil.so.1 (0x00007f3813225000)
>     librt.so.1 => /lib64/librt.so.1 (0x00007f381301d000)
>     libm.so.6 => /lib64/libm.so.6 (0x00007f3812d1b000)
>     /lib64/ld-linux-x86-64.so.2 (0x00007f38143a6000)
> 
> The weird thing is that I explicitly used the base python3.6 and its pip 
> binaries to create this environment.
> 
> /usr/local/bin/virtualenv -p /usr/bin/python3.6 django-base-env
> 
> I suspect this is caused by the fact that the original 3.6 install wasn't 
> configured with the shared_library option and that it is somehow defaulting 
> back to conda's shared library?
> 
> Adding the original LoadFile statement (using the /opt/miniconda path) 
> doesn't change the apache error log.
> 
> In all cases, `httpd -M` shows Loaded Modules: wsgi_module (shared)
> 
> Perhaps I should try installing a second python 3.6 (non-conda) version? 
> Although I'm a bit afraid I'll mess up my system if I'm not careful. I 
> actually tried removing this python3.6 version using yum, but that didn't 
> remove the actual binaries/symlinkms/paths apparently.
> 
> On Friday, June 29, 2018 at 10:33:42 AM UTC+2, Graham Dumpleton wrote:
> Looks like your Apache may be running with:
> 
>     PrivilegesMode SECURE
> 
> See:
> 
>     https://httpd.apache.org/docs/2.4/mod/mod_privileges.html#privilegesmode 
> <https://httpd.apache.org/docs/2.4/mod/mod_privileges.html#privilegesmode>
> 
> In that case you will need to supply the socket-user option to 
> WSGIDaemonProcess.
> 
>     
> http://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIDaemonProcess.html
>  
> <http://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIDaemonProcess.html>
> 
> So add to WSGIDaemonProcess:
> 
>     socket-user=#1000
> 
> You possibly don't then need to override WSGISocketPrefix.
> 
> Graham
> 
> -- 
> 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] 
> <mailto:[email protected]>.
> To post to this group, send email to [email protected] 
> <mailto:[email protected]>.
> Visit this group at https://groups.google.com/group/modwsgi 
> <https://groups.google.com/group/modwsgi>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
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.

Reply via email to