Figured you might, but wanted to make sure. :-)

> On 3 Dec 2021, at 6:09 pm, Matkat Music <[email protected]> wrote:
> 
> I'm using the dotenv module actually.  It's very handy
> 
> from dotenv import load_dotenv
> load_dotenv()
> 
> On Thu, Dec 2, 2021 at 8:44 PM Graham Dumpleton <[email protected] 
> <mailto:[email protected]>> wrote:
> Apache will not use per user environment settings. So if that .env file is 
> something set in shell you can't use it. You will need to use some means for 
> the Python code to read the .env file direct.
> 
>> On 3 Dec 2021, at 3:35 pm, matkatmusic <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Alright, I got it fully working now. 
>> 
>> I had to use this in the conf files: 
>>     WSGIDaemonProcess flaskapp 
>> python-home=/home/bfxqsxmy/public_html/flask/venv/ 
>> python-path=/home/bfxqsxmy/public_html/flask/
>>     WSGIScriptAlias /app /home/bfxqsxmy/public_html/flask/application.wsgi 
>> process-group=flaskapp application-group=%{GLOBAL}
>> 
>> And then this in the application.wsgi file
>> from pfm.test1 import app as application
>> 
>> Now I can try migrating the actual app over, including the .env file, and 
>> seeing if it works. 
>> 
>> 
>> On Thursday, December 2, 2021 at 7:09:34 PM UTC-8 Graham Dumpleton wrote:
>> 
>>> On 3 Dec 2021, at 1:42 pm, matkatmusic <[email protected] <>> wrote:
>>> 
>>> Here is the part that gets included automatically from the VirtualHost 
>>> directive for my site http://flask.chordieapp.com 
>>> <http://flask.chordieapp.com/>
>>> Cpanel is automatically creating the VirtualHost directive, and the 
>>> instructions say to create a file in /etc/apache2/conf.d/userdata/ and then 
>>> either /std/ or /ssl/ for the site that was added.
>>> This is the http file:  
>>> /etc/apache2/conf.d/userdata/std/2_4/bfxqsxmy/flask.chordieapp.com/flask.chordieapp.com.conf
>>>  <http://flask.chordieapp.com/flask.chordieapp.com.conf>
>>> 
>>>     <IfModule alias_module>
>> 
>> There shouldn't be an IfModule section for alias_module because that is 
>> nothing to do with mod_wsgi. You only want what was inside that section.
>> 
>>>         WSGIDaemonProcess flaskapp 
>>> python-home=/home/bfxqsxmy/public_html/flask/venv/
>>>         WSGIProcessGroup flaskapp
>>>         WSGIScriptAlias /app 
>>> /home/bfxqsxmy/public_html/flask/application.wsgi
>> 
>> Better to also change this to:
>> 
>>         WSGIDaemonProcess flaskapp 
>> python-home=/home/bfxqsxmy/public_html/flask/venv/
>>         WSGIScriptAlias /app 
>> /home/bfxqsxmy/public_html/flask/application.wsgi process-group=flaskapp 
>> application-group=%{GLOBAL}
>> 
>> You are also not telling mod_wsgi where you application code is. You 
>> probably mean:
>> 
>>         WSGIDaemonProcess flaskapp 
>> python-home=/home/bfxqsxmy/public_html/flask/venv/ 
>> python-path=/home/bfxqsxmy/public_html/flask
>>         WSGIScriptAlias /app 
>> /home/bfxqsxmy/public_html/flask/application.wsgi process-group=flaskapp 
>> application-group=%{GLOBAL}
>> 
>>>     </IfModule>
>>> 
>>>     <Directory "/home/bfxqsxmy/public_html/flask/">
>>>         Options FollowSymLinks
>>>         AllowOverride None
>>>         Require all granted
>>>     </Directory>
>>> 
>>> #    ErrorLog ${APACHE_LOG_DIR}/error.log
>>>     LogLevel warn
>>> #    CustomLog ${APACHE_LOG_DIR}/access.log combined
>>> 
>>> Here is the https conf: 
>>>     <IfModule alias_module>
>>> # this daemon process was declared in the /std/ copy of this file (handler 
>>> for http, not https)
>>> #        WSGIDaemonProcess flaskapp 
>>> python-home=/home/bfxqsxmy/public_html/flask/venv/
>>>         WSGIProcessGroup flaskapp
>>>         WSGIScriptAlias /app 
>>> /home/bfxqsxmy/public_html/flask/application.wsgi
>>>     </IfModule>
>>> 
>>>     <Directory "/home/bfxqsxmy/public_html/flask/">
>>>         Options FollowSymLinks
>>>         AllowOverride None
>>>         Require all granted
>>>     </Directory>
>>> 
>>> #    ErrorLog ${APACHE_LOG_DIR}/error.log
>>>     LogLevel warn
>>> #    CustomLog ${APACHE_LOG_DIR}/access.log combined
>> 
>> Only need for mod_wsgi.
>> 
>>         WSGIScriptAlias /app 
>> /home/bfxqsxmy/public_html/flask/application.wsgi process-group=flaskapp 
>> application-group=%{GLOBAL}
>> 
>> No WSGIDaemonProcess directive.
>> 
>> You still need the Directory stuff in both.
>> 
>> 
>>> Here is the folder hierarchy over /public_html/flask 
>> 
>>> <Screen Shot 2021-12-02 at 6.36.04 PM.png>
>>> Here is the folder hierarchy of /public_html/flask/pfm/
>> 
>>> <Screen Shot 2021-12-02 at 6.33.44 PM.png>
>>> 
>>> Here is what is written in `application.wsgi`:
>>> 1 python_home = '/home/bfxqsxmy/public_html/flask/venv'
>>> 2 import sys
>>> 3 import site
>>> 4 
>>> 5 # Calculate path to site-packages directory.
>>> 6 
>>> 7 python_version = '.'.join(map(str, sys.version_info[:2]))
>>> 8 site_packages = python_home + '/lib/python%s/site-packages' % 
>>> python_version
>>> 9 
>>> 10 # Add the site-packages directory.
>>> 11
>>> 12 site.addsitedir(site_packages)
>>> 13 from pfm import test1 as test1
>>> 14 from test1 import app as application
>> 
>> 
>> This should all be replaced with just:
>> 
>>     from pfm import test1 as test1
>>     from test1 import app as application
>> 
>> The directory that "pfm" package is in should be what you add to python-path 
>> above.
>> 
>> 
>>> 
>>> Here's the error message:
>>> _wsgi (pid=13119, process='flaskapp', application='flask.chordieapp.com 
>>> <http://flask.chordieapp.com/>|/app'): Loading Python script file 
>>> '/home/bfxqsxmy/public_html/flask/application.wsgi'.
>>> [Thu Dec 02 19:37:30.512141 2021] [wsgi:error] [pid 13119:tid 
>>> 47096016185088] [remote 73.221.155.223:57349 
>>> <http://73.221.155.223:57349/>] mod_wsgi (pid=13119): Failed to exec Python 
>>> script file '/home/bfxqsxmy/public_html/flask/application.wsgi'.
>>> [Thu Dec 02 19:37:30.512220 2021] [wsgi:error] [pid 13119:tid 
>>> 47096016185088] [remote 73.221.155.223:57349 
>>> <http://73.221.155.223:57349/>] mod_wsgi (pid=13119): Exception occurred 
>>> processing WSGI script '/home/bfxqsxmy/public_html/flask/application.wsgi'.
>>> [Thu Dec 02 19:37:30.512623 2021] [wsgi:error] [pid 13119:tid 
>>> 47096016185088] [remote 73.221.155.223:57349 
>>> <http://73.221.155.223:57349/>] Traceback (most recent call last):
>>> [Thu Dec 02 19:37:30.512660 2021] [wsgi:error] [pid 13119:tid 
>>> 47096016185088] [remote 73.221.155.223:57349]File 
>>> "/home/bfxqsxmy/public_html/flask/application.wsgi", line 13, in <module>
>>> [Thu Dec 02 19:37:30.512664 2021] [wsgi:error] [pid 13119:tid 
>>> 47096016185088] [remote 73.221.155.223:57349 
>>> <http://73.221.155.223:57349/>]  from pfm import test1 as test1
>>> [Thu Dec 02 19:37:30.512690 2021] [wsgi:error] [pid 13119:tid 
>>> 47096016185088] [remote 73.221.155.223:57349 
>>> <http://73.221.155.223:57349/>] ModuleNotFoundError: No module named 'pfm'
>>> 
>>> 
>>> When I comment everything out in application.wsgi and use your 'hello 
>>> world' script instead, I see 'hello world' when I visit the URL to the app: 
>> 
>>> def application(environ, start_response):
>>>     status = '200 OK'
>>>     output = b'Hello World!'
>>> 
>>>     response_headers = [('Content-type', 'text/plain'),
>>>                         ('Content-Length', str(len(output)))]
>>>     start_response(status, response_headers)
>>> 
>>>     return [output]
>>> 
>> 
>>> <Screen Shot 2021-12-02 at 6.22.48 PM.png>
>> 
>>> 
>>> As I said earlier, it's a python error related to the folder hierarchy and 
>>> not being able to find the files. 
>>> Any ideas?
>>> 
>>> On Thursday, December 2, 2021 at 6:23:41 PM UTC-8 Graham Dumpleton wrote:
>>> You would need to post the error messages and the mod_wsgi configuration if 
>>> you want help resolving it. Too hard to guess otherwise.
>>> 
>>> 
>>>> On 3 Dec 2021, at 1:21 pm, matkatmusic <[email protected] <>> wrote:
>>>> 
>>> 
>>>> I'm not using it. 
>>>> I followed your guide and what it says about python3. 
>>>> 
>>>> On Thursday, December 2, 2021 at 6:20:35 PM UTC-8 Graham Dumpleton wrote:
>>>> You should not use activate_this.py for virtual environment activation 
>>>> unless you have no other choice. Use WSGIPythonHome or preferably use 
>>>> WSGIDaemonProcess and python-home as explain in that doc.
>>>> 
>>>> 
>>>>> On 3 Dec 2021, at 1:18 pm, matkatmusic <[email protected] <>> wrote:
>>>>> 
>>>> 
>>>>> Success!!!
>>>>> 
>>>>> [wsgi:info] [pid 19919:tid 47035722368064] mod_wsgi (pid=19919): 
>>>>> Initializing Python.
>>>>> [Thu Dec 02 15:38:08.576095 2021] [wsgi:info] [pid 19916:tid 
>>>>> 47035722368064] mod_wsgi (pid=19916): Attach interpreter ''.
>>>>> [Thu Dec 02 15:38:08.586154 2021] [wsgi:info] [pid 19913:tid 
>>>>> 47035722368064] mod_wsgi (pid=19913): Attach interpreter ''.
>>>>> [Thu Dec 02 15:38:08.591026 2021] [wsgi:info] [pid 19914:tid 
>>>>> 47035722368064] mod_wsgi (pid=19914): Attach interpreter ''.
>>>>> [Thu Dec 02 15:38:08.594354 2021] [wsgi:info] [pid 19915:tid 
>>>>> 47035722368064] mod_wsgi (pid=19915): Attach interpreter ''.
>>>>> [Thu Dec 02 15:38:08.598385 2021] [wsgi:info] [pid 19919:tid 
>>>>> 47035722368064] mod_wsgi (pid=19919): Attach interpreter ''.
>>>>> [ N 2021-12-02 15:38:08.9955 19868/T1 age/Cor/TelemetryCollector.h:531 ]: 
>>>>> Message from Phusion: End time can not be before or equal to begin time
>>>>> [ N 2021-12-02 15:38:09.0274 19868/T1 age/Cor/CoreMain.cpp:1325 ]: 
>>>>> Passenger core shutdown finished
>>>>> 
>>>>> Now I am getting python-specific errors when I try to load up my site.  
>>>>> These errors are related to the virtual environment and the missing 
>>>>> `activate_this.py` file. 
>>>>> 
>>>>> After reading: 
>>>>> https://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html
>>>>>  
>>>>> <https://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html>
>>>>>  
>>>>> It seems like mod_wsgi is meant for, or designed around python v2.x, not 
>>>>> v3.x 
>>>>> 
>>>>> I was able to get the hello, world snippet you shared here up and running 
>>>>> and printing out. 
>>>>> https://modwsgi.readthedocs.io/en/develop/user-guides/debugging-techniques.html#apache-error-log-files
>>>>>  
>>>>> <https://modwsgi.readthedocs.io/en/develop/user-guides/debugging-techniques.html#apache-error-log-files>
>>>>> 
>>>>> Now I just need to solve these import errors, which seem to be related to 
>>>>> my folder hierarchy and file structure. 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Thursday, December 2, 2021 at 1:47:38 PM UTC-8 Graham Dumpleton wrote:
>>>>> A few quick comments as got other things need to do before read through 
>>>>> this properly.
>>>>> 
>>>>> 1. Compiling your own Python can be tricky. Read:
>>>>> 
>>>>> * 
>>>>> http://blog.dscpl.com.au/2015/06/installing-custom-python-version-into.html
>>>>>  
>>>>> <http://blog.dscpl.com.au/2015/06/installing-custom-python-version-into.html>
>>>>> 
>>>>> Ignore that it talks about docker as still relevant.
>>>>> 
>>>>> 2. If you are using Python from a non standard location, if using CMMI 
>>>>> install method you have to embed in mod_wsgi  knowledge of where it is. 
>>>>> That is, set LD_RUN_PATH when compiling/installing module. Read:
>>>>> 
>>>>> * 
>>>>> https://modwsgi.readthedocs.io/en/master/user-guides/installation-issues.html#unable-to-find-python-shared-library
>>>>>  
>>>>> <https://modwsgi.readthedocs.io/en/master/user-guides/installation-issues.html#unable-to-find-python-shared-library>
>>>>> 
>>>>> 3. Instead of using CMMI install method, it can be better to use pip 
>>>>> install method. Read:
>>>>> 
>>>>> * https://pypi.org/project/mod-wsgi/ <https://pypi.org/project/mod-wsgi/>
>>>>> 
>>>>> Graham
>>>>> 
>>>>> 
>>>>>> On 3 Dec 2021, at 8:39 am, matkatmusic <[email protected] <>> wrote:
>>>>>> 
>>>>> 
>>>>>> I am getting the following error when I try to use mod_wsgi with 
>>>>>> Apache2.4:
>>>>>> 
>>>>>> The “/usr/sbin/httpd -DSSL -t -f 
>>>>>> /etc/apache2/conf.d/includes/pre_main_global.conf.tmp.cfgcheck -C 
>>>>>> Include "/etc/apache2/conf.modules.d/*.conf"” command (process 10241) 
>>>>>> reported error number 1 when it ended. httpd: Syntax error on line 2 of 
>>>>>> /etc/apache2/conf.d/includes/pre_main_global.conf.tmp.cfgcheck: Cannot 
>>>>>> load modules/mod_wsgi.so into server: libpython3.9.so.1.0: cannot open 
>>>>>> shared object file: No such file or directory
>>>>>> 
>>>>>> I have installed python3.9.9 from source code as the Cpanel user into: 
>>>>>> $HOME/python/Python-3.9.9/
>>>>>> the configuration was:
>>>>>> --enable-shared --prefix=$HOME/python
>>>>>> This install location is taken from this tutorial from my host:
>>>>>> https://www.bluehost.com/help/article/python-installation 
>>>>>> <https://www.bluehost.com/help/article/python-installation>
>>>>>> 
>>>>>> mkdir ~/python
>>>>>> cd ~/python
>>>>>> wget http://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz 
>>>>>> <http://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz>
>>>>>> tar zxfv Python-3.9.9.tgz
>>>>>> find ~/python -type d | xargs chmod 0755
>>>>>> cd Python-3.9.9
>>>>>> ./configure --enable-shared --prefix=$HOME/python
>>>>>> make
>>>>>> make install
>>>>>> 
>>>>>> I have modified the CPanel user's .bashrc file to point to this location 
>>>>>> so that calling $ python -V will execute the python installed from 
>>>>>> source. 
>>>>>> 
>>>>>> This command failed (cannot find libpython3.9.so.1.0), so I followed the 
>>>>>> instructions here to add LD_LIBRARY_PATH to the .bashrc: 
>>>>>> https://stackoverflow.com/questions/480764/linux-error-while-loading-shared-libraries-cannot-open-shared-object-file-no-s
>>>>>>  
>>>>>> <https://stackoverflow.com/questions/480764/linux-error-while-loading-shared-libraries-cannot-open-shared-object-file-no-s>
>>>>>> 
>>>>>> export PATH=/home/bfxqsxmy/python/Python-3.9.9/:$PATH
>>>>>> export PATH=/home/bfxqsxmy/python/bin/:$PATH
>>>>>> export 
>>>>>> LD_LIBRARY_PATH=/home/bfxqsxmy/python/Python-3.9.9/:$LD_LIBRARY_PATH
>>>>>> 
>>>>>> Now running 'python -V' from the CPanel User's shell prints out 
>>>>>> 'python3.9.9'
>>>>>> 
>>>>>> I then installed mod_wsgi from source as the Cpanel user. 
>>>>>> the configuration used was:
>>>>>> ./configure --with-apxs=/bin/apxs 
>>>>>> --with-python=/home/bfxqsxmy/python/Python-3.9.9/python
>>>>>> 
>>>>>> 'make' succeeded without issue.
>>>>>> running 'make install' failed because I was the Cpanel user, and it was 
>>>>>> trying to write to /etc/apache2/modules/
>>>>>> 
>>>>>> running 'sudo make install' succeeded. 
>>>>>> /etc/apache2/modules/mod_wsgi.so now exists. 
>>>>>> 
>>>>>> Next: I try to edit the Apache Pre-main include file via WHM and add the 
>>>>>> following line:
>>>>>>  LoadModule wsgi_module modules/mod_wsgi.so
>>>>>> 
>>>>>> Updating the pre-main include file causes this error to appear: 
>>>>>> Error:
>>>>>> The “/usr/sbin/httpd -DSSL -t -f 
>>>>>> /etc/apache2/conf.d/includes/pre_main_global.conf.tmp.cfgcheck -C 
>>>>>> Include "/etc/apache2/conf.modules.d/*.conf"” command (process 10241) 
>>>>>> reported error number 1 when it ended. httpd: Syntax error on line 2 of 
>>>>>> /etc/apache2/conf.d/includes/pre_main_global.conf.tmp.cfgcheck: Cannot 
>>>>>> load modules/mod_wsgi.so into server: libpython3.9.so.1.0: cannot open 
>>>>>> shared object file: No such file or directory
>>>>>> 
>>>>>> Apache is running as the following users:
>>>>>> root (1 instance of /usr/sbin/httpd -k start)
>>>>>> nobody (6 instances of /usr/sbin/httpd -k start)
>>>>>> 
>>>>>> Any idea what the problem is? 
>>>>>> 
>>>>>> Thanks!!
>>>>>> 
>>>>> 
>>>>>> -- 
>>>>>> 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 view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/modwsgi/a8bf68cd-491a-4ae4-be45-16f013eb6aa1n%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/modwsgi/a8bf68cd-491a-4ae4-be45-16f013eb6aa1n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>> 
>>>>> 
>>>>> -- 
>>>>> 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 view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/modwsgi/350a3ab2-ef75-4a4e-9c2a-74f158ad0f3an%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/modwsgi/350a3ab2-ef75-4a4e-9c2a-74f158ad0f3an%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>> 
>>>> 
>>>> -- 
>>>> 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 view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/modwsgi/fad705f6-8c26-48ad-89a4-b39967897a35n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/modwsgi/fad705f6-8c26-48ad-89a4-b39967897a35n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> 
>>> 
>>> -- 
>>> 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 view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/modwsgi/dc970e73-cada-423e-97c3-1f463120c12fn%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/modwsgi/dc970e73-cada-423e-97c3-1f463120c12fn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> <Screen Shot 2021-12-02 at 6.22.48 PM.png><Screen Shot 2021-12-02 at 
>>> 6.33.44 PM.png><Screen Shot 2021-12-02 at 6.36.04 PM.png>
>> 
>> 
>> -- 
>> 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 view this discussion on the web visit 
>> https://groups.google.com/d/msgid/modwsgi/55533b55-7a60-4843-b4ac-7b0453f37849n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/modwsgi/55533b55-7a60-4843-b4ac-7b0453f37849n%40googlegroups.com?utm_medium=email&utm_source=footer>.
> 
> 
> -- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "modwsgi" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/modwsgi/6V7Ueg8phZA/unsubscribe 
> <https://groups.google.com/d/topic/modwsgi/6V7Ueg8phZA/unsubscribe>.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/modwsgi/6D874695-BDB4-4C5F-947E-137DDB250FDE%40gmail.com
>  
> <https://groups.google.com/d/msgid/modwsgi/6D874695-BDB4-4C5F-947E-137DDB250FDE%40gmail.com?utm_medium=email&utm_source=footer>.
> 
> -- 
> 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 view this discussion on the web visit 
> https://groups.google.com/d/msgid/modwsgi/CANXHmywJ23H0o4Y3VAChChY6pn_ZYpnteex3SWMfdRr1v8u57A%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/modwsgi/CANXHmywJ23H0o4Y3VAChChY6pn_ZYpnteex3SWMfdRr1v8u57A%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/modwsgi/F82821FE-B386-4670-B8B6-297774D4550B%40gmail.com.

Reply via email to