I will check these in the morning. Thank you for all the help.

On Monday, October 29, 2018 at 5:48:39 PM UTC-7, Graham Dumpleton wrote:
>
> You don't need to chmod +x the WSGI script file.
>
> Ensure you still have:
>
>     from mywebtool import app as application
>
> in the WSGi script file.
>
> If there isn't an 'application' object you will get 404, although I think 
> you should get an error in log as well.
>
> The 404 may be now be from the Flask application because your routes 
> aren't defined correctly.
>
> Not sure if you can still set:
>
>     app.debug =True
>
> in your code to have Flask generate in browser better error as to what 
> issue is.
>
> Graham
>
> On 30 Oct 2018, at 11:45 am, wc <wcol...@ucdavis.edu <javascript:>> wrote:
>
> Ok thanks.
>
> I did chmod 755 on the mywebtool.py file (plus starting and stopping 
> Apache with each iteration) and I still get a 404 Not Found error in the 
> browser, but I'm not getting any errors in the Apache error log any longer:
>
> [Mon Oct 29 17:30:29.609529 2018] [mpm_prefork:notice] [pid 20949] 
> AH00163: Apache/2.4.35 (FreeBSD) mod_wsgi/4.6.4 Python/2.7 configured -- 
> resuming normal operations
> [Mon Oct 29 17:30:29.609818 2018] [core:notice] [pid 20949] AH00094: 
> Command line: '/usr/local/sbin/httpd -D NOHTTPACCEPT'
>
>
>
> On Monday, October 29, 2018 at 5:39:46 PM UTC-7, Graham Dumpleton wrote:
>>
>> Nothing should be cached from old version of file, but to be safe I would 
>> suggest stopping and starting Apache, trying again and seeing what error 
>> you get.
>>
>> Also see comments below.
>>
>> On 30 Oct 2018, at 11:36 am, wc <wcol...@ucdavis.edu> wrote:
>>
>> mywebtool.wsgi is indeed in the location you noted
>>
>> my virtual host section (showing the WSGIScriptAlias) is:
>>
>> <VirtualHost *:80>
>>
>>     ServerName my.server.edu
>>
>>     DocumentRoot /var/www/FLASKAPPS
>>
>>
>> You should not set DocumentRoot to be where your application code is. If 
>> you remove the WSGIScriptAlias, people can download your source code. Leave 
>> DocumentRoot as global default, or point it at an empty directory.
>>
>>
>>     <Directory /var/www/FLASKAPPS>
>>         Require all granted
>>     </Directory>
>>
>>
>> You don't need this above.
>>
>>
>>     WSGIScriptAlias / /var/www/wsgi-scripts/mywebtool.wsgi
>>
>>     <Directory /var/www/wsgi-scripts>
>>         Require all granted
>>     </Directory>
>>     
>> </VirtualHost>
>>
>> On Monday, October 29, 2018 at 5:30:05 PM UTC-7, Graham Dumpleton wrote:
>>>
>>> Where is 'mywebtool.wsgi'.
>>>
>>> The error suggests:
>>>
>>>     /var/www/wsgi-scripts/mywebtool.wsgi
>>>
>>> yet, the error also says:
>>>
>>> [Mon Oct 29 15:55:30.446084 2018] [wsgi:error] [pid 20476] [client 
>>> 60.248.94.241:50359]   File "/var/www/wsgi-scripts/mywebtool.wsgi", 
>>> line 1, in <module>
>>> [Mon Oct 29 15:55:30.446150 2018] [wsgi:error] [pid 20476] [client 
>>> 60.248.94.241:50359]     from mywebtool import app as application
>>>
>>> so is talking about the import being on line 1, so it doesn't match what 
>>> you said was in that, which you said was:
>>>
>>> import sys
>>>
>>> sys.path.insert(0, '/var/www/FLASKAPPS')
>>>
>>> from mywebtool import app as application
>>>
>>>
>>> The import error should have said line 5, not line 1.
>>>
>>> So check path for WSGIScriptAlias and that the code file does update 
>>> sys.path.
>>>
>>> Graham
>>>
>>>
>>> On 30 Oct 2018, at 11:24 am, wc <wcol...@ucdavis.edu> wrote:
>>>
>>> I believe I understand what you mean for the package vs. module 
>>> structure.
>>>
>>> I get:
>>>
>>> $ ls -las /var/www/FLASKAPPS
>>> total 6
>>> 1 drwxr-xr-x  2 root  wheel    3 Oct 23 17:39 .
>>> 1 drwxr-xr-x  4 root  wheel    4 Oct 23 18:10 ..
>>> 5 -rw-r--r--  1 wes   wes    148 Oct 23 17:33 mywebtool.py
>>>
>>>
>>> When I do the ls -las 
>>>
>>> On Monday, October 29, 2018 at 5:20:21 PM UTC-7, Graham Dumpleton wrote:
>>>>
>>>>
>>>>
>>>> On 30 Oct 2018, at 11:16 am, wc <wcol...@ucdavis.edu> wrote:
>>>>
>>>> Yes, my "mywebtool" is under 
>>>>
>>>> /var/www/FLASKAPPS
>>>>
>>>>
>>>> I'm assuming that Apache is running as user www, though I should check 
>>>> that and check the permissions on the file. As I recall, I uploaded the 
>>>> files as root because I was unable to modify the directory /var/www as 
>>>> myself from my ftp prog.
>>>>
>>>>
>>>> Keep in mind it isn't just the files that need to be readable, the 
>>>> directories down to where the files are also need to be accessible.
>>>>
>>>> So what do you get for:
>>>>
>>>>     ls -las /var/www/FLASKAPPS
>>>>
>>>> I installed mod_wsgi with pip2.7 ... 
>>>>
>>>> No... I don't have an __init__.py file, and I'm just seeing now in the 
>>>> tutorial that the file I am calling "mywebtool.py" they are referring to 
>>>> as 
>>>> __init__.py
>>>>
>>>>
>>>> If you have mywebtool.py that is fine as just means you are packaging 
>>>> your application as a module rather than a package. Later on when need to 
>>>> split code across multiple files, better to use a package format. Because 
>>>> using Python 2.7, must have the __init__.py in that package where as in 
>>>> Python 3 you don't need it.
>>>>
>>>> Graham
>>>>
>>>>  
>>>>
>>>> On Monday, October 29, 2018 at 5:08:44 PM UTC-7, Graham Dumpleton wrote:
>>>>>
>>>>> Is your mywebtool module/package under:
>>>>>
>>>>>     /var/www/FLASKAPPS
>>>>>
>>>>> or:
>>>>>
>>>>>     /var/www/wsgi-scripts
>>>>>
>>>>> Are the directories/files readable to the user that Apache runs as?
>>>>>
>>>>> Is mod_wsgi compiled for Python 2.7 or 3.X?
>>>>>
>>>>> If mywebtool is a package, does it have an __init__.py file in it.
>>>>>
>>>>> Graham
>>>>>
>>>>> On 30 Oct 2018, at 11:05 am, wc <wcol...@ucdavis.edu> wrote:
>>>>>
>>>>> Thank you both for your replies. I now have a better understanding of 
>>>>> the wsgi framework and I am using the error log to my advantage. I was 
>>>>> able 
>>>>> to find an error in my httpd.conf - I was using Apache 2.2 syntax in my 
>>>>> directives, now I've updated it with the "Require all granted" and I am 
>>>>> getting the server to respond with the wsgi script, which I have named 
>>>>> mywebtool.wsgi - the code for which I grabbed from a stack overflow post:
>>>>>
>>>>> def application(environ, start_response):
>>>>>     status = '200 OK'
>>>>>     output = b'Hello World!\n'
>>>>>     response_headers = [('Content-type', 'text/plain'),
>>>>>                 ('Content-Length', str(len(output)))]
>>>>>     start_response(status, response_headers)
>>>>>     return [output]
>>>>>
>>>>>
>>>>> I decided to do this to verify the first 2/3 of the stack were working 
>>>>> (Apache, mod_wsgi). 
>>>>>
>>>>> My original wsgi script taken from the flask mod_wsgi docs (
>>>>> http://flask.pocoo.org/docs/1.0/deploying/mod_wsgi/) is simple:
>>>>>
>>>>> import sys
>>>>>
>>>>> sys.path.insert(0, '/var/www/FLASKAPPS')
>>>>>
>>>>> from mywebtool import app as application
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> and points to the Hello World python app I was calling originally 
>>>>> (again, got this basic python script from a tutorial at 
>>>>> https://www.bogotobogo.com/python/Flask/Python_Flask_HelloWorld_App_with_Apache_WSGI_Ubuntu14.php
>>>>> ):
>>>>>
>>>>>
>>>>>  
>>>>>
>>>>> $ cat mywebtool.py
>>>>> from flask import Flask
>>>>>  
>>>>> app = Flask(__name__)
>>>>>  
>>>>> @app.route("/")
>>>>> def hello():
>>>>>     return "Hello world!"
>>>>>  
>>>>> if __name__ == "__main__":
>>>>>     app.run()
>>>>>
>>>>>
>>>>> But, this is failing. When I tailed the Apache error log, I saw:
>>>>>
>>>>> [Mon Oct 29 15:53:08.108746 2018] [wsgi:error] [pid 20474] [client 
>>>>> 185.26.34.125:53717] ImportError: No module named mywebtool
>>>>> [Mon Oct 29 15:55:30.445940 2018] [wsgi:error] [pid 20476] [client 
>>>>> 60.248.94.241:50359] mod_wsgi (pid=20476): Failed to exec Python 
>>>>> script file '/var/www/wsgi-scripts/mywebtool.wsgi'.
>>>>> [Mon Oct 29 15:55:30.446038 2018] [wsgi:error] [pid 20476] [client 
>>>>> 60.248.94.241:50359] mod_wsgi (pid=20476): Exception occurred 
>>>>> processing WSGI script '/var/www/wsgi-scripts/mywebtool.wsgi'.
>>>>> [Mon Oct 29 15:55:30.446059 2018] [wsgi:error] [pid 20476] [client 
>>>>> 60.248.94.241:50359] Traceback (most recent call last):
>>>>> [Mon Oct 29 15:55:30.446084 2018] [wsgi:error] [pid 20476] [client 
>>>>> 60.248.94.241:50359]   File "/var/www/wsgi-scripts/mywebtool.wsgi", 
>>>>> line 1, in <module>
>>>>> [Mon Oct 29 15:55:30.446150 2018] [wsgi:error] [pid 20476] [client 
>>>>> 60.248.94.241:50359]     from mywebtool import app as application
>>>>> [Mon Oct 29 15:55:30.446173 2018] [wsgi:error] [pid 20476] [client 
>>>>> 60.248.94.241:50359] ImportError: No module named mywebtool
>>>>>
>>>>>
>>>>> Obviously, I named my python file "mywebtool.py" as I say in the wsgi 
>>>>> script, which leads me to two potential conclusions - 1. I'm not properly 
>>>>> referring to the .py in the wsgi script, or 2. my python script is not 
>>>>> executing due to a problem with python, or  with the python code itself.
>>>>>
>>>>> I'm optimistic I'm getting closer here...
>>>>>
>>>>>  
>>>>>
>>>>>  
>>>>>
>>>>>
>>>>> On Monday, October 29, 2018 at 4:00:21 PM UTC-7, Graham Dumpleton 
>>>>> wrote:
>>>>>>
>>>>>> I'd agree on that except as noted.
>>>>>>
>>>>>> If the error message from the Apache error log is shown, along with 
>>>>>> configuration for your WSGI application in Apache config, as well as 
>>>>>> saying 
>>>>>> where your Python application code is located, that would help to give 
>>>>>> better idea of what is going on.
>>>>>>
>>>>>> On 30 Oct 2018, at 9:57 am, Peter Lai <pete...@pw.utc.com> wrote:
>>>>>>
>>>>>> 403 usually means that the directory to which you are hosting the 
>>>>>> .wsgi isn't configured with:
>>>>>>
>>>>>> <Directory /path/to/your/app.wsgi>
>>>>>>
>>>>>>
>>>>>> Except that the argument is a directory path, not full path to WSGI 
>>>>>> script file.
>>>>>>
>>>>>>     AllowOverride None
>>>>>>     Require all granted
>>>>>> </Directory>
>>>>>>
>>>>>> This is required even though you have configured WSGIScriptAlias 
>>>>>> /web/path/to/app /path/to/your/app.wsgi
>>>>>>
>>>>>>
>>>>>> On Monday, October 29, 2018 at 6:52:29 PM UTC-4, wc wrote:
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> My colleague would like to get a Python Flask app running on our new 
>>>>>>> sever. I've been scratching my head for several days and doing lots of 
>>>>>>> googling to help me get just a simple hello world wsgi app to run on my 
>>>>>>> FreeBSD 11.2 server. I've followed some online tutorials to make a .py 
>>>>>>> file, a .wsgi file and modify the http.conf file to add a virtual host.
>>>>>>>
>>>>>>> When I navigate to our site, I get a 403 forbidden error.
>>>>>>>
>>>>>>> I'm getting lost... but I've gone back to this checklist I found (
>>>>>>> https://modwsgi.readthedocs.io/en/develop/user-guides/checking-your-installation.html)
>>>>>>>  
>>>>>>> to see what I might be missing.
>>>>>>>
>>>>>>> I see that in Apache (version 2.4) the wsgi_module is installed when 
>>>>>>> I run httpd -M
>>>>>>>
>>>>>>> but when I attempt ldd mod_wsgi.so I get the following:
>>>>>>>
>>>>>>> ldd: mod_wsgi.so: No such file or directory
>>>>>>>
>>>>>>> At this point, I think that Python and mod_wsgi are not linked, but 
>>>>>>> I am unsure. I have two versions of Python installed, 2.7 and 3.6 and I 
>>>>>>> installed and updated everything using pkg with the exception of the 
>>>>>>> wsgi_module, which I installed using pip2.7.
>>>>>>>
>>>>>>> I'm not sure what I'm missing and if I should go back and try to 
>>>>>>> uninstall, then reinstall everything from scratch, or if there's 
>>>>>>> something 
>>>>>>> simple I'm missing. Anyone have a similar experience or any insight on 
>>>>>>> this? Also, the various tutorials I've read on deploying 
>>>>>>> Dash/Flask/mod_wsgi apps seem to vary in approach and can be somewhat 
>>>>>>> vague 
>>>>>>> on some of the steps. I'm not sure which is the best for me. One area 
>>>>>>> that's not super clear to me is whether virtual host directives for 
>>>>>>> Apache2.4 should be added directly to the httpd.conf virtual hosts 
>>>>>>> section, 
>>>>>>> or if it should be in a separate virtual hosts file.
>>>>>>>
>>>>>>> Any help anyone could offer me would be greatly appreciated!!! 
>>>>>>> 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 modwsgi+u...@googlegroups.com.
>>>>>> To post to this group, send email to mod...@googlegroups.com.
>>>>>> Visit this group at https://groups.google.com/group/modwsgi.
>>>>>> For more options, visit 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 modwsgi+u...@googlegroups.com.
>>>>> To post to this group, send email to mod...@googlegroups.com.
>>>>> Visit this group at https://groups.google.com/group/modwsgi.
>>>>> For more options, visit 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 modwsgi+u...@googlegroups.com.
>>>> To post to this group, send email to mod...@googlegroups.com.
>>>> Visit this group at https://groups.google.com/group/modwsgi.
>>>> For more options, visit 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 modwsgi+u...@googlegroups.com.
>>> To post to this group, send email to mod...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/modwsgi.
>>> For more options, visit 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 modwsgi+u...@googlegroups.com.
>> To post to this group, send email to mod...@googlegroups.com.
>> Visit this group at https://groups.google.com/group/modwsgi.
>> For more options, visit 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 modwsgi+u...@googlegroups.com <javascript:>.
> To post to this group, send email to mod...@googlegroups.com <javascript:>
> .
> Visit this group at https://groups.google.com/group/modwsgi.
> For more options, visit 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 modwsgi+unsubscr...@googlegroups.com.
To post to this group, send email to modwsgi@googlegroups.com.
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to