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.
