Hmm and now im more confused, i copied server files from
/home/user/flask_stuff_files
to the new directory /var/www/flask_stuff_files and corrected Apache conf,
now it looks like:

apache-wsgi config:
----------------------------
<VirtualHost *:80>
      ServerName www.example.com
      DocumentRoot /var/www/flask_stuff_files/templates
      WSGIDaemonProcess home=/var/www/wsgi-scripts python-path=/var/www
/flask_stuff_files user=user group=user
      WSGIScriptAlias /test /var/www/wsgi-scripts/simple_app.wsgi
process-group=app application-group=%{GLOBAL}

      <Directory /var/www/wsgi-scripts>
          Require all granted
      </Directory>

 </VirtualHost>

Still main page www.example.com/test renders ok, but on files submission i
get error File does not exist: /var/www/flask_stuff_files/templates/analysis,
referer: http://www.example.com/test


2016-08-22 1:28 GMT+03:00 Graham Dumpleton <graham.dumple...@gmail.com>:

>
> On 22 Aug 2016, at 8:16 AM, Tierprot B. <tierp...@gmail.com> wrote:
>
> Aha! Thanks! Addition of proper user and group options to
> WSGIDaemonProcess solved the ImportError! The last question i have might
> be not related to mod_wsgi directly, but still.
> I have a Flask app, purpose of which to be able to upload files provided
> by user, do some math and return result on a new page. Simplified code
> looks like this:
>
> ...
>
> @app.route('/'):
> def index()
>      return render_template('index.html')
>
> @app.route('/analysis', methods=['POST'])
> def upload():
>      uploaded_files = request.files.getlist('files')
>      ...
>      for file in uploaded_files:
>            ...
>      return render_template('analysis.html')
>
> ...
>
> The folder with static files which Flask renders is:
>
> home/user/flask_stuff_files/templates
>
>
> in Apache ive corrected document root folder and added directory with
> static files:
>
> apache-wsgi config:
> ----------------------------
> <VirtualHost *:80>
>       ServerName www.example.com
>       DocumentRoot /home/user/flask_stuff_files/templates
>
>
> What are you trying to have happen by adding this?
>
> The Apache user would need access to that directory and once agains the
> permissions on the directories are such that that can’t happen. Changing
> user for mod_wsgi daemon process group only affects access to Python code,
> not static files Apache tries to serve up.
>
> In general this is why is better not to have anything for your application
> under your home directory. Better under separate directory for project
> under /var/www.
>
>       WSGIDaemonProcess home=/var/www/wsgi-scripts python-path=
> /home/user/flask_stuff_files user=user group=user
>       WSGIScriptAlias /test /var/www/wsgi-scripts/simple_app.wsgi
> process-group=app application-group=%{GLOBAL}
>
>       <Directory /var/www/wsgi-scripts>
>           Require all granted
>       </Directory>
>
>       <Directory /home/user/flask_stuff_files>
>           WSGIProcessGroup app
>           WSGIApplicationGroup %{GLOBAL}
>           Require all granted
>       </Directory>
>
>
> May not need this entry for /home/user/flask_stuff_files.
>
>       <Directory /home/user/flask_stuff_files/templates>
>           WSGIProcessGroup app
>           WSGIApplicationGroup %{GLOBAL}
>           Require all granted
>       </Directory>
>
>
> May not need this entry for /home/user/flask_stuff_files/templates.
> Depends on answer about DocumentRoot.
>
> The Directory block and access grants is only needed for where the WSGI
> script file is located.
>
> The WSGIScriptAlias already specifies process-group and application-group
> so the WSGIProcessGroup and WSGIApplicationGroup not needed either.
>
>  </VirtualHost>
>
> So, www.example.com/test - it renders main page as intended, but when i
> select files and submit them via POST request ive got a forbidden access
> with error_log : Permission denied [...] : acces to /analysis denied
> (filesystempath '/home/user/flask_stuff_files') because search
> permissions are missing on a component of the path, referer:
> www.example.com/test.
>
> For the test, i set permissions of the folder /home/user/flask_stuff_files
> to the drwxrwxrwx, it belongs to user user.
>
> So, could you share your thoughts on what is wrong here?
>
>
> Graham
>
> 2016-08-21 23:28 GMT+03:00 Graham Dumpleton <graham.dumple...@gmail.com>:
>
>> Your code will be running as the Apache user. Your home directory would
>> have restrictive permissions on it such that not everyone can access files
>> out of it.
>>
>> The quickest solution would be to set the process/group that the mod_wsgi
>> daemon process runs as.
>>
>>     WSGIDaemonProcess home=/var/www/wsgi-scripts
>> python-path=/home/user/flask_stuff_files user=xxx group=yyy
>>
>> Replace xxx with your user name and yyy with the group name, likely same
>> as xxx.
>>
>> Thi presumes the issue isn’t as simple as you having left off the leading
>> slash on the path to the python-path option as your snippet showed.
>>
>> Graham
>>
>> On 21 Aug 2016, at 11:41 PM, Tierprot B. <tierp...@gmail.com> wrote:
>>
>>
>>> That is what WSGIScriptAlias is doing in giving it the path to the WSGI
>>> script file. If you mean something different you need to be clearer.
>>>
>>> b) that it should include python files from outside directory, for
>>> example home/user/flask_stuff_files ?
>>>
>>>
>>> If you are talking about other places to look for Python modules to
>>> import, that is what the python-path option for WSGIDaemonProcess that I
>>> mentioned is for.
>>>
>>> Graham
>>>
>>>
>> Ok, ive got python modules which i try to import located at 
>> home/user/flask_stuff_files,
>> mine wsgi file is in /var/www/wsgi-scripts, now to the code:
>>
>> apache-wsgi config:
>> ----------------------------
>> <VirtualHost *:80>
>>       ServerName www.example.com
>>       DocumentRoot /var/www/html
>>
>>       WSGIDaemonProcess home=/var/www/wsgi-scripts python-path=
>> home/user/flask_stuff_files
>>       WSGIScriptAlias /test /var/www/wsgi-scripts/simple_app.wsgi
>>
>>       <Directory /var/www/wsgi-scripts>
>>           Require all granted
>>       </Directory>
>>  </VirtualHost>
>> -------------------------
>>
>> simple_app.wsgi:
>> ----------------------------------
>> import server_handle
>>
>> 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]
>>
>> ------------------------------------
>>
>> server_handle.py module is located at /home/user/flask_stuff_files
>>
>> on trying www.example.com/test Apache spits with error ImportError: no
>> module named 'server_handle'
>>
>> adding of code like:
>>
>> import sys
>> sys.path.insert(0,'/home/user/flask_stuff_files')
>>
>> dont solve the problem too (do you know why, btw?)
>>
>> Theres something i didn`t properly understood, so sorry for annoying and
>> dumb questions :)
>>
>> --
>> 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.
>>
>>
>>
>> --
>> 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/to
>> pic/modwsgi/mDhEH4ChXgE/unsubscribe.
>> To unsubscribe from this group and all its topics, 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.
>>
>
>
> --
> 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.
>
>
> --
> 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/mDhEH4ChXgE/unsubscribe.
> To unsubscribe from this group and all its topics, 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.
>

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