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]> 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]> 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 >> 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 >> >> <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|/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] 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] 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] 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] 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] 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 >>>> >>>> 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 >>>> >>>> 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 >>>>> >>>>> 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 >>>>> >>>>> 3. Instead of using CMMI install method, it can be better to use pip >>>>> install method. Read: >>>>> >>>>> * 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 >>>>> >>>>> mkdir ~/python cd ~/python wget >>>>> 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 >>>>> >>>>> 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]. > 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. > To unsubscribe from this group and all its topics, send an email to > [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]. To view this discussion on the web visit https://groups.google.com/d/msgid/modwsgi/CANXHmywJ23H0o4Y3VAChChY6pn_ZYpnteex3SWMfdRr1v8u57A%40mail.gmail.com.
